Skip to main content

Endpoint

You don’t need to copy this URL anywhere. When you connect Calendly in Settings → Integrations, Nous calls Calendly’s POST /webhook_subscriptions for you, pointing at this URL with a freshly generated signing key.
Calendly’s webhook subscription API requires a Standard plan or higher. On the Free plan the subscribe call returns 403 "Please upgrade your Calendly account to Standard" and Nous will log the connection without a live webhook. See the Calendly provider page for the full plan matrix.

Auth

Each Calendly connection stores its own signing key (encrypted) in workflow_provider_connections.encrypted_credentials.webhook_signing_key. Calendly signs every delivery with that key and Nous verifies before processing. Verification:
Nous enforces a 5-minute replay window — deliveries with a t older than 5 minutes are rejected. Comparison is timing-safe.

Supported events

The activity’s external_id is keyed on the Calendly event UUID so the same booking discovered via webhook and via CSV-import backfill dedupes cleanly.

Payload

Calendly creates new contacts on invitee.created — a booking is a strong enough intent signal to bootstrap the contact. invitee.canceled only updates existing contacts; it never creates one.