Cal Com
Manage Cal.com bookings, event types, schedules, and availability
Integrate Cal.com into your workflow. Create and manage bookings, event types, schedules, and check availability slots. Supports creating, listing, rescheduling, and canceling bookings, as well as managing event types and schedules. Can also trigger workflows based on Cal.com webhook events (booking created, cancelled, rescheduled). Connect your Cal.com account via OAuth.
| Parameter | Type | Required | Description |
|---|
eventTypeId | number | Yes | No description |
start | string | Yes | No description |
attendee | object | Yes | Attendee information object with name, email, timeZone, and optional phoneNumber (constructed from individual attendee fields) |
guests | array | No | Array of guest email addresses |
items | string | No | No description |
lengthInMinutes | number | No | No description |
metadata | object | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Created booking details |
↳ eventType | object | Event type details |
↳ id | number | Event type ID |
↳ slug | string | Event type slug |
↳ attendees | array | List of attendees |
↳ name | string | Attendee name |
↳ email | string | Attendee actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ timeZone | string | Attendee timezone (IANA format) |
↳ phoneNumber | string | Attendee phone number |
↳ language | string | Attendee language preference (ISO code) |
↳ absent | boolean | Whether attendee was absent |
↳ hosts | array | List of hosts |
↳ id | number | Host user ID |
↳ name | string | Host display name |
↳ email | string | Host actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ username | string | Host Cal.com username |
↳ timeZone | string | Host timezone (IANA format) |
↳ id | number | Numeric booking ID |
↳ uid | string | Unique identifier for the booking |
↳ title | string | Title of the booking |
↳ status | string | Booking status (e.g., accepted, pending, cancelled) |
↳ start | string | Start time in ISO 8601 format |
↳ end | string | End time in ISO 8601 format |
↳ duration | number | Duration in minutes |
↳ eventTypeId | number | Event type ID |
↳ meetingUrl | string | URL to join the meeting |
↳ location | string | Location of the booking |
↳ absentHost | boolean | Whether the host was absent |
↳ guests | array | Guest email addresses |
↳ bookingFieldsResponses | json | Custom booking field responses (dynamic keys based on event type configuration) |
↳ metadata | json | Custom metadata attached to the booking (dynamic key-value pairs) |
↳ icsUid | string | ICS calendar UID |
↳ createdAt | string | When the booking was created |
| Parameter | Type | Required | Description |
|---|
bookingUid | string | Yes | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Booking details |
↳ eventType | object | Event type details |
↳ id | number | Event type ID |
↳ slug | string | Event type slug |
↳ attendees | array | List of attendees |
↳ name | string | Attendee name |
↳ email | string | Attendee actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ timeZone | string | Attendee timezone (IANA format) |
↳ phoneNumber | string | Attendee phone number |
↳ language | string | Attendee language preference (ISO code) |
↳ absent | boolean | Whether attendee was absent |
↳ hosts | array | List of hosts |
↳ id | number | Host user ID |
↳ name | string | Host display name |
↳ email | string | Host actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ username | string | Host Cal.com username |
↳ timeZone | string | Host timezone (IANA format) |
↳ id | number | Numeric booking ID |
↳ uid | string | Unique identifier for the booking |
↳ title | string | Title of the booking |
↳ description | string | Description of the booking |
↳ status | string | Booking status (e.g., accepted, pending, cancelled) |
↳ start | string | Start time in ISO 8601 format |
↳ end | string | End time in ISO 8601 format |
↳ duration | number | Duration in minutes |
↳ eventTypeId | number | Event type ID |
↳ meetingUrl | string | URL to join the meeting |
↳ location | string | Location of the booking |
↳ absentHost | boolean | Whether the host was absent |
↳ guests | array | Guest email addresses |
↳ bookingFieldsResponses | json | Custom booking field responses (dynamic keys based on event type configuration) |
↳ metadata | json | Custom metadata attached to the booking (dynamic key-value pairs) |
↳ rating | number | Booking rating |
↳ icsUid | string | ICS calendar UID |
↳ cancellationReason | string | Reason for cancellation if cancelled |
↳ reschedulingReason | string | Reason for rescheduling if rescheduled |
↳ rescheduledFromUid | string | Original booking UID if this booking was rescheduled |
↳ rescheduledToUid | string | New booking UID after reschedule |
↳ cancelledByEmail | string | Email of person who cancelled the booking |
↳ rescheduledByEmail | string | Email of person who rescheduled the booking |
↳ createdAt | string | When the booking was created |
↳ updatedAt | string | When the booking was last updated |
| Parameter | Type | Required | Description |
|---|
status | string | No | Filter bookings by status: upcoming, recurring, past, cancelled, or unconfirmed |
take | number | No | No description |
skip | number | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | array | Array of bookings |
↳ eventType | object | Event type details |
↳ id | number | Event type ID |
↳ slug | string | Event type slug |
↳ attendees | array | List of attendees |
↳ name | string | Attendee name |
↳ email | string | Attendee actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ timeZone | string | Attendee timezone (IANA format) |
↳ phoneNumber | string | Attendee phone number |
↳ language | string | Attendee language preference (ISO code) |
↳ absent | boolean | Whether attendee was absent |
↳ hosts | array | List of hosts |
↳ id | number | Host user ID |
↳ name | string | Host display name |
↳ email | string | Host actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ username | string | Host Cal.com username |
↳ timeZone | string | Host timezone (IANA format) |
↳ id | number | Numeric booking ID |
↳ uid | string | Unique identifier for the booking |
↳ title | string | Title of the booking |
↳ description | string | Description of the booking |
↳ status | string | Booking status (e.g., accepted, pending, cancelled) |
↳ start | string | Start time in ISO 8601 format |
↳ end | string | End time in ISO 8601 format |
↳ duration | number | Duration in minutes |
↳ eventTypeId | number | Event type ID |
↳ meetingUrl | string | URL to join the meeting |
↳ location | string | Location of the booking |
↳ absentHost | boolean | Whether the host was absent |
↳ guests | array | Guest email addresses |
↳ bookingFieldsResponses | json | Custom booking field responses (dynamic keys based on event type configuration) |
↳ metadata | json | Custom metadata attached to the booking (dynamic key-value pairs) |
↳ rating | number | Booking rating |
↳ icsUid | string | ICS calendar UID |
↳ cancellationReason | string | Reason for cancellation if cancelled |
↳ cancelledByEmail | string | Email of person who cancelled the booking |
↳ reschedulingReason | string | Reason for rescheduling if rescheduled |
↳ rescheduledByEmail | string | Email of person who rescheduled the booking |
↳ rescheduledFromUid | string | Original booking UID if this booking was rescheduled |
↳ rescheduledToUid | string | New booking UID after reschedule |
↳ createdAt | string | When the booking was created |
↳ updatedAt | string | When the booking was last updated |
pagination | object | Pagination metadata |
↳ totalItems | number | Total number of items |
↳ remainingItems | number | Remaining items after current page |
↳ returnedItems | number | Number of items returned in this response |
↳ itemsPerPage | number | Items per page |
↳ currentPage | number | Current page number |
↳ totalPages | number | Total number of pages |
↳ hasNextPage | boolean | Whether there is a next page |
↳ hasPreviousPage | boolean | Whether there is a previous page |
| Parameter | Type | Required | Description |
|---|
bookingUid | string | Yes | No description |
cancellationReason | string | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Cancelled booking details |
↳ eventType | object | Event type details |
↳ id | number | Event type ID |
↳ slug | string | Event type slug |
↳ attendees | array | List of attendees |
↳ name | string | Attendee name |
↳ email | string | Attendee actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ timeZone | string | Attendee timezone (IANA format) |
↳ phoneNumber | string | Attendee phone number |
↳ language | string | Attendee language preference (ISO code) |
↳ absent | boolean | Whether attendee was absent |
↳ hosts | array | List of hosts |
↳ id | number | Host user ID |
↳ name | string | Host display name |
↳ email | string | Host actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ username | string | Host Cal.com username |
↳ timeZone | string | Host timezone (IANA format) |
↳ id | number | Numeric booking ID |
↳ uid | string | Unique identifier for the booking |
↳ title | string | Title of the booking |
↳ cancellationReason | string | Reason for cancellation if cancelled |
↳ cancelledByEmail | string | Email of person who cancelled the booking |
↳ start | string | Start time in ISO 8601 format |
↳ end | string | End time in ISO 8601 format |
↳ duration | number | Duration in minutes |
↳ eventTypeId | number | Event type ID |
↳ location | string | Location of the booking |
↳ metadata | json | Custom metadata attached to the booking (dynamic key-value pairs) |
↳ createdAt | string | When the booking was created |
↳ status | string | Booking status (should be cancelled) |
| Parameter | Type | Required | Description |
|---|
bookingUid | string | Yes | No description |
start | string | Yes | No description |
reschedulingReason | string | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Rescheduled booking details |
↳ eventType | object | Event type details |
↳ id | number | Event type ID |
↳ slug | string | Event type slug |
↳ attendees | array | List of attendees |
↳ name | string | Attendee name |
↳ email | string | Attendee actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ timeZone | string | Attendee timezone (IANA format) |
↳ phoneNumber | string | Attendee phone number |
↳ language | string | Attendee language preference (ISO code) |
↳ absent | boolean | Whether attendee was absent |
↳ hosts | array | List of hosts |
↳ id | number | Host user ID |
↳ name | string | Host display name |
↳ email | string | Host actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ username | string | Host Cal.com username |
↳ timeZone | string | Host timezone (IANA format) |
↳ id | number | Numeric booking ID |
↳ title | string | Title of the booking |
↳ status | string | Booking status (e.g., accepted, pending, cancelled) |
↳ reschedulingReason | string | Reason for rescheduling if rescheduled |
↳ rescheduledFromUid | string | Original booking UID if this booking was rescheduled |
↳ rescheduledByEmail | string | Email of person who rescheduled the booking |
↳ duration | number | Duration in minutes |
↳ eventTypeId | number | Event type ID |
↳ meetingUrl | string | URL to join the meeting |
↳ location | string | Location of the booking |
↳ guests | array | Guest email addresses |
↳ metadata | json | Custom metadata attached to the booking (dynamic key-value pairs) |
↳ icsUid | string | ICS calendar UID |
↳ createdAt | string | When the booking was created |
↳ uid | string | Unique identifier for the new booking |
↳ start | string | New start time in ISO 8601 format |
↳ end | string | New end time in ISO 8601 format |
| Parameter | Type | Required | Description |
|---|
bookingUid | string | Yes | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Confirmed booking details |
↳ eventType | object | Event type details |
↳ id | number | Event type ID |
↳ slug | string | Event type slug |
↳ attendees | array | List of attendees |
↳ name | string | Attendee name |
↳ email | string | Attendee actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ timeZone | string | Attendee timezone (IANA format) |
↳ phoneNumber | string | Attendee phone number |
↳ language | string | Attendee language preference (ISO code) |
↳ absent | boolean | Whether attendee was absent |
↳ hosts | array | List of hosts |
↳ id | number | Host user ID |
↳ name | string | Host display name |
↳ email | string | Host actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ username | string | Host Cal.com username |
↳ timeZone | string | Host timezone (IANA format) |
↳ id | number | Numeric booking ID |
↳ uid | string | Unique identifier for the booking |
↳ title | string | Title of the booking |
↳ start | string | Start time in ISO 8601 format |
↳ end | string | End time in ISO 8601 format |
↳ duration | number | Duration in minutes |
↳ eventTypeId | number | Event type ID |
↳ meetingUrl | string | URL to join the meeting |
↳ location | string | Location of the booking |
↳ guests | array | Guest email addresses |
↳ metadata | json | Custom metadata attached to the booking (dynamic key-value pairs) |
↳ icsUid | string | ICS calendar UID |
↳ createdAt | string | When the booking was created |
↳ status | string | Booking status (should be accepted/confirmed) |
| Parameter | Type | Required | Description |
|---|
bookingUid | string | Yes | No description |
reason | string | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Declined booking details |
↳ eventType | object | Event type details |
↳ id | number | Event type ID |
↳ slug | string | Event type slug |
↳ attendees | array | List of attendees |
↳ name | string | Attendee name |
↳ email | string | Attendee actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ timeZone | string | Attendee timezone (IANA format) |
↳ phoneNumber | string | Attendee phone number |
↳ language | string | Attendee language preference (ISO code) |
↳ absent | boolean | Whether attendee was absent |
↳ hosts | array | List of hosts |
↳ id | number | Host user ID |
↳ name | string | Host display name |
↳ email | string | Host actual email address |
↳ displayEmail | string | Email shown publicly (may differ from actual email) |
↳ username | string | Host Cal.com username |
↳ timeZone | string | Host timezone (IANA format) |
↳ id | number | Numeric booking ID |
↳ uid | string | Unique identifier for the booking |
↳ title | string | Title of the booking |
↳ cancellationReason | string | Reason for cancellation if cancelled |
↳ start | string | Start time in ISO 8601 format |
↳ end | string | End time in ISO 8601 format |
↳ duration | number | Duration in minutes |
↳ eventTypeId | number | Event type ID |
↳ location | string | Location of the booking |
↳ metadata | json | Custom metadata attached to the booking (dynamic key-value pairs) |
↳ createdAt | string | When the booking was created |
↳ status | string | Booking status (should be cancelled/rejected) |
| Parameter | Type | Required | Description |
|---|
title | string | Yes | No description |
slug | string | Yes | No description |
lengthInMinutes | number | Yes | No description |
description | string | No | No description |
slotInterval | number | No | No description |
minimumBookingNotice | number | No | No description |
beforeEventBuffer | number | No | No description |
afterEventBuffer | number | No | No description |
scheduleId | number | No | No description |
disableGuests | boolean | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Created event type details |
↳ id | number | Event type ID |
↳ title | string | Event type title |
↳ slug | string | Event type slug |
↳ description | string | Event type description |
↳ lengthInMinutes | number | Duration in minutes |
↳ slotInterval | number | Slot interval in minutes |
↳ minimumBookingNotice | number | Minimum booking notice in minutes |
↳ beforeEventBuffer | number | Buffer before event in minutes |
↳ afterEventBuffer | number | Buffer after event in minutes |
↳ scheduleId | number | Schedule ID |
↳ disableGuests | boolean | Whether guests are disabled |
↳ createdAt | string | ISO timestamp of creation |
↳ updatedAt | string | ISO timestamp of last update |
| Parameter | Type | Required | Description |
|---|
eventTypeId | number | Yes | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Event type details |
↳ id | number | Event type ID |
↳ title | string | Event type title |
↳ slug | string | Event type slug |
↳ description | string | Event type description |
↳ lengthInMinutes | number | Duration in minutes |
↳ slotInterval | number | Slot interval in minutes |
↳ minimumBookingNotice | number | Minimum booking notice in minutes |
↳ beforeEventBuffer | number | Buffer before event in minutes |
↳ afterEventBuffer | number | Buffer after event in minutes |
↳ scheduleId | number | Schedule ID |
↳ disableGuests | boolean | Whether guests are disabled |
↳ createdAt | string | ISO timestamp of creation |
↳ updatedAt | string | ISO timestamp of last update |
| Parameter | Type | Required | Description |
|---|
sortCreatedAt | string | No | Sort by creation date: "asc" or "desc" |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | array | Array of event types |
↳ id | number | Event type ID |
↳ title | string | Event type title |
↳ slug | string | Event type slug |
↳ description | string | Event type description |
↳ lengthInMinutes | number | Duration in minutes |
↳ slotInterval | number | Slot interval in minutes |
↳ minimumBookingNotice | number | Minimum booking notice in minutes |
↳ beforeEventBuffer | number | Buffer before event in minutes |
↳ afterEventBuffer | number | Buffer after event in minutes |
↳ scheduleId | number | Schedule ID |
↳ disableGuests | boolean | Whether guests are disabled |
↳ createdAt | string | ISO timestamp of creation |
↳ updatedAt | string | ISO timestamp of last update |
| Parameter | Type | Required | Description |
|---|
eventTypeId | number | Yes | No description |
title | string | No | No description |
slug | string | No | No description |
lengthInMinutes | number | No | No description |
description | string | No | No description |
slotInterval | number | No | No description |
minimumBookingNotice | number | No | No description |
beforeEventBuffer | number | No | No description |
afterEventBuffer | number | No | No description |
scheduleId | number | No | No description |
disableGuests | boolean | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Updated event type details |
↳ id | number | Event type ID |
↳ title | string | Event type title |
↳ slug | string | Event type slug |
↳ description | string | Event type description |
↳ lengthInMinutes | number | Duration in minutes |
↳ slotInterval | number | Slot interval in minutes |
↳ minimumBookingNotice | number | Minimum booking notice in minutes |
↳ beforeEventBuffer | number | Buffer before event in minutes |
↳ afterEventBuffer | number | Buffer after event in minutes |
↳ scheduleId | number | Schedule ID |
↳ disableGuests | boolean | Whether guests are disabled |
↳ createdAt | string | ISO timestamp of creation |
↳ updatedAt | string | ISO timestamp of last update |
| Parameter | Type | Required | Description |
|---|
eventTypeId | number | Yes | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Deleted event type details |
↳ id | number | Event type ID |
↳ lengthInMinutes | number | Duration in minutes |
↳ title | string | Event type title |
↳ slug | string | Event type slug |
| Parameter | Type | Required | Description |
|---|
name | string | Yes | No description |
timeZone | string | Yes | No description |
isDefault | boolean | Yes | No description |
availability | array | No | Availability intervals for the schedule |
items | object | No | Availability interval |
properties | array | No | Days of the week (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) |
days | array | No | Days of the week (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) |
startTime | string | No | No description |
endTime | string | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Created schedule data |
↳ id | number | Schedule ID |
↳ ownerId | number | Owner user ID |
↳ name | string | Schedule name |
↳ timeZone | string | Timezone (e.g., America/New_York) |
↳ isDefault | boolean | Whether this is the default schedule |
↳ availability | array | Availability windows |
↳ days | array | Days of the week (Monday, Tuesday, etc.) |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
↳ overrides | array | Date-specific availability overrides |
↳ date | string | Date in YYYY-MM-DD format |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
| Parameter | Type | Required | Description |
|---|
scheduleId | string | Yes | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Schedule data |
↳ id | number | Schedule ID |
↳ ownerId | number | Owner user ID |
↳ name | string | Schedule name |
↳ timeZone | string | Timezone (e.g., America/New_York) |
↳ isDefault | boolean | Whether this is the default schedule |
↳ availability | array | Availability windows |
↳ days | array | Days of the week (Monday, Tuesday, etc.) |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
↳ overrides | array | Date-specific availability overrides |
↳ date | string | Date in YYYY-MM-DD format |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
status | string | Response status |
data | array | Array of schedule objects |
↳ id | number | Schedule ID |
↳ ownerId | number | Owner user ID |
↳ name | string | Schedule name |
↳ timeZone | string | Timezone (e.g., America/New_York) |
↳ isDefault | boolean | Whether this is the default schedule |
↳ availability | array | Availability windows |
↳ days | array | Days of the week (Monday, Tuesday, etc.) |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
↳ overrides | array | Date-specific availability overrides |
↳ date | string | Date in YYYY-MM-DD format |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
| Parameter | Type | Required | Description |
|---|
scheduleId | string | Yes | No description |
name | string | No | No description |
timeZone | string | No | No description |
isDefault | boolean | No | No description |
availability | array | No | New availability intervals for the schedule |
items | object | No | Availability interval |
properties | array | No | Days of the week (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) |
days | array | No | Days of the week (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) |
startTime | string | No | No description |
endTime | string | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Updated schedule data |
↳ id | number | Schedule ID |
↳ ownerId | number | Owner user ID |
↳ name | string | Schedule name |
↳ timeZone | string | Timezone (e.g., America/New_York) |
↳ isDefault | boolean | Whether this is the default schedule |
↳ availability | array | Availability windows |
↳ days | array | Days of the week (Monday, Tuesday, etc.) |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
↳ overrides | array | Date-specific availability overrides |
↳ date | string | Date in YYYY-MM-DD format |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
| Parameter | Type | Required | Description |
|---|
scheduleId | string | Yes | No description |
| Parameter | Type | Description |
|---|
status | string | Response status (success or error) |
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
status | string | Response status |
data | object | Default schedule data |
↳ id | number | Schedule ID |
↳ ownerId | number | Owner user ID |
↳ name | string | Schedule name |
↳ timeZone | string | Timezone (e.g., America/New_York) |
↳ isDefault | boolean | Whether this is the default schedule |
↳ availability | array | Availability windows |
↳ days | array | Days of the week (Monday, Tuesday, etc.) |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
↳ overrides | array | Date-specific availability overrides |
↳ date | string | Date in YYYY-MM-DD format |
↳ startTime | string | Start time in HH:MM format |
↳ endTime | string | End time in HH:MM format |
| Parameter | Type | Required | Description |
|---|
start | string | Yes | No description |
end | string | Yes | No description |
eventTypeId | number | No | No description |
eventTypeSlug | string | No | No description |
username | string | No | No description |
timeZone | string | No | No description |
duration | number | No | No description |
| Parameter | Type | Description |
|---|
status | string | Response status |
data | json | Available time slots grouped by date (YYYY-MM-DD keys). Each date maps to an array of slot objects with start time, optional end time, and seated event info. |