Skip to main content

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: Boolean on BookingUpdateDataInput
  • 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
}
}
}

API reference