Loading endpoint details...
Check availability.
/api/v1/calendars/availabilityBrowse API endpoints
Conversations
Contacts
Calendar and booking
Calendar and booking / CRM REST API
/api/v1/calendars/availabilityCalendar and booking / CRM REST API
Loading endpoint details...
Scope: availability:read
Query parameters:
appointmentTypeId - The appointment type's id from GET /api/v1/calendars/types. Required unless appointmentType is givenappointmentType - The appointment type's name or slug (case-insensitive), as an alternative to appointmentTypeId. A name that matches more than one bookable active type is refused with a 400 listing the candidates and their IDs rather than one being pickeddate - Date in YYYY-MM-DD format. Must be a real calendar date, written with two-digit month and dayendDate - Optional last day of a range, inclusive, so a whole week fits in one request. Must be on or after date and span at most 31 days. A range spends one request's worth of the key's rate-limit allowance per day, because each day is a separate availability computationResponse:
Every slot carries the calendar's IANA timezone, its local date, and a preformatted label in that timezone, so a caller never has to turn a raw timestamp into a day and time itself. The startTime / endTime pair is in the exact form the booking endpoint wants back, so a slot can go straight into a booking without conversion. Class calendars that show seat counts also include seatsRemaining per slot.
Only bookable slots are returned; a taken or blocked time is left out entirely, never returned with available: false. An empty data array is not always "nothing free": it is also the answer when nothing resolved (an unknown, inactive, or out-of-scope appointment type), and meta.appointmentTypeId is null in that case. If a range produces more slots than one response carries, it is cut off after whole days and meta.truncated is true.
Availability accounts for: day-of-week schedules, date overrides (blocked days), existing bookings, buffer times, minimum notice, maximum advance, and seat limits. Every slot returned here can be booked; a booking that still fails with slot_unavailable means someone else took the time between your two calls, so read availability again and offer another slot.