Skip to main content
The Bookings API allows you to create, retrieve, update, and cancel bookings programmatically.

API Version

All booking endpoints require the cal-api-version header:

Authentication

Booking endpoints support multiple authentication methods:
  • API Key: Pass via Authorization: Bearer <api-key> header
  • Access Token: OAuth access token
  • Client Credentials: For public bookings, use x-cal-client-id and x-cal-secret-key headers
  • Optional Auth: Some endpoints allow unauthenticated access

Create a Booking

Create a new booking, recurring booking, or instant booking.

Request Body

number
The ID of the event type to book
string
required
Start time in UTC ISO 8601 format (e.g., “2024-12-10T09:00:00Z”)
object
required
Attendee information
string
Custom meeting URL (optional)
boolean
Set to true for instant meetings (team event types only)
string
Alternative to eventTypeId: provide slug with username/teamSlug
string
Username for individual user bookings (used with eventTypeSlug)
string
Team slug for team bookings (used with eventTypeSlug)

Response

string
Status of the response (“success” or “error”)
object
Booking details

Get a Booking

Retrieve a booking by its UID.

Path Parameters

string
required
The unique identifier of the booking. Can be:
  • UID of a normal booking
  • UID of one recurring booking recurrence
  • UID of recurring booking (returns all recurrences)

Get All Bookings

List all bookings for the authenticated user.

Query Parameters

string
Filter by booking status: “upcoming”, “past”, “cancelled”
number
Number of bookings to return (default: 10)
string
Pagination cursor for next page

Reschedule a Booking

Change the time of an existing booking.

Request Body

string
required
New start time in UTC ISO 8601 format
string
Reason for rescheduling

Cancel a Booking

Cancel an existing booking.

Request Body

string
Reason for cancellation
string
For seated bookings: specific seat to cancel

Additional Endpoints

Confirm a Booking

Confirm a pending booking (requires authentication as booking owner).

Decline a Booking

Decline a pending booking (requires authentication as booking owner).

Mark Absent

Mark an attendee as absent from a booking.

Reassign Booking

Reassign a round-robin booking to a different host.
Get “Add to Calendar” links for a booking.

Get Recordings

Fetch Cal Video recordings for a booking (requires proper authorization).

Get Transcripts

Get Cal Video transcript download links (valid for 1 hour).

Notes

  • The start time must be in UTC. For example, if a meeting should start at 11:00 in Rome (GMT+2), pass 09:00 UTC.
  • For seated bookings with hidden attendees, authentication as event owner/host/team admin/org admin is required to view attendees.
  • Recurring bookings are created by passing an event type ID that is configured as recurring.
  • For SMS reminder workflows, include the attendee’s phoneNumber in international format.