API Version
All booking endpoints require thecal-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-idandx-cal-secret-keyheaders - 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 Calendar Links
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
starttime 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
phoneNumberin international format.