Skip to navigation

Cal.com

Check availability and book, reschedule or cancel Cal.com bookings during a call.
View as Markdown

Connect Cal.com so your agent can offer real open slots, book the caller in, and move or cancel bookings they already have.

At a glance

AuthenticationCal.com API key
Asked at connectYour API key
Books intoOne default event type, picked when you connect
Works withSingle-prompt agents

Connect Cal.com

1

Create an API key in Cal.com

Sign in to Cal.com and open Settings → Developer → API keys. Create a key and copy it. Cal.com only shows it once.

Cal.com keys expire after 30 days by default. Turn on Never expires when you create the key, or your agent stops booking when it expires.

2

Paste it on the Integrations page

Open the Integrations page in the dashboard, click Connect next to Cal.com, paste the key into API key, and click Connect.

The key is checked against your account straight away and stored encrypted. It’s never shown again.

3

Add the tools to your agent

Click Go to Tools, then Add tool → Integration tool, choose Cal.com, tick the tools this agent needs, and click Add tools. From inside an agent, use Add tool → New tool → Integration tool instead.

Which event type the agent books

When you connect, the event type whose length is closest to 30 minutes becomes the default. Bookings made by the agent use that event type, with its duration, location and booking questions.

The default is chosen once, at connect. If you add or change event types in Cal.com later, disconnect and connect again so the agent picks the new closest-to-30-minutes one.

Tools

ToolFunction nameWhat it does
Check availabilitycal-com_check_availabilityReturns open slots in a time window
Book meetingcal-com_book_meetingBooks the caller into the default event type
Reschedule meetingcal-com_reschedule_meetingMoves a booking to a new time
Cancel meetingcal-com_cancel_meetingCancels a booking
Find bookings by attendeecal-com_find_bookings_by_attendeeFinds a caller’s bookings by email or name
Get all bookingscal-com_get_all_bookingsLists bookings with filters
Get bookingcal-com_get_bookingReads one booking

Fields

FieldRequiredDescriptionPinnable
start_timeYesStart of the window. Local date and time in timezone, no UTC offset (for example 2026-09-01T09:00:00)Yes
end_timeYesEnd of the window, in the same form
timezoneYesIANA timezone, for example America/New_YorkYes
event_type_idNoCheck a different event typeYes

A window that starts in the past is moved to start now.

Book meeting always books the default event type. Leave event_type_id empty so the agent doesn’t offer slots from one event type and book another.

FieldRequiredDescriptionPinnable
start_timeYesA slot returned by Check availability
timezoneYesThe attendee’s IANA timezoneYes
attendee_nameYesFull nameYes
attendee_emailYesWhere the confirmation goesYes
attendee_phoneNoPhone number
titleNoDefaults to the event type’s nameYes
attendee_languageNoLanguage code such as en or es. Defaults to EnglishYes
guestsNoComma-separated guest emails, up to 10Yes
booking_fields_responsesNoAnswers to the event type’s booking questions, as JSON, for example {"notes":"Bring the contract"}
length_in_minutesNoOnly for event types with Allow multiple durations turned onYes
FieldRequiredDescriptionPinnable
booking_uidYesThe booking’s UID, from Find bookings by attendee
start_timeReschedule onlyThe new start time
timezoneReschedule onlyIANA timezone of the new time
reasonNoWhy it’s being moved or cancelledCancel only
FieldRequiredDescriptionPinnable
attendee_email or attendee_nameOne of themWho to look upYes
booking_uidGet booking onlyThe booking to read

Every field is optional: attendee_email, attendee_name, status (upcoming, cancelled, past), event_type_id (defaults to the default event type), event_type_ids, after_start, before_end, sort_start, sort_end and take. You can pin event_type_id, the sort fields and take.

Pin the values that never change

FieldTypical pinWhy
timezoneEurope/LondonCallers are offered times in your local zone. Pin it on Check availability and Book meeting; Reschedule meeting still asks for it
attendee_languageenConfirmation emails go out in the right language
reason (cancel)Cancelled by caller over the phoneYour team sees why a booking disappeared

How it works on a call

1

Offer real slots

The agent calls Check availability for the window the caller asks about and reads out two or three open times.

2

Book

Once the caller picks one and confirms their name and email, Book meeting creates the booking and Cal.com sends the confirmation.

3

Change plans

For “I need to move my appointment”, Find bookings by attendee finds the booking, then Reschedule meeting or Cancel meeting changes it.

Limits

  • The agent books only the default event type.
  • One Cal.com account per organization. To switch to a different one, click Disconnect, then Connect again.

Troubleshooting

Copy the key again from Settings → Developer → API keys, make sure nothing was cut off when pasting, and check it hasn’t expired.

Create at least one event type at app.cal.com/event-types, then connect again.

The slot may have been taken in the meantime. Tell the agent, in the Book meeting condition prompt, to check availability again and offer another time if booking fails.

The key was deleted or has expired. Cal.com keys expire after 30 days unless Never expires was turned on. Create a new key, then on the Integrations page click Disconnect and Connect with it.