Overview
Add Cal.com to any ModuleX agent or workflow. Scheduling and booking management via the Cal.com v2 REST API (api.cal.com/v2).
Categories: Scheduling & Events · Productivity & Collaboration · Scheduling · Calendar · Auth: API Key · Actions: 6
Authentication
API Key
Authenticate using your Cal.com v2 API keyStep 1
Sign in to Cal.com at https://app.cal.com
Required Credentials
| Field | Description | Required | Format |
|---|---|---|---|
| Cal.com API Key | Your Cal.com v2 API key from Settings > Developer > API Keys | Yes | cal_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Available Actions
create_booking — Create a new booking on Cal.com
create_booking — Create a new booking on Cal.com
Parameters
Type of booking: booking, instant, or recurring
Full name of the attendee
Time zone of the attendee, e.g. America/New_York
Booking start time in ISO 8601 UTC format, e.g. 2024-08-13T09:00:00Z
Email address of the attendee
Phone number in international format, e.g. +919876543210
Language for the booking confirmation
ID of the event type (alternative to slug-based identification)
Slug of the event type (use with username or team_slug)
Username of the individual event owner
Team slug for team event type identification
Organization slug for slug-based event type identification
Booking end time in ISO 8601 format
Override the event type default duration in minutes
Additional guest email addresses to invite
Meeting location type: attendeeAddress, attendeeDefined, attendeePhone, integration
Physical address if location is attendeeAddress
Location string if location is attendeeDefined
Phone number if location is attendeePhone
Video conferencing integration if location is integration
Number of occurrences for recurring booking type
Custom key-value metadata, e.g. {“source”: “website”}
Responses to custom booking form fields keyed by field slug
Bypass availability checks and allow double-booking
Allow booking outside the event type scheduling window
Required when event type has email verification enabled
Response
delete_booking — Cancel an existing booking by its UID
delete_booking — Cancel an existing booking by its UID
get_all_bookings — Retrieve all bookings from Cal.com with optional filters
get_all_bookings — Retrieve all bookings from Cal.com with optional filters
Parameters
Maximum number of pages to fetch (1-500, default 50)
Filter by status: upcoming, recurring, past, cancelled, unconfirmed
Return bookings that start after this time (ISO 8601)
Return bookings that end before this time (ISO 8601)
Return bookings created after this time (ISO 8601)
Return bookings created before this time (ISO 8601)
Filter bookings by attendee email
Filter bookings by attendee name
Filter bookings by booking UID
Filter bookings by event type ID
Sort bookings by start time: asc or desc
Sort bookings by end time: asc or desc
Sort bookings by creation time: asc or desc
Response
get_bookable_slots — Retrieve available bookable slots between a datetime range
get_bookable_slots — Retrieve available bookable slots between a datetime range
Parameters
Start date/time in ISO 8601 format (UTC)
End date/time in ISO 8601 format (UTC)
ID of the event type to get slots for
Slug of the event type (requires username or team_slug)
Username of the individual event owner
List of at least 2 usernames for a dynamic event
Slug of the team for team event type slot lookup
Organization slug for slug-based event type lookup
The time zone for the slot lookup
Override the default slot duration in minutes
Response format: range (start and end) or time (start only)
UID of the booking being rescheduled to exclude from busy calculations
Response
get_booking — Retrieve a booking by its UID
get_booking — Retrieve a booking by its UID
list_event_type_id_options — Retrieve available event types with their IDs
list_event_type_id_options — Retrieve available event types with their IDs
Response
Limits & Quotas
- Cal.com does not publicly document rate limits for the v2 API; enterprise plans may have higher thresholds.
- The free tier has a limited number of event types and team members.
- Error model: non-2xx responses and timeouts are caught and returned as
success=False+errorrather than raising.