> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xpressbot.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Calendly

> Send WhatsApp messages when a Calendly meeting is booked, rescheduled or cancelled, and let automations and AI agents work with your Calendly bookings.

## What is this?

The **Calendly** integration connects your Calendly account. When someone books, reschedules or cancels a meeting, an automation sends the WhatsApp template you chose — for example *Your call is booked for Friday at 3 pm*.

Once connected, the same account also powers two [automation steps](https://docs.xpressbot.org/workspace/automation/steps/integrations.md) and a set of [AI agent capabilities](https://docs.xpressbot.org/workspace/ai-agents/tabs/capabilities.md#integration-capabilities) that can look up, book and cancel meetings from a chat.

## What can I do here?

* Send a WhatsApp template when a meeting is booked, rescheduled or cancelled
* Find a contact's next booking, or create a one-time booking link, inside an automation
* Let an AI agent list meeting types, find free times, book, look up and cancel a customer's own meetings
* See every request Calendly sent, including duplicates and failures

## How to use it

**1. Open the Calendly page**

Go to **Integrations**, click **Calendly**, then **Connect**.

**2. Enter your Calendly details**

Paste your **Calendly personal access token** (in Calendly under **Integrations & apps → API and webhooks**).

**3. Choose your messages**

Pick a WhatsApp template for each event you want to message about:

| Event | When it happens |
| - | - |
| **Meeting booked** | Someone booked a meeting |
| **Meeting rescheduled** | Someone moved their meeting to a new time |
| **Meeting cancelled** | Someone cancelled their meeting |

Leave an event empty to send nothing for it.

**4. Set up and activate**

Click **Set up and activate**. The platform registers the webhook with Calendly for you and creates a ready-made automation that sends the right template for each event. You can open that automation in the builder any time.

## Automation steps and AI agent tools

Connecting Calendly also unlocks these, using the same account:

| Where | What it does |
| - | - |
| **Calendly · Find booking** (automation step) | Finds the contact's next booking by the email saved on the contact, and routes to **found** or **not found**. When found, it fills `{{calendly.booking.found}}`, name, start and end time, location, join link, cancel link and reschedule link for later steps |
| **Calendly · Booking link** (automation step) | Creates a single-use booking link for the meeting type you choose, as `{{calendly.booking_link}}` |
| **Get Meeting Types**, **Get Meeting Times**, **Book Meeting**, **Get My Meetings**, **Cancel My Meeting** (AI agent capabilities) | Let an agent offer meetings, find free times, book one, and look up or cancel the customer's own meeting. See [Integration Capabilities](https://docs.xpressbot.org/workspace/ai-agents/tabs/capabilities.md#integration-capabilities) |

The connection's **Capabilities** tab lists every action the platform can run on this account, whether it only reads or changes data, where it is used, and whether it is **Ready** or needs you to **Reconnect to allow** it.

> [!NOTE]
>
> Finding or cancelling a customer's meetings always uses their email, never their phone. A group meeting is never cancelled for everyone — the customer is given their own cancel link instead.

## Things to know

* **The customer's phone number** is the **text-reminder number** from the booking, or — if there isn't one — the answer to a phone question on your booking form. Add a phone question to your Calendly event types so every booking can be messaged. A reschedule counts as one **Meeting rescheduled** message, not a cancellation plus a booking.
* **Repeats are ignored.** If Calendly sends the same event twice, the customer isn't messaged twice.
* **Webhooks need a paid Calendly plan.** On a free plan Calendly refuses the webhook and its message is shown when you connect. Direct booking from an AI agent also needs a Calendly plan that includes it; otherwise the agent offers the meeting type's booking page.
* **One Calendly user per connection.** Everything is limited to the connected user's own meeting types and bookings. Reconnecting with a token from a different Calendly user is refused.

## Troubleshooting / Technical Notes

* **Connecting fails.** Check the details you entered and that they belong to the right Calendly account. The error from Calendly is shown on the page.
* **No messages are sent.** Check the connection shows **Connected**, a template is chosen for the event, and the template is approved.
* **A request shows as failed.** Open the connection's **Activity** tab and select the request to see the error and its raw body. A missing phone number is the most common cause.
* **"This token belongs to a different Calendly user."** You're updating credentials with a token from another account. Disconnect and connect again if you really want to switch accounts.
* **Webhooks look missing.** On the connection page, click **Verify on Calendly** to check they are still registered. If any are missing, disconnect and reconnect to register them again.
* **You rotated your key or token.** Open the connection's **Settings** tab and update the credentials.

## Related docs

* [Integrations Overview](https://docs.xpressbot.org/workspace/integrations/overview.md)
* [Webhooks](https://docs.xpressbot.org/workspace/integrations/webhooks.md)
* [Automation steps for integrations](https://docs.xpressbot.org/workspace/automation/steps/integrations.md)
* [AI agent Capabilities](https://docs.xpressbot.org/workspace/ai-agents/tabs/capabilities.md)
* [Templates](https://docs.xpressbot.org/workspace/whatsapp/templates.md)
* [Automation Overview](https://docs.xpressbot.org/workspace/automation/overview.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.