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

# Connect Cal.com

> Connect Cal.com to Retell AI with an API key: create a never-expiring key, pick the cal.com or cal.eu domain, and verify the workspace connection.

Connecting Cal.com takes one API key and gives you [agent functions](/integrations/cal-com-functions): your agents check real availability, book appointments, and look up, reschedule, or cancel existing bookings. One workspace-level connection covers every agent, with no key pasted into individual tools. This page covers the API key and the connection itself.

<Note>
  This integration replaces Retell's built-in Cal.com [availability](/build/check-availability) and [booking](/build/book-calendar) tools, which are being deprecated (as of August 2026). Agents still using them keep working; see the [FAQ](/integrations/cal-com-functions#faq) for how to migrate.
</Note>

## When to use it

Connect Cal.com when your scheduling runs on it and you want callers handled end to end. It's the right choice when you want to:

* **Read live openings to the caller.** The agent checks the event type's slots and offers actual times.
* **Book while the caller is on the line.** After the caller confirms a time, the agent books it and Cal.com sends its usual confirmations.
* **Reschedule and cancel existing bookings.** The agent finds the caller's booking by email and moves it to a newly confirmed slot, or cancels it.

For example, a dental clinic's inbound agent looks up tomorrow's cleaning by the caller's email, offers the week's open slots, and moves the appointment to Friday 10am, all in one call.

## Prerequisites

* A Cal.com account that owns the event types you want to book.
* Know whether your account is on **cal.com** or **cal.eu** (the EU-hosted instance). Create the key on that instance and pick the matching domain when you connect.

<Note>
  Cal.com has announced that cal.eu shuts down on November 1, 2026; enterprise customers keep access through their contracted term. Migrating to cal.com is opt-in. If you migrate, reconnect with a cal.com key and the `Cal.com` domain.
</Note>

## Step 1: Create an API key

In Cal.com, go to **Settings > Developer > API keys** and click **+ New**. Keep the **API key** tab selected, name the key something descriptive, for example `Retell AI`, and turn on **Never expires**; an expiring key silently kills the connection on its expiry date. Create it and copy it right away; Cal.com shows the key only once.

<Frame caption="Cal.com's Create an API key dialog, with Never expires turned on.">
  <div style={{ aspectRatio: '16 / 9', width: '100%', background: 'rgba(128,128,128,0.15)', display: 'flex', alignItems: 'center', justifyContent: 'center', borderRadius: '8px', overflow: 'hidden' }}>
    <img src="https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/cal-com-api-key-never-expires.png?fit=max&auto=format&n=eQ17pyeTZnmNJIsQ&q=85&s=8b7b7cd8e3a4ea4f4bf7d2d0201fa1fd" alt="Cal.com settings with API keys highlighted under Developer in the left sidebar. The Create an API key dialog is open on the API key tab, with a Name this key field, the Never expires toggle switched on and highlighted with a blue ring, and Cancel and Create buttons. Behind the dialog, an existing key named test shows as Active with no expiration date." style={{ maxWidth: '100%', maxHeight: '100%', objectFit: 'contain' }} width="1728" height="972" data-path="images/integration/cal-com-api-key-never-expires.png" />
  </div>
</Frame>

## Step 2: Connect Cal.com in Retell

<Steps>
  <Step title="Add the connection">
    In the Retell Dashboard, open **Integrations**, select the **Available** tab, find **Cal.com**, and click **Connect** (**Add Account** if a connection already exists).
  </Step>

  <Step title="Enter the key and domain">
    Fill in the fields:

    | Field               | Value                                                          |
    | ------------------- | -------------------------------------------------------------- |
    | **Connection name** | Alias for this connection; prefilled with `Cal.com - API key`. |
    | **API Key**         | The key from Step 1.                                           |
    | **Domain**          | `Cal.com`, or `Cal.eu` for EU-hosted accounts.                 |

    <Frame caption="The Cal.com connection dialog: API key plus the domain your account lives on.">
      <div style={{ aspectRatio: '16 / 9', width: '100%', background: 'rgba(128,128,128,0.15)', display: 'flex', alignItems: 'center', justifyContent: 'center', borderRadius: '8px', overflow: 'hidden' }}>
        <img src="https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/cal-com-connect-dialog.png?fit=max&auto=format&n=eQ17pyeTZnmNJIsQ&q=85&s=9c646a3cc81c14afb7b35e646c41b00a" alt="Retell's Cal.com connection dialog on its Connect tab, with a Functions tab beside it. It has a Connection name field prefilled with Cal.com - API key, an API Key field with the placeholder Enter your API key, and a Domain dropdown set to Cal.com, above a Need help finding your credentials link and Cancel and Add Account buttons." style={{ maxWidth: '100%', maxHeight: '100%', objectFit: 'contain' }} width="1206" height="1006" data-path="images/integration/cal-com-connect-dialog.png" />
      </div>
    </Frame>

    Click **Connect** (**Add Account** if a connection already exists). Retell tests the key against the Cal.com API.
  </Step>

  <Step title="Verify it worked">
    On success the connection appears on the **Connected** tab. Your agents can now book against the account — see [Cal.com agent functions](/integrations/cal-com-functions) for the tools and the event type ID the booking tools need.
  </Step>
</Steps>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Connecting fails with an authorization error">
    Confirm the key is current and the **Domain** matches the instance your account lives on (cal.com or cal.eu). If the key had an expiry date, it may simply have lapsed.
  </Accordion>

  <Accordion title="The connection errored after working for a while">
    Retell flags a connection as errored when Cal.com rejects the key — usually expired or deleted. Open the connection's settings, paste a fresh key set to never expire, and click **Reconnect**.
  </Accordion>
</AccordionGroup>

## FAQ

<AccordionGroup>
  <Accordion title="Does this work with self-hosted Cal.com?">
    No. The connection targets Cal.com's hosted API on cal.com or cal.eu; self-hosted instances aren't supported (as of August 2026).
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Cal.com agent functions" icon="wrench" href="/integrations/cal-com-functions">
    Check availability, book appointments, and reschedule or cancel bookings mid-conversation.
  </Card>

  <Card title="Integrations overview" icon="plug" href="/integrations/overview">
    See every provider Retell connects to and how integration tools work.
  </Card>

  <Card title="Connect Calendly" icon="calendar" href="/integrations/calendly">
    The other calendar option, if your scheduling lives there.
  </Card>
</CardGroup>
