Bookings API
Errors
Every error is a JSON object with a single error string, written to be shown to a person:
{ "error": "<message>" }HTTP status codes
| Status | Meaning |
|---|---|
200 | Success |
201 Created | A booking, meeting type or calendar meeting was created |
400 Bad Request | A missing or invalid field, bad hours, or a range that is too long |
401 Unauthorized | Missing, malformed, expired, or revoked API key |
403 Forbidden | The key lacks the scope: read:bookings, write:bookings or write:calendar |
404 Not Found | No booking, meeting type, host or linked record with that ID in this workspace |
409 Conflict | The time is taken, the booking is already cancelled, or the meeting type is paused or its host deactivated |
429 Too Many Requests | Rate limit exceeded |
Examples
{ "error": "That time has just been booked. Please pick another one." }{ "error": "This meeting has already been cancelled." }{ "error": "This meeting type is paused and isn't taking bookings." }{ "error": "No active user with that hostUserId in this workspace." }{ "error": "Connect your Google calendar in Scheduling → Availability to use Google Meet." }{ "error": "timezone must be an IANA time zone name, like America/New_York." }{ "error": "The date range cannot exceed 62 days." }Each API key is limited to 120 requests per minute. Exceeding it returns 429 with a Retry-After header giving the seconds until the window resets.