Skip to content

Reserve Slot

POST
/appointments/slots/reserve

Hold a slot for ten minutes while a booker fills in the form.

NOT a booking: nothing is written to a calendar and nobody is notified. The hold lapses by itself at release_at; release it explicitly if you know the booker walked away. A slot already taken is a 409.

Authorizations

Parameters

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

Hold a slot while a booker fills in the form.

The app types both times as bare strings and parses them with datetime.fromisoformat inside the handler with no guard, so a malformed value is an unhandled 500 there. They are validated as ISO-8601 here and forwarded unchanged.

object
event_type_id
required
integer
slot_end
required

ISO-8601 end of the slot being held.

string
slot_start
required

ISO-8601 start of the slot being held.

string

Responses

201

Successful Response

object
data
required

An open envelope for a filter, a setting, an embed config or a slot grid.

Open because org settings gain branding fields as the booking page does and the embed config gains styling keys as the widget does. Closing it would drop a field the app had already started returning.

object
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string