Skip to content

Availability

/connect/availability/ returns the bookable slots within a time window. Use it to render a custom booking UI, find slots for voice-agent integrations, or pre-validate a slot before creating a booking.

MethodPathScope
GET/connect/availability/read
  • Slots are returned regardless of available status — both bookable and full slots come back. Filter to available: true client-side if you only want bookable ones.
  • resourceSlotId pins a specific slot — pass it back unchanged in the booking POST to lock the exact slot you displayed to the user.
  • Filter by resourceId to constrain availability to a single resource (useful when the agent should stay with one resource per session).
  • Slots can fill between /availability/ and /calendar_bookings/. The booking POST does a transactional capacity recheck. See Race conditions.
  • Replaces the deprecated /calendar_schedule_types/:id/available. Migrate any integration still using schedule types — the new endpoint is the canonical model on the resource planner.

Query parameters:

{
calendarId: string;
appointmentTypeId: string;
resourceId?: string;
start: string /* ISO-8601 */;
end: string /* ISO-8601 */;
includeUnavailable?: boolean;
stepLength?: number;
}

Response:

{
data: {
resourceId: string;
resourceName: string;
resourceColor: string;
resourceSlotId: string;
appointmentTypeId: string;
startDateTime: string /* ISO-8601 */;
endDateTime: string /* ISO-8601 */;
maxParallelBookings: number;
currentBookings: number;
available: boolean;
}[];
meta: {
appointmentTypeName: string;
defaultBookingLength: number;
bufferAfter: number;
dynamicLength: boolean;
};
}