updateBooking — enforceDoubleBooking strict reschedule validation
Summary
updateBooking now accepts an optional enforceDoubleBooking flag on BookingUpdateDataInput.
When enforceDoubleBooking is true, the API re-validates product/location rules and rejects overlapping updates with CONFLICT_ERROR (HTTP 409).
When the flag is omitted or false, behaviour is unchanged for existing integrations.
What changed
- New input:
enforceDoubleBooking: BooleanonBookingUpdateDataInput - Product rules: the clinician must still serve the booking's product type; the target room must still serve that product type
- Overlap prevention: rejects updates where the room or clinician is already booked in the requested time range (excluding the booking being updated)
- Conflict response: returns
error: "CONFLICT_ERROR"with HTTP status 409
Example
mutation RescheduleBooking($id: ID!, $bookingData: BookingUpdateDataInput!) {
updateBooking(id: $id, bookingData: $bookingData) {
data {
id
start
end
}
error
}
}
Example variables:
{
"id": "BOOKING_ID",
"bookingData": {
"start": "2026-08-15T10:00:00.000Z",
"end": "2026-08-15T10:30:00.000Z",
"location": "LOCATION_ID",
"enforceDoubleBooking": true,
"sendPatientMessages": {
"confirmation": true,
"reminder": true,
"followup": true
}
}
}