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
The ID of the event type to book
Start time in UTC ISO 8601 format (e.g., “2024-12-10T09:00:00Z”)
Attendee information
Custom meeting URL (optional)
Set to true for instant meetings (team event types only)
Alternative to eventTypeId: provide slug with username/teamSlug
Username for individual user bookings (used with eventTypeSlug)
Team slug for team bookings (used with eventTypeSlug)
Response
Status of the response (“success” or “error”)
Booking details
Get a Booking
Retrieve a booking by its UID.Path Parameters
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
Filter by booking status: “upcoming”, “past”, “cancelled”
Number of bookings to return (default: 10)
Pagination cursor for next page
Reschedule a Booking
Change the time of an existing booking.Request Body
New start time in UTC ISO 8601 format
Reason for rescheduling
Cancel a Booking
Cancel an existing booking.Request Body
Reason for cancellation
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.