The Schedules API allows you to create, retrieve, update, and delete availability schedules that define when users can be booked.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/calcom/cal.com/llms.txt
Use this file to discover all available pages before exploring further.
API Version
Schedule endpoints require thecal-api-version header:
Authentication
All schedule endpoints require authentication:- API Key: Pass via
Authorization: Bearer <api-key>header - Access Token: OAuth access token
SCHEDULE_READfor GET operationsSCHEDULE_WRITEfor POST, PATCH, DELETE operations
Overview
Schedules define when a user is available for bookings. Each user should have:- Default Schedule: The primary availability schedule used when event types don’t specify a custom schedule
- Custom Schedules: Additional schedules that specific event types can reference
Create a Schedule
Create a new availability schedule.Request Body
Schedule name (e.g., “Default Schedule”, “Evening Hours”)
IANA timezone (e.g., “America/New_York”, “Europe/London”)
Whether this is the default schedule. Each user should have exactly one default schedule.
Array of availability rules
Date-specific overrides
Response
Status of the response (“success”)
Schedule details
Get Default Schedule
Retrieve the authenticated user’s default schedule.Response
Returns the default schedule object, or null if no default schedule exists.Get a Schedule
Retrieve a specific schedule by ID.Path Parameters
The ID of the schedule to retrieve
Get All Schedules
List all schedules for the authenticated user.Response
Update a Schedule
Update an existing schedule.Path Parameters
The ID of the schedule to update
Request Body
All fields from the create endpoint are supported. Only include fields you want to update.Delete a Schedule
Delete a schedule.Path Parameters
The ID of the schedule to delete
Response
Day Numbers
When specifying days in theavailability array, use these numbers:
- 0 = Sunday
- 1 = Monday
- 2 = Tuesday
- 3 = Wednesday
- 4 = Thursday
- 5 = Friday
- 6 = Saturday
Time Format
Use 24-hour time format for start and end times:- Morning: “09:00”, “08:30”
- Afternoon: “13:00”, “14:30”
- Evening: “17:00”, “20:00”
Example Schedules
Standard Business Hours (9-5, Weekdays)
Split Schedule (Morning and Afternoon)
Weekend Availability
Managed Users
For platform customers managing users:- Pass timezone when creating managed users to automatically create a default schedule (Monday-Friday, 9AM-5PM)
- Without a default schedule, users cannot be booked or manage availability
- Users can modify their schedule via the AvailabilitySettings atom
Linking Schedules to Event Types
After creating a schedule, you can link it to event types:Notes
- Each user must have exactly one default schedule
- Schedules are in the user’s specified timezone
- Event types without a specific scheduleId use the default schedule
- You can create multiple schedules for different availability patterns
- Use overrides for date-specific changes (holidays, time off, etc.)