The /bookings endpoint returns your bookings newest-first by default, with optional filters for status, scheduled date range and sort direction. Each record contains the full booking object (booker, service, location, payment state and more) so you rarely need follow-up lookups. All filters are optional and can be combined.
Endpoint
Required scope: bookings.read
Example request
Query parameters
Filter to bookings in a specific state. Accepted values: pending, accepted, declined, cancelled. Omit to return bookings of all statuses.
Return only bookings with a scheduled_at at or after this moment. Provide an ISO 8601 date-time value (e.g. 2026-08-01T00:00:00Z).
Return only bookings with a scheduled_at at or before this moment. Must not precede from when both are supplied.
Sort direction on scheduled_at. Accepted values: asc, desc. Defaults to desc (newest first).
Number of results per page. Between 1 and 100. Defaults to 25.
Page number to return, starting at 1. Defaults to 1.
Response schema
Ordered array of Booking objects matching your filters. Unique booking identifier. Pass this to GET /bookings/{id} for a direct lookup.
Current state of the booking. One of: pending, accepted, declined, cancelled.
The subject or agenda the booker provided when scheduling.
Length of the meeting in minutes.
scheduled_at string (date-time) | null
UTC date-time the meeting is scheduled for. null while the booking has not yet been scheduled.
created_at string (date-time) | null
UTC date-time the booking was first created.
Free-form notes attached to the booking.
The reason provided when the booking was declined or cancelled. null for all other statuses.
The person who made the booking. Additional seats on group bookings. Empty array for one-to-one meetings. Attendee’s email address.
The service this booking was made against. URL-safe service identifier.
Human-readable service name.
true if multiple people can book the same time slot.
Seat cap for group services. null for one-to-one or uncapped services.
true if this service was booked via a private link not listed on your public profile.
Where the meeting takes place. One of video, in_person, none, or null.
Human-readable location name shown to the booker.
Physical address for in_person meetings. null for all other types.
Checkout URL for paid meetings while payment is still outstanding. null once payment is settled or for free meetings.
Video call URL sent to all participants. null for non-video meetings.
Payment state for this booking. One of: none, pending, paid, failed, refunded.
Price in minor currency units. For example, 5000 equals €50.00. null for free meetings.
ISO 4217 currency code (e.g. EUR, USD).
Pagination links for navigating the full result set. URL of the previous page. null when you are on the first page.
URL of the next page. null when you are on the last page.
Pagination metadata for the current response. The page number returned in this response.
Index of the first result in the current page, relative to the full result set.
Index of the last result in the current page.
Total number of pages available.
Number of results per page used for this response.
Total number of matching bookings across all pages.
Base URL of this endpoint, without pagination query parameters.
Array of numbered pager link objects for building a page-number UI.
Example response
Combine status=accepted, a from timestamp and order=asc to walk your upcoming confirmed schedule in chronological order. Ideal for syncing bookings to a calendar or a “what’s next” dashboard widget.
Errors