Returns an exhaustive availability snapshot for a single site/date,
combining opening hours, calendar availability, practitioner and
room schedules, equipment, and the periods already occupied by
existing bookings or blocks.
The endpoint powers Trybe's calendar day view and the booking
workflow's "explain" panel — the same payload is used to render
why a slot is or isn't bookable.
Scope the response to a single offering by supplying both
offering_type and offering_id. When omitted, the response
includes every practitioner, room and equipment item at the site
and skips offering-specific calendars.
The current user must have the reservations.manage permission on
the site to call this endpoint.
The date on which to inspect availability. Expressed as an ISO-8601
date-time anchored in the site's local timezone. Only the date
portion is significant — the endpoint always returns availability
for the full day.
The type of offering to scope availability to. Required when
offering_id is provided. When omitted, the response includes
every practitioner, room and equipment item at the site and skips
offering-specific calendars.
Possible values:appointmentarea_bookingsessioncourseproductpackagevoucher
The identifier of an offering (e.g. an AppointmentType or
AreaBookingType) to focus the response on. When supplied
together with offering_type, the response includes the offering's
calendar availability and only the practitioners, rooms and
equipment associated with that offering.
Responses
200
The availability details were successfully retrieved.
Returns every bookable slot for the given AppointmentType at
the given site between date_time_from and date_time_to.
Each entry includes the slot's start/end time, eligible
practitioners, current capacity, and the per-slot price.
For ranges of one day or less the server runs a live
availability check; longer ranges fall back to the cached
schedule.
exclude_appointments / exclude_basket_items let you ignore
existing bookings or basket items during an edit flow so the
item being edited doesn't block itself.
Comma-separated list of existing appointment IDs to ignore when
calculating resource conflicts. Use this when re-checking
availability during an appointment-edit flow so the appointment
being edited doesn't block itself.
Returns every bookable slot for the given AreaBookingType
between date_time_from and date_time_to. The range may not
exceed one day — large windows are rejected with 400 Bad Request.
Slots are ordered earliest first; ties on start time are
broken by shortest duration first. Pass quantity to size the
slot up for multiple guests (mutually exclusive with guest_id).
Returns the set of start times on a given day where every
requested AppointmentType can be booked back-to-back at the
same site. Used by the booking UI when a customer adds multiple
appointments to their basket and expects them to chain together.
The response is a list of MultiAppointmentSlotGroups — one per
viable start time, each containing the individual slots in
order.
Deprecated. The server logs every call to this endpoint
as a deprecated request. Prefer building the chain with
per-type appointment-slots calls if you are starting from
scratch.
Returns one OfferingDateAvailability per day in the
date_from..date_to range, indicating whether the offering
has any bookable slots on that day plus the cheapest slot
price. Use this to drive a calendar UI that greys-out unbookable
days without firing a slot-level query per day.
The maximum supported range is 31 days. Larger ranges return
400 Bad Request.
Supports appointment, session, package, and area_booking
offering types.
The offering whose date-by-date availability should be returned.
Must be paired with offering_type so the platform knows which
catalogue to look the ID up in (appointments, sessions or
packages). Returns 422 if the ID does not resolve to a live
offering of the supplied type.
Returns every bookable slot for one of the items in a
Package's choice list. Each entry includes the
package_item_id so the caller can attribute the slot back to
the right choice when adding to a basket.
The slot shape mirrors the per-offering availability endpoints
(appointment-slots, area-booking-slots, etc.) — the
underlying offering type drives which fields are populated.
Returns the current sellable stock for the given Product at
its site. Stock-tracking products return their on-hand count;
non-tracking products return a large sentinel quantity_available
(effectively unlimited).
Use this just before adding a product to a basket to confirm
the unit is still purchasable.
Returns every scheduled SessionType occurrence between
date_time_from and date_time_to, with current capacity and
pricing. Use this to build the customer-facing session
calendar.
Unlike appointments, session occurrences are pre-scheduled —
the endpoint reads the published rota rather than computing
slots from rules.