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

# Cal.com

> Connect Cal.com to book meetings through your chatbot and capture bookings as leads

Connect your Cal.com account so visitors can book meetings through your chatbot, and every booking can be captured as a lead in BubblaV. BubblaV connects to Cal.com with secure OAuth — no API keys for you to manage.

<Note title="Early access">
  Connection is live today. AI booking actions (book, check availability, cancel, reschedule) and automatic booking-to-lead capture are rolling out incrementally. Connect your account now to be ready.
</Note>

## Why Connect Cal.com?

* **Book in chat**: Visitors book meetings without leaving the conversation
* **Capture leads**: Every booking is saved as a lead with attendee details
* **Real-time availability**: Show open slots straight from your Cal.com calendar
* **24/7 scheduling**: Take bookings outside business hours
* **Cal.com or Cal.eu**: Works with both the global and European instances

## Prerequisites

* An active Cal.com account on **Cal.com** (`app.cal.com`) or **Cal.eu** (`app.cal.eu`)
* At least one event type set up in Cal.com

## Connect to Cal.com

<Steps>
  <Step title="Navigate to Integrations">
    Go to **Dashboard** → select your website → **Integrations** → find **Cal.com**
  </Step>

  <Step title="Click Connect">
    Click the **Connect** button next to Cal.com
  </Step>

  <Step title="Authorize on Cal.com">
    You'll be redirected to Cal.com. Log in (if needed) and click **Allow** to grant BubblaV access. BubblaV uses PKCE OAuth, so there's no client secret to handle.
  </Step>

  <Step title="Return to Dashboard">
    You'll be redirected back automatically and the integration will show as **Connected** with your Cal.com account details.
  </Step>
</Steps>

### Cal.eu accounts

If your Cal.com account is on the European instance (`app.cal.eu`), your BubblaV admin must point BubblaV at the EU endpoints (`CALCOM_OAUTH_AUTHORIZE_URL`, `CALCOM_OAUTH_TOKEN_URL`, `CALCOM_API_BASE_URL`) before you connect. The OAuth client and your account must be on the **same** instance.

## What This Enables

Once connected, BubblaV is authorized to access your Cal.com account with these scopes:

| Scope             | What it allows                                                |
| ----------------- | ------------------------------------------------------------- |
| `BOOKING_READ`    | View your bookings (capture as leads, show "my appointments") |
| `BOOKING_WRITE`   | Create, cancel, and reschedule bookings                       |
| `EVENT_TYPE_READ` | List your event types (show available meetings to book)       |
| `PROFILE_READ`    | Verify the connected account                                  |

AI booking actions and automatic booking-to-lead capture are rolling out — once enabled, you'll be able to ask the bot things like "I'd like to schedule a consultation" or "show my upcoming meetings."

## Reconnecting

If your connection expires or you need to switch accounts, click **Reconnect** on the Cal.com integration card. You'll go through the OAuth flow again to get fresh credentials.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Can't log in / wrong Cal.com instance">
    * Your Cal.com account and the BubblaV OAuth client must be on the **same instance** (both `app.cal.com` or both `app.cal.eu`).
    * If your account is on Cal.eu, ask your BubblaV admin to configure the EU endpoints, then reconnect.
  </Accordion>

  <Accordion title="Authorization failed or access denied">
    * Make sure you clicked **Allow** (not Deny) on Cal.com's authorization page.
    * Try disconnecting and reconnecting via the integration card.
    * Ensure you're logged into the correct Cal.com account.
  </Accordion>

  <Accordion title="Redirect URI mismatch">
    * The callback URL registered on your Cal.com OAuth client must exactly match `https://www.bubblav.com/api/integrations/calcom/oauth/callback` (plus any preview/dev URLs your admin registered).
  </Accordion>

  <Accordion title="OAuth client pending review">
    * While BubblaV's Cal.com OAuth client is pending Cal.com admin review, only the client owner can authorize. Other users can connect once it's approved.
  </Accordion>

  <Accordion title="Connection expired">
    * Access tokens refresh automatically in the background.
    * If you see a connection error, click **Reconnect** on the integration card.
  </Accordion>
</AccordionGroup>
