status field is the source of truth for where a booking sits at any moment.
Booking statuses
Manual approval mode (every booking starts
pending until you accept or decline) is Pro only. On the free tier, bookings go straight to accepted.Booking fields
The booking object returned by the API contains the following fields:string
Unique ID for the booking. Use it to retrieve or reference the booking in API calls.
string
Current state. One of
pending, accepted, declined or cancelled. See Booking statuses.string
When the request was submitted, as a UTC ISO 8601 timestamp (e.g.
2025-09-15T08:42:00Z).string | null
When the meeting starts, as a UTC ISO 8601 timestamp (e.g.
2025-09-15T10:00:00Z). null if not yet scheduled.integer
Meeting length in minutes, as set on the service at booking time.
string
Free-text description of what the booker wants to cover.
object
object
Name and email of the person who made the booking.
array
Additional attendees for group bookings, each with a name and email. Empty for one-to-one bookings.
object
string | null
Video call URL when location is
video. null for in-person or none.object
string | null
Reason given on decline or cancel.
null while active.string | null
Any extra notes from you or the booker.
Payment info
Amounts are in minor currency units, the smallest denomination of the currency. For EUR and USD, divide by 100.payment.status = "none" and payment.amount = 0. pending means the invoice is issued but not yet paid.
For paid bookings that haven’t been paid yet, the booking object also has a
meeting_link field. That’s the checkout link the booker uses to pay. It’s not the same as conference_link, which is the video URL for the meeting itself. Don’t present meeting_link as where the meeting happens.Fetch bookings via the API:
- List Bookings. Paginated list with status and date filters.
- Get Booking. Full booking object for a single ID.