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

# Connect Cal.com

> Connect a Cal.com account with the Cal.com login or an API key, pick an event type per booking Agent, and let the Agent book, move and cancel real Cal.com bookings.

Connect Cal.com when Cal.com should own the booking page, the event duration, the availability and the host. The Agent offers the event type's real availability, books into it, and can move or cancel the booking on request. Bookings made directly on your Cal.com page are mirrored into Nexor too.

<Info>
  Cal.com is the only scheduling provider in Nexor where the Agent can reschedule and cancel the real booking itself. With Calendly and HubSpot Meetings a change is handled by a person; with Cal.com the Agent does it and tells the lead only after Cal.com confirms.
</Info>

<Warning>
  Owner or Admin access is required to connect, disconnect, or enable Cal.com on an Agent. The Cal.com login button appears only when your Nexor environment has a Cal.com OAuth client approved by Cal.com. The API key path is always available and is the only path for a self-hosted Cal.com.
</Warning>

## Before you connect

Confirm that:

* The Cal.com user you connect owns the personal event types, or belongs to the teams whose event types the Agents will book into. Team event types appear only when the connection was made with an API key or with the Cal.com login including the team permissions.
* Those event types are active, have a fixed duration, and have availability in the next two weeks. Nexor checks this before it enables an Agent.
* The Nexor member who should own the meetings uses the same email as the Cal.com account, or is the only host assigned to the Agent's meeting type.

## Connect Cal.com

<Steps>
  <Step title="Open the integration">
    Go to **Integrations** and find **Cal.com** under **Calendar & Scheduling**. Select **Connect**.
  </Step>

  <Step title="Choose a path">
    Select **Continue with Cal.com** and approve the authorization on Cal.com, or paste an API key created in Cal.com → **Settings → Developer → API keys** and select **Connect with API key**. For a self-hosted Cal.com, open **Using a self-hosted Cal.com?** and enter its API URL.
  </Step>

  <Step title="Check the status">
    Back on **Integrations → Cal.com**, confirm the connected account, the connection method, and **Webhook active**. The webhook is what mirrors bookings made on Cal.com into Nexor.
  </Step>

  <Step title="Configure the booking Agent">
    Open an Agent with the **Book a Meeting** goal, go to **Settings → Meeting**, choose **Cal.com** as its type, pick the event type, and save.
  </Step>
</Steps>

Nexor stores the credential encrypted. Disconnecting removes the webhook from Cal.com and stops new bookings from syncing.

## Choose the event type

In the Agent's **Meeting** section, choose **Cal.com** and pick one event type. The picker lists the connected account's personal event types first, then every event type of the teams it belongs to, labelled with the team name. Round-robin and collective team event types are supported. On save, Nexor:

1. Reads the event type and confirms it has real availability in the next 14 days.
2. Resolves the meeting owner: the connected Cal.com account's email, or the single host assigned to the meeting type.
3. Enables the four booking actions for the Agent: check availability, book, reschedule, cancel.

Cal.com decides the duration and, for round-robin or collective event types, which host takes the meeting. Nexor records the actual host from the booking. The Nexor duration control and weekly availability do not apply to this type.

<Note>
  If the owner cannot be resolved, Nexor refuses to enable Cal.com on the Agent and says so. Assign exactly one host to the meeting type, or invite the Cal.com account's email to your Nexor workspace, then save again.
</Note>

## What the Agent does

* **Offers times** from the event type's availability in the Agent's timezone, never invented.
* **Books** with the lead's name, email and phone. If the lead has no email, the Agent asks for it first.
* **Moves** the booking to a new time the lead accepts. Cal.com creates the new booking and Nexor follows it.
* **Cancels** the booking when the lead asks to cancel, then confirms only after Cal.com accepts.

Every booking appears in **Meetings** with **Booked via Cal.com**, runs the configured reminders, sends the confirmation, and moves the lead to the booked stage.

## Bookings made on Cal.com directly

When someone books, moves or cancels on your Cal.com page, Cal.com notifies Nexor. Nexor matches the booking to a lead by the attendee's email or phone and mirrors it. A booking that matches no lead is not mirrored; Nexor alerts the team instead of creating a lead from Cal.com traffic.

## Disconnect Cal.com

<Steps>
  <Step title="Review Agents that use Cal.com">
    On the Cal.com page, the **Agents booking on Cal.com** list shows every Agent on this provider. Move active Agents to another type first.
  </Step>

  <Step title="Disconnect">
    Open the page menu, select **Disconnect**, and confirm.
  </Step>
</Steps>

Meetings already stored in Nexor remain available.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Cal.com rejected that credential">
    The API key is invalid or was revoked, or the authorization was not completed. Create a new API key in Cal.com or authorize again.
  </Accordion>

  <Accordion title="The event type returned no availability">
    Nexor only enables an event type that can actually be booked in the next 14 days. Check the event type's schedule and the host's connected calendar in Cal.com, then save again.
  </Accordion>

  <Accordion title="Webhook not registered">
    The Agent can still book, but bookings made on Cal.com will not reach Nexor. Select **Reconnect** to register the webhook again.
  </Accordion>

  <Accordion title="A booking made on Cal.com does not appear in Nexor">
    The attendee's email or phone must match an existing lead. Check the lead's contact details, and confirm the webhook is active on the Cal.com page.
  </Accordion>

  <Accordion title="The meeting has no owner">
    The booking's host email did not match a Nexor member and no fallback owner was set. Invite the host's email to Nexor, or assign one host to the meeting type, and reassign the meeting from **Meetings**.
  </Accordion>
</AccordionGroup>
