Problem description
We are encountering a consistent issue with the Microsoft Graph Bookings API when attempting to update an appointment using the documented endpoint:
PATCH /v1.0/solutions/bookingBusinesses/{businessId}/appointments/{appointmentId}
When the appointmentId contains a forward slash (/), the request fails with a 400 Bad Request error.
Observed behaviour
The API returns:
{
"error": {
"code": "BadRequest",
"message": "Resource not found for the segment '...'"
}
}
The error indicates that the appointment ID is being incorrectly parsed as multiple path segments due to the / character.
Reproduction steps
Retrieve or use an existing Bookings appointment where the ID contains /
Attempt to call:
PATCH https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/{businessId}/appointments/{appointmentId}
Include a valid payload, for example:
{
"staffMemberIds": [
"da5cfe9e-96dc-44cxxxxxx"
]
}
Execute the request via:
Power Automate HTTP action
Microsoft Graph Explorer
Result
Request fails with 400 Bad Request
Error states that the resource segment cannot be found
The appointment ID is effectively split at /
Encoding attempts (all unsuccessful)
We have attempted the following:
Raw ID
Replacing / with %2F
Double encoding %252F
Using encodeUriComponent() in Power Automate
All approaches result in the same failure.
Additional validation
The issue reproduces in Graph Explorer, confirming it is not specific to Power Automate or client-side handling
The appointment ID is returned by Microsoft Graph and therefore considered valid and the function performs as designed if the id does not have /
The documented endpoint requires the ID in the URL path, with no alternative method provided
Expected behaviour
The API should correctly handle valid appointment IDs returned by Microsoft Graph, including those containing reserved URL characters such as /.
Either:
The endpoint should accept properly encoded IDs, or
An alternative method should be provided to reference appointments (e.g. via query or body parameter)
Business impact
This issue prevents reliable reassignment of staff members to existing bookings, which is a critical part of our scheduling workflow.
Request
Please confirm:
Whether this is a known limitation or defect in the Bookings API
The correct method to update appointments where the ID contains /
Whether an alternative endpoint or approach is available
Additional information
Endpoint: Microsoft Graph v1.0 Bookings API
Region: UK / Europe
Occurs consistently for affected appointment IDs
Attachments
graph error.docx
Problem description
We are encountering a consistent issue with the Microsoft Graph Bookings API when attempting to update an appointment using the documented endpoint:
PATCH /v1.0/solutions/bookingBusinesses/{businessId}/appointments/{appointmentId}
When the appointmentId contains a forward slash (/), the request fails with a 400 Bad Request error.
Observed behaviour
The API returns:
{
"error": {
"code": "BadRequest",
"message": "Resource not found for the segment '...'"
}
}
The error indicates that the appointment ID is being incorrectly parsed as multiple path segments due to the / character.
Reproduction steps
Retrieve or use an existing Bookings appointment where the ID contains /
Attempt to call:
PATCH https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/{businessId}/appointments/{appointmentId}
Include a valid payload, for example:
{
"staffMemberIds": [
"da5cfe9e-96dc-44cxxxxxx"
]
}
Execute the request via:
Power Automate HTTP action
Microsoft Graph Explorer
Result
Request fails with 400 Bad Request
Error states that the resource segment cannot be found
The appointment ID is effectively split at /
Encoding attempts (all unsuccessful)
We have attempted the following:
Raw ID
Replacing / with %2F
Double encoding %252F
Using encodeUriComponent() in Power Automate
All approaches result in the same failure.
Additional validation
The issue reproduces in Graph Explorer, confirming it is not specific to Power Automate or client-side handling
The appointment ID is returned by Microsoft Graph and therefore considered valid and the function performs as designed if the id does not have /
The documented endpoint requires the ID in the URL path, with no alternative method provided
Expected behaviour
The API should correctly handle valid appointment IDs returned by Microsoft Graph, including those containing reserved URL characters such as /.
Either:
The endpoint should accept properly encoded IDs, or
An alternative method should be provided to reference appointments (e.g. via query or body parameter)
Business impact
This issue prevents reliable reassignment of staff members to existing bookings, which is a critical part of our scheduling workflow.
Request
Please confirm:
Whether this is a known limitation or defect in the Bookings API
The correct method to update appointments where the ID contains /
Whether an alternative endpoint or approach is available
Additional information
Endpoint: Microsoft Graph v1.0 Bookings API
Region: UK / Europe
Occurs consistently for affected appointment IDs
Attachments
graph error.docx