This article presents possible use cases and corresponding sample flows that you can support. It provides a useful starting point as you plan your implementation. See our complete step-by-step overview of the full booking process, including service selection, availability checks, booking creation, and payment for end-to-end flows.
You can check availability for appointment-based services to help customers find and book suitable time slots.
To book an appointment:
serviceId, timeZone, fromLocalDate, and toLocalDate as filters. Save the relevant time slot details.localStartDate and localEndDate.You can check availability for class sessions to help customers find and book available spots.
To book a class session:
serviceId, timeZone, fromLocalDate, toLocalDate, and the number of openSpots the customer intends to book as filters. Save the eventId from the selected time slot.eventId to get detailed information about the class session.You can check availability for appointment-based services that let the customer choose a duration within a range. For hourly duration-range services, a two-call approach is used: first retrieve available start times, then retrieve the available end times for the selected start.
To book a duration-range appointment:
schedule.availabilityConstraints.durationRange configured. Note the durationRange.hourConfig values for the minimum and maximum durations.serviceId, timeZone, fromLocalDate, and toLocalDate. Each returned time slot represents an available start time. The slot's localEndDate reflects the minimum bookable duration.localStartDate and location. The response contains available end times for that start, sorted by localEndDate in ascending order.localStartDate and localEndDate to retrieve the available resources for the slot.You can check availability for daily duration-range services where the resource has no working hours schedule (a 24/7 resource). Each available day spans midnight to midnight, and the selected range is booked as a single booking.
To book a daily duration-range appointment with a 24/7 resource:
schedule.availabilityConstraints.durationRange configured with a daily unit type.serviceId, timeZone, fromLocalDate, and toLocalDate. Each returned time slot represents one available day split at midnight with allDay set to true. Walk the list forward from the customer's chosen start date and stop at the first gap to determine the valid date range.localStartDate of the first slot to the localEndDate of the last slot. Call Create Booking with the merged start and end times to complete the booking.You can check availability for daily duration-range services where the resource is associated with a working hours schedule. Each available day spans the resource's working hours (for example, 09
to 18), and the selected days are booked together as a consecutive multi-service booking.To book a daily duration-range appointment with a working hours resource:
schedule.availabilityConstraints.durationRange configured with a daily unit type.serviceId, timeZone, fromLocalDate, and toLocalDate. Each returned time slot represents one available day spanning the resource's working hours. Walk the list forward from the customer's chosen start date and stop at the first gap to determine the valid date range.You can check availability for multiple services in sequence to help customers book comprehensive service packages.
To check availability for multi-service bookings:
?type=APPOINTMENT to identify the business time zone and relevant service IDs.serviceIds, timeZone, fromLocalDate, toLocalDate, and location as filters. Use bookable: true to get only bookable slots and cursorPaging.limit: 100 for pagination.localStartDate and localEndDate values from the selected slot.Last updated: 12 July 2026