This is clearly an API bug. To work around the issue, you need to take a couple unideal steps.
- Inject a fake ID into the
staffMemberIds
property. This seems to force the API to remove all assigned staff in bookings.
"staffMemberIds" : ["00000000-0000-0000-0000-000000000000"]
- Unfortunately, due to the mysterious backend architecture of Bookings that MS refuses to reveal to the public, there is an ever evolving link between Bookings and Outlook Calendar Events. The above trick will not remove the Staff Member from the "Required Attendees" list with in the
calendarEvent
. This means there is potential for the staff to still show in other areas like Outlook.
Because of this we need a second PATCH call to update the calendarEvent
API using the booking appointment ID. In this call set the attendees
property to nothing.
"attendees": []
Thankfully to two calls can be carried out asynchronously as you are clearing out the values in both places ensuring there is no conflict.
Highly recommend you only use this until the dev team addresses the issue.