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

# Calendly

> Log meeting bookings and cancellations on contact timelines when someone schedules with you.

## Connect via Personal Access Token

<Steps>
  <Step title="Open API & Webhooks in Calendly">
    In Calendly go to **Integrations & apps → API & Webhooks**.
  </Step>

  <Step title="Create a Personal Access Token">
    Under **Personal Access Tokens** click **Generate new token**, give it a name, and copy the token shown.
  </Step>

  <Step title="Connect in Nous">
    Go to **Settings → Integrations → + Add Integration → Calendly**, paste the token, click **Test connection**, then **Save**.
  </Step>
</Steps>

That's it. There's no webhook URL to copy — Nous registers the subscription with Calendly automatically when you save the connection. A small **Webhook ✓** badge appears on the Calendly card once it's live.

## What you get on each plan

Calendly gates the webhook subscription API to paid tiers, so what works depends on your Calendly plan.

| Capability                                              | Free | Standard+ |
| ------------------------------------------------------- | ---- | --------- |
| Connect with API key + test                             | ✅    | ✅         |
| Past meetings backfilled on CSV import (`scanCalendly`) | ✅    | ✅         |
| Realtime notifications on new bookings (webhook)        | ❌    | ✅         |
| Realtime notifications on cancellations (webhook)       | ❌    | ✅         |

<Note>
  On the **Free** plan Calendly returns `403 "Please upgrade your Calendly account to Standard"` when Nous tries to register the webhook. Nous still saves the connection so backfill keeps working — you just won't see new bookings land in real time. Hit **Save** again after upgrading and the webhook will auto-register.
</Note>

## What gets logged

| Calendly event     | Activity on contact |
| ------------------ | ------------------- |
| `invitee.created`  | `meeting_scheduled` |
| `invitee.canceled` | `meeting_cancelled` |

New invitees that aren't yet contacts in Nous are **created automatically** on `invitee.created` — a booking is a strong enough intent signal to bootstrap the contact.

See the [Calendly webhook reference](/webhooks/calendly) for payload details and signature verification.
