Skip to content

Microsoft Graph Bookings API – PATCH /appointments fails when appointment ID contains “/” #4029

Description

@MartinHutch

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions