Skip to content

Cal.com

Cal.com

Cal.com is an open-source scheduling platform that simplifies meeting coordination through shareable booking pages, calendar syncing, and availability management. With the Cal.com integration in SquadOS, your agents can create, cancel, and reschedule meetings, check available time slots, manage event types, and configure availability schedules — all programmatically, without manual intervention.

This tool supports two authentication modes: OAuth 2.0 (OAUTH2) and API key (API_KEY).

You will need the following fields (API_KEY mode):

FieldRequiredDescription
api_keyYesAPI key generated in the Cal.com dashboard under Settings → Developer → API Keys.

For OAuth 2.0 mode, no manual fields are needed — the authorization flow is completed on the Composio secure connection page.

To use API key mode:

  1. Go to app.cal.com and log in to your account.
  2. Click Settings in the left sidebar.
  3. Go to Developer → API Keys.
  4. Click Add to generate a new key.
  5. Give the key a name (e.g., “SquadOS”) and set the desired expiration date.
  6. Copy the generated value — it will not be displayed again.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Cal.com.
  3. Click the card to open the details modal and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access via OAuth 2.0 or enter the API key obtained above.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available to your agents. (Connection-flow details in Organization Tools.)

CAL_POST_NEW_BOOKING_REQUEST

Creates a new booking for an event type at a specified start time. Use this action to schedule a meeting with a Cal.com user. Prerequisites: (1) get a valid event type ID from CAL_LIST_EVENT_TYPES; (2) find an available time slot using CAL_GET_AVAILABLE_SLOTS_INFO; (3) provide attendee name and email in the responses object. The booking will be created with status ACCEPTED if no confirmation is required, or PENDING if the event type requires host confirmation.

NameTypeRequiredDescription
startstringYesStart date and time in ISO 8601 format in UTC (e.g., ‘2024-09-15T10:00:00Z’). Must be an available slot from CAL_GET_AVAILABLE_SLOTS_INFO.
languagestringYesISO 639-1 language code for communications with the attendee (e.g., ‘en’ for English, ‘es’ for Spanish).
timeZonestringYesIANA timezone identifier for the attendee (e.g., ‘America/New_York’, ‘Europe/London’).
responsesobjectYesAttendee details object. Required keys: name (full name) and email (valid email address).
eventTypeIdintegerNoUnique numeric identifier of the event type to be booked. Required if eventTypeSlug is not provided.
eventTypeSlugstringNoSlug of the event type. When used, must be combined with username or teamSlug.
guestsarrayNoList of additional guest email addresses to invite.
locationobjectNoLocation object matching one of the event type’s configured locations.
metadataobjectNoCustom key-value metadata for tracking or analytics. Max 50 keys.
lengthInMinutesintegerNoDuration of the event in minutes. Only use when the event type supports multiple selectable durations.
bookingFieldsResponsesobjectNoResponses to custom booking fields defined for the event type. Required if the event type has mandatory custom fields.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_FETCH_ALL_BOOKINGS

Fetches a list of bookings for the authenticated user, optionally filtered by status, attendee, date range, or by event/team IDs, with support for pagination and sorting.

NameTypeRequiredDescription
skipintegerNoNumber of bookings to skip from the beginning of results (for pagination).
takeintegerNoMaximum number of bookings to return (for pagination).
statusarrayNoFilter bookings by status. E.g., ["upcoming", "past"].
teamIdintegerNoFilter bookings by a single team ID of which the user is a member.
afterStartstringNoFilter bookings starting after this ISO 8601 date/time string.
beforeEndstringNoFilter bookings ending before this ISO 8601 date/time string.
eventTypeIdintegerNoFilter by event type ID belonging to the user.
attendeeEmailstringNoFilter by the exact email address of an attendee.
attendeeNamestringNoFilter by the name of an attendee.
sortStartstringNoSort results by booking start time (asc or desc).
sortEndstringNoSort results by booking end time (asc or desc).
sortCreatedstringNoSort results by booking creation time (asc or desc).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_RETRIEVE_BOOKING_DETAILS_BY_UID

Fetches comprehensive details for an existing booking, identified by its bookingUid.

NameTypeRequiredDescription
bookingUidstringYesUnique identifier (UID) of the booking.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_RESCHEDULE_BOOKING_BY_UID

Reschedules an existing booking (identified by bookingUid) to a new time. Requires the booking UID and the new start time in ISO 8601 format. Optionally, you can provide a rescheduling reason and the email of the person rescheduling.

NameTypeRequiredDescription
bookingUidstringYesThe unique identifier (UID) of the booking that needs to be rescheduled.
startstringYesThe new start time for the booking in ISO 8601 format (e.g., ‘2024-08-13T10:00:00Z’).
rescheduledBystringNoEmail of the person who is rescheduling. If the event type owner email is provided, the rescheduled booking will be automatically confirmed.
reschedulingReasonstringNoThe reason for rescheduling the booking.
emailVerificationCodestringNoRequired when event type has email verification enabled.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_CANCEL_BOOKING_VIA_UID

Cancels an existing and active Cal.com booking using its unique identifier (UID).

NameTypeRequiredDescription
bookingUidstringYesThe unique identifier (UID) of the booking to be cancelled.
cancellationReasonstringNoOptional reason for cancelling the booking. Recommended for clear communication with the attendee.
seatUidstringNoFor seated bookings only: the UID of the specific seat to cancel.
cancelSubsequentBookingsbooleanNoFor recurring bookings only: if true, cancels this booking and all subsequent recurrences.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_CONFIRM_BOOKING_BY_UID

Confirms an existing booking by bookingUid if the booking exists and is in a state allowing confirmation (e.g., not already cancelled or confirmed). Finalizes the booking without modifying its details.

NameTypeRequiredDescription
bookingUidstringYesThe unique identifier (UID) of the booking that needs to be confirmed.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_DECLINE_BOOKING_WITH_REASON

Declines a pending booking using its bookingUid, optionally with a reason. This action is irreversible and applies only to bookings awaiting confirmation.

NameTypeRequiredDescription
bookingUidstringYesThe unique identifier (UID) of the booking to be declined.
reasonstringNoReason provided by the host for declining the booking. Recommended for clear communication with the attendee.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_EDIT_BOOKING_BY_ID

Tool to edit an existing booking by its ID. Use when you need to update booking details such as title, description, status, or time.

NameTypeRequiredDescription
idintegerYesID of the booking to edit.
titlestringNoBooking event title.
descriptionstringNoDescription of the meeting.
statusstringNoStatus values for a booking: ACCEPTED, PENDING, CANCELLED, or REJECTED.
startstringNoStart time of the event in ISO 8601 date-time format.
endstringNoEnd time of the event in ISO 8601 date-time format.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_MARK_BOOKING_ABSENT_FOR_UID

Marks the host and/or specified attendees as absent for an existing booking. Typically used after a scheduled event to record no-shows.

NameTypeRequiredDescription
bookingUidstringYesThe unique identifier (UID) of the booking.
hostbooleanNoIf true, marks the host as absent. If null or omitted, host attendance status is unchanged.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_CHECK_CALENDAR_VERSION2

Retrieves free/busy availability for a specified calendar to aid scheduling without revealing event details.

NameTypeRequiredDescription
calendarstringYesThe calendar type to check availability for. Must be one of the supported calendar providers.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_GET_AVAILABLE_SLOTS_INFO

Retrieves available time slots for scheduling by considering existing bookings and availability, based on criteria like a specified time range and event type.

NameTypeRequiredDescription
eventTypeIdintegerYesUnique numeric identifier for the event type.
startTimestringYesStart date and time in UTC (ISO 8601 format) from which to fetch available slots. Must be before endTime.
endTimestringYesEnd date and time in UTC (ISO 8601 format) until which to fetch available slots. Must be after startTime.
timeZonestringNoIANA timezone identifier (e.g., ‘America/New_York’) for the returned slot times.
durationintegerNoDesired slot duration in minutes. Typically used for dynamic events with non-fixed lengths.
slotFormatstringNoFormat of returned slot times. Use range for start and end times; use time for start times only.
usernameListarrayNoRequired for dynamic or collective event types to specify the users whose availability to consider.
rescheduleUidstringNoUID of an existing booking being rescheduled. Helps find slots suitable for the reschedule context.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_RESERVE_SLOT_FOR_EVENT

Temporarily reserves an available time slot for an existing and bookable event type. Useful for high-demand slots to prevent double-bookings while the user completes the booking.

NameTypeRequiredDescription
eventTypeIdintegerYesThe unique identifier for the event type for which the time slot is being reserved.
slotUtcStartDatestringYesThe start date and time of the slot to be reserved, in UTC (ISO 8601 format).
slotUtcEndDatestringYesThe end date and time of the slot to be reserved, in UTC (ISO 8601 format).
bookingUidstringNoOptional unique identifier, typically used for events with seats.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_LIST_EVENT_TYPES

Retrieves Cal event types, filterable by username (required if eventSlug is provided), multiple usernames, or organization details (orgSlug or orgId).

NameTypeRequiredDescription
usernamestringNoThe username of the user whose event types are to be retrieved. Required if eventSlug is provided.
eventSlugstringNoThe slug of a specific event type to retrieve. If provided, username must also be supplied.
usernamesstringNoA comma-separated string of usernames to retrieve dynamic event types for multiple users (e.g., ‘alice,bob’).
orgIdintegerNoThe unique identifier of the user’s organization.
orgSlugstringNoThe slug of the user’s organization.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_RETRIEVE_EVENT_TYPE_BY_ID

Retrieves comprehensive details for a specific, existing Cal.com event type using its unique ID. This is a read-only action and does not return associated events or bookings.

NameTypeRequiredDescription
eventTypeIdstringYesThe unique identifier for the event type. Typically a numerical value or UUID string found in the event type settings URL.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_EDIT_EVENT_TYPE_BY_ID

Tool to edit an existing Cal.com event type by ID. Use when you need to update event type settings like title, description, duration, locations, or booking configurations.

NameTypeRequiredDescription
idintegerYesID of the eventType to edit.
titlestringNoTitle of the event type.
slugstringNoUnique slug for the event type.
hiddenbooleanNoIf the event type should be hidden from your public booking page.
priceintegerNoPrice of the event type booking.
hostsarrayNoList of hosts for team event types.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_DELETE_EVENT_TYPE_BY_ID

Permanently deletes an existing event type by its ID, which invalidates its scheduling links. The operation is irreversible; while existing bookings are unaffected, no new bookings can be made for this event type.

NameTypeRequiredDescription
eventTypeIdintegerYesThe unique numerical identifier of the event type to be deleted.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_RETRIEVE_SCHEDULES_LIST

Retrieve all availability schedules for the authenticated Cal.com user. Each schedule includes availability time blocks, timezone, and whether it’s the default schedule. Returns an empty list if no schedules are configured.

NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_FETCH_SCHEDULE_BY_ID

Fetches comprehensive details for a specific, existing schedule using its scheduleId.

NameTypeRequiredDescription
scheduleIdintegerYesUnique identifier of the schedule to retrieve.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_CREATE_USER_AVAILABILITY_SCHEDULE

Creates a Cal.com user availability schedule, defining its name, timezone, weekly recurring availability, and specific date overrides. If isDefault is true, this schedule replaces any existing default.

NameTypeRequiredDescription
namestringYesDescriptive name for the availability schedule (e.g., ‘Working Hours’, ‘Holiday Schedule’).
timeZonestringYesIANA timezone identifier (e.g., ‘America/New_York’). Essential for correct event availability calculation.
isDefaultbooleanYesSets this as the user’s default schedule if true, replacing any existing default. Each user must have exactly one default schedule.
availabilityarrayNoList of availability objects defining active days and time slots. If omitted, defaults to Mon-Fri, 09:00-17:00 in the schedule’s timezone.
overridesarrayNoList of override objects for specific date exceptions (e.g., holidays). Overrides take precedence over weekly availability.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_EDIT_AVAILABILITY_BY_ID

Tool to edit an existing availability by ID on Cal.com. Use when you need to update the days, start time, end time, or schedule association of an existing availability.

NameTypeRequiredDescription
idintegerYesID of the availability to edit.
daysarrayNoArray of integers depicting weekdays (0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday). Only values 0-6 are valid.
startTimestringNoStart time of the availability in ISO 8601 datetime format (e.g., ‘1970-01-01T10:00:00.000Z’). The date portion is ignored; only the time is used.
endTimestringNoEnd time of the availability in ISO 8601 datetime format (e.g., ‘1970-01-01T16:00:00.000Z’). The date portion is ignored; only the time is used.
scheduleIdintegerNoID of schedule this availability is associated with.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_DELETE_SCHEDULE_BY_ID

Permanently deletes a specific schedule using its unique identifier.

NameTypeRequiredDescription
scheduleIdintegerYesThe unique identifier of the schedule to be deleted.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_RETRIEVE_MY_INFORMATION

Retrieves the authenticated user’s core profile information (e.g., name, email, timezone). Does not retrieve related data like calendar events or schedules.

NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_GET_TEAMS_LIST

Retrieves all teams the user belongs to, including their names and members.

NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_ADD_ATTENDEE

Tool to create a new attendee for an existing booking in Cal.com. Use when you need to add an additional participant to a scheduled event.

NameTypeRequiredDescription
bookingIdintegerYesThe unique identifier of the booking to add the attendee to.
namestringYesFull name of the attendee.
emailstringYesEmail address of the attendee. Must be a valid email format.
timeZonestringYesIANA timezone for the attendee (e.g., ‘America/New_York’, ‘Europe/London’).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_LIST_ATTENDEES

Tool to retrieve all attendees from Cal.com. Use when you need to get a complete list of all attendees across all bookings.

NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_FETCH_EVENT_TYPE_DETAILS

Fetches all configuration settings and characteristics for a single team event type, identified by orgId, teamId, and eventTypeId. Read-only action.

NameTypeRequiredDescription
orgIdintegerYesThe unique identifier of the organization to which the event type belongs.
teamIdintegerYesThe unique identifier of the team within the specified organization.
eventTypeIdintegerYesThe unique identifier of the specific event type.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.

CAL_REASSIGN_BOOKING_TO_ANOTHER_USER

Reassigns an existing booking to a specified user. The booking owner must be authorized to perform the reassignment.

NameTypeRequiredDescription
bookingUidstringYesThe unique identifier (UID) of the booking to be reassigned.
reasonstringNoAn optional text explaining the reason for reassigning the booking. Useful for audit trails or internal communication.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during execution.
successfulbooleanYesWhether or not the action execution was successful.