Skip to navigation

Calendly

Check availability, book and cancel Calendly events, and look up a caller's meetings during a call.
View as Markdown

Connect Calendly so your agent can check your availability, book the caller in and look up the meetings they already have.

At a glance

AuthenticationCalendly personal access token
Asked at connectYour token
Books intoOne default event type, picked when you connect
PlanEvery tool works on any plan. On the free plan, Book meeting is limited to 5 bookings per user per day
Works withSingle-prompt agents

Connect Calendly

1

Create a personal access token

Sign in at calendly.com and open the profile menu → Developer → Personal access tokens (on older accounts: Integrations → API & Webhooks), then create a personal access token.

New tokens have no API access until you choose scopes. Select these:

ScopeUsed for
users:readGet calendar owner, picking your default event type
event_types:readListing and reading event types, Check availability
scheduled_events:readListing and reading events
scheduled_events:writeBook meeting, Cancel meeting

Copy the token straight away. Calendly doesn’t show it again.

2

Paste it on the Integrations page

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

The token 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 Calendly, 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, your active event type whose length is closest to 30 minutes becomes the default. The agent books that event type, with its duration, name and location settings.

The default is chosen once, at connect. If you change your event types in Calendly later, disconnect and connect again.

Tools

ToolFunction nameWhat it does
Check availabilitycalendly_check_availabilityReturns available start times in a window
Book meetingcalendly_book_meetingBooks the caller into the default event type
Cancel meetingcalendly_cancel_meetingCancels a scheduled event
List events by inviteecalendly_list_events_by_inviteeFinds a caller’s meetings by email
List eventscalendly_list_eventsLists scheduled events with filters
Get eventcalendly_get_eventReads one scheduled event
Get calendar ownercalendly_get_ownerReturns the connected user and their URIs
List event typescalendly_list_event_typesLists your event types
Get event typecalendly_get_event_typeReads one event type

Calendly has no reschedule API. To move a meeting, the agent cancels it and books a new one. The invitee receives a cancellation and a new booking, not a “rescheduled” email.

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_York
event_type_uriNoCheck a different event typeYes

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

FieldRequiredDescriptionPinnable
start_timeYesA time returned by Check availability
timezoneYesThe invitee’s IANA timezoneYes
attendee_emailYesWhere the confirmation goesYes
attendee_nameYes, or first nameFull nameYes
attendee_first_name / attendee_last_nameNoInstead of a full nameYes
location_kind / locationIf the event type has a locationMust match the event type’s location, for example google_conference, physical with an address, or outbound_call with the invitee’s number. Pin location_kind to your event type’s kindYes
questions_and_answersNoAnswers to the event type’s questions, as a JSON array
event_guestsNoComma-separated guest emails, up to 10Yes
utm_campaign, utm_source, utm_medium, utm_content, utm_termNoTracking tags on the bookingYes
salesforce_uuidNoA Salesforce record ID to attachYes

The meeting name comes from the event type.

FieldRequiredDescriptionPinnable
booking_uidYesThe scheduled event’s URI, from List events by invitee
reasonNoWhy it’s being cancelledYes

Each needs a user or organization URI (the two list-events tools also accept a group URI). Pin it: call Get calendar owner once, or copy it from Calendly, and set user to Fixed, so the agent never has to look it up.

FieldToolsDescription
invitee_emailBoth list-events tools (required for by invitee)The caller’s email
statusBoth list-events toolsactive or canceled
min_start_time / max_start_timeList eventsTime range
countAll1–100. Defaults to 20
sortAllstart_time:asc or start_time:desc for events; name, position, created_at or updated_at for event types, for example name:asc
activeList event typesActive only. Defaults to true

Pin the values that never change

FieldTypical pinWhy
userhttps://api.calendly.com/users/…List tools work without an extra lookup
timezone (Book meeting)America/ChicagoBookings are created in your zone
utm_source / utm_mediumvoice-agent / phoneYou can filter and export the agent’s bookings by tracking tags in Calendly
reason (cancel)Cancelled by caller over the phoneThe reason is recorded with the cancellation

Limits

  • The agent books only the default event type.
  • On the free Calendly plan, Book meeting is limited to 5 bookings per user per day. Over the limit, the agent is told “Provider rate limit reached — retry shortly”.
  • One Calendly account per organization. To switch to a different one, click Disconnect, then Connect again.

Troubleshooting

Calendly refused the request. There are two usual causes:

  • A token without the scopes above.
  • A revoked token.

Reconnecting with the same token won’t help. Create a new token with the right scopes, then click Disconnect and Connect with it.

The token is wrong, revoked, or missing the users:read or event_types:read scope. Create a new token with the scopes above and connect again. If you see ‘Could not reach Calendly to validate the key’, try again in a minute.

Create an active event type at calendly.com/event_types, then connect again.

Pin the user field on the list tools to your Calendly user URI.