Calendly

Connect Calendly & set up booking tracking

FunnelTrack captures Calendly bookings, cancellations, and no-shows server-side via Calendly's API and stitches each one back to the visitor's ad session through the FunnelTrack pixel — so the booking lead you fire to Meta, Google, TikTok, and the rest carries the original click ID, identity data, and session context.

What you'll need
  • An embedded Calendly scheduler on the same page as your FunnelTrack pixel (inline embed or popup widget — not a link out to calendly.com)
  • A post-booking redirectto a confirmation / thank-you page on your site, with event details appended to the URL — Calendly's “Pass event details to your redirected page” option does this for you
  • The FunnelTrack pixel deployed on every page of your site — plus any third-party landing pages where the Calendly embed lives — and especially on the confirmation page
  • Admin access to your Calendly account (to generate a Personal Access Token)
  • At least one connected destination (Meta CAPI, Google Ads, GA4, etc.)
  • About 10 minutes
Attribution depends on these two things
For FunnelTrack to attribute a booking to a specific ad click, two things have to be true: the FunnelTrack pixel must fire on the page where the visitor sees the Calendly embed (so we capture the session + click IDs), and the post-booking redirect must land on a page that also has the FunnelTrack pixel (so we know which ad click the booking belongs to). Standalone Calendly pages on calendly.comcan't run our pixel — only embeds on your own domains can.

Setup

Embed Calendly on a page with the pixel, configure the post-booking redirect, then wire Calendly to FunnelTrack with a Personal Access Token.

1

Deploy the FunnelTrack pixel

From the Pixelsection of FunnelTrack, copy your pixel snippet and deploy it on every page of your site — including any third-party landing pages where you've embedded Calendly, and especially on the post-booking confirmation page.

Why the confirmation page matters
When the pixel fires on the confirmation page, FunnelTrack captures it as a page_view alongside the booking. That URL becomes the event_source_url / page_location we send to Meta, GA4, TikTok, and the rest — and Calendly appends booking details (event type, invitee email, answers) as query params, which makes the conversion look even richer in your ad reporting.
2

Embed Calendly on your site

Use Calendly's Inline Embed or Popup Widget on the page where you want to capture bookings (lead-gen landing pages, pricing pages, etc.). The page must have the FunnelTrack pixel loaded.

Don't link out to calendly.com
Sending users to calendly.com/your-handleis a hard break in attribution — the FunnelTrack pixel can't run on Calendly's domain, so we lose the session and can't tie the booking to an ad click. Always embed on your own page instead.
3

Configure the post-booking redirect

In Calendly, open the event type and go to Booking page settings → Confirmation page. Set After booking to Redirect to an external site, paste your confirmation / thank-you URL, and tick Pass event details to your redirected page.

Calendly Confirmation page settings showing Redirect to an external site option, the Redirect URL field, and the Pass event details checkbox enabled
Redirect to a page on your site that has the FunnelTrack pixel, and enable Pass event details so the URL carries the booking context.
What 'Pass event details' adds to the URL
Calendly appends invitee name, email, event type, start/end times, UUIDs, and answers to your Q&A — e.g. ?assigned_to=…&event_type_uuid=…&invitee_email=…. The FunnelTrack pixel captures that full URL as a page_view, and the dispatcher prefers it as the destination's event source URL over anything else in the session.
4

Generate a Calendly Personal Access Token

In Calendly, go to Integrations & apps → API and webhooks → Personal access tokens and click Get a token now.

Calendly Integrations & apps page with the Personal access tokens option highlighted
Integrations & apps → API and webhooks → Personal access tokens → Get a token now.

Name the token, then in the Scopes step enable Scheduling, User management, Contacts, and Webhooks. Leave Security & Compliance off.

Calendly Create a personal access token modal showing Scheduling, User management, Contacts, and Webhooks scopes checked; Security & Compliance unchecked
Required scopes: Scheduling, User management, Contacts, Webhooks. Security & Compliance is not needed.
Treat this token like a secret
The PAT grants FunnelTrack the ability to register webhooks and read event data on your Calendly account. Copy it once and don't paste it into shared docs or screenshots — anyone with the token has the same access.
5

Paste the token into FunnelTrack

In FunnelTrack, open Integrations → Sources → Calendly and paste the PAT into the Calendly Personal Access Token field. Click Connect Calendly.

FunnelTrack Calendly connection page with the Personal Access Token pasted in and ready to connect
Paste the PAT, click Connect Calendly, and we'll register the webhook subscription for you.

FunnelTrack uses the token to call Calendly's API and register a webhook subscription for the three booking events automatically — no copy-pasting URLs into Calendly.

Calendly Integrations & apps Discover page showing the API and webhooks integration with a green Connected badge
Once connected, API and webhooks shows as Connected in Calendly's Integrations panel.
6

Add a booking event in a connected destination

In FunnelTrack, open a connected destination's routing page — e.g. Calendly → Meta Conversions API. You'll see three template cards by default:

  • All Meetings Booked — fires on every invitee.created webhook, no matter which calendar
  • All Meetings Canceled — fires on every invitee.canceled webhook
  • All Invitee No-Shows — fires on every invitee_no_show.created webhook

Pick a destination event (e.g. Meta's Lead), toggle the card on, and save. That's the fastest setup.

When to switch to a custom per-calendar event
Calendly sends webhooks for everycalendar on your account — including internal-use calendars (1:1s, interviews, vendor calls) that aren't real conversions. For dedicated lead-gen calendars, build a custom per-calendar event so you only fire Meta / Google conversions for the calendars that matter.
7

(Optional) Build a custom per-calendar event

Click Add Event. Pick the webhook trigger (Meeting Booked / Canceled / Invitee No-Show), then click Find Event— FunnelTrack pulls the available calendars from Calendly and shows how many recent payloads we've received for each. Pick the calendar you want this card to fire on.

FunnelTrack Add Event modal for Calendly showing Webhook Trigger set to Meeting Booked, Select Calendar dropdown open with FunnelTrack Testing and Project Consultation options
Find Event lists the calendars on your Calendly account — pick the one this card should track.

When you save, the card gets named <Calendar Name> <Trigger Label> (e.g. FunnelTrack Testing Meeting Booked) and FunnelTrack automatically attaches an Event Type ID condition so the card only fires for that specific calendar.

FunnelTrack Calendly event card titled 'FunnelTrack Testing Meeting Booked' showing the inherited Conditions filter: Event Type ID equals 6895fd97-d7a6-4b17-b1fc-959d31cb2...
The Event Type ID condition is inherited automatically — you can add more conditions on top if needed.
8

(Optional) Map event parameters

Click Add Custom Parameters on the card to send additional fields to the destination:

  • Event Parameters — static values you type in (e.g. currency: USD) or dynamic values pulled from Calendly fields (e.g. host name, event type name, location type). Sent to the destination as standard or custom event parameters.
  • User Data Parameters — FunnelTrack auto-captures invitee email, phone, name, and answers from the Calendly payload. Override only if the auto-detection picks the wrong field.
9

(Optional) Add extra conditions

The Event Type ID condition is inherited automatically. If you want to gate the dispatch further — e.g. only fire when a specific intake answer is selected, or only for invitees in a particular location — click the conditions area and add more rules. Read more about using conditions in FunnelTrack.

10

Test & deploy

Book a test meeting on the embedded Calendly scheduler. Within a few seconds you should see an inbound row in the usage log (labeled Meeting Booked, Meeting Canceled, or Invitee No Show), followed by one outbound row per connected destination — each labeled with the event name you set on the card (e.g. FunnelTrack Testing Meeting Booked).

FunnelTrack usage log showing an inbound Meeting Booked row followed by outbound rows: Meta Lead, Meta AllMeetings, and GA4 meeting_booked — all delivered
Inbound row reads Meeting Booked; each outbound row reads the event name you configured on its destination card.

Notes & best practices

A few things worth knowing once you start scaling this across multiple calendars and destinations.

  • Embed + redirect is what makes attribution work. The FunnelTrack pixel fires on the page with the Calendly embed (capturing the visitor's session and click IDs), and then again on the confirmation page (which Calendly appends booking details to). The dispatcher prefers the confirmation page URL as the destination's event source URL — if that page never fires the pixel, the dispatcher falls back to the closest page_view in time on the session.
  • Calendly webhooks fire for every calendar. Once connected, every Calendly event type on your account sends webhooks to FunnelTrack — including 1:1s and internal calendars. Use per-calendar custom events on lead-gen calendars to keep internal bookings out of your ad reporting.
  • Reschedules don't double-fire. When an invitee reschedules, Calendly fires invitee.created again with rescheduled: truein the payload. FunnelTrack's reschedule guard skips dispatch on these so you don't double-count the conversion on Meta / Google.
  • Disconnect / reconnect is safe.If you ever rotate your PAT or disconnect Calendly, FunnelTrack preserves the workspace's webhook key across the reconnect so existing Calendly subscriptions keep authenticating without re-registration.

Events we support

Three Calendly webhook events; each routes to its own template card per destination.

  • Meeting Booked — trigger key calendly_invitee.created. Fires when an invitee books a meeting on any Calendly event type on your account. Maps to a lead / conversion event on most destinations.
  • Meeting Canceled — trigger key calendly_invitee.canceled. Fires when a booked meeting is canceled by either the host or invitee. Useful for tracking cancellation cohorts or feeding negative signals.
  • Invitee No-Show — trigger key calendly_invitee_no_show.created. Fires when the host marks an invitee as a no-show. Often used to qualify downstream lead-quality scoring.

Common tracking examples

A few patterns most FunnelTrack accounts run on Calendly.

  • Lead-gen calendar → Meta Lead. Build a custom per-calendar event on the one Calendly event type you use for discovery calls. The auto-attached Event Type ID condition keeps internal bookings out — only paid-funnel bookings fire as a Meta Lead.
  • All Meetings Booked → Meta + GA4 + Google Ads, broad. Enable the All Meetings Booked template card on three destinations, each pointing at a lead-style conversion. Covers every Calendly calendar without per-calendar setup — fine when every event type on your account is customer-facing.
  • No-show feedback loop to Meta Custom Audiences. Build a per-calendar Invitee No-Show event that fires as a Meta custom event. Use it as a negative signal in audience targeting or to suppress the no-show invitee from re-targeting.

FAQs

Do I really need an embedded scheduler?
For attribution to work, yes. The FunnelTrack pixel can't run on calendly.compages, so a link out to your Calendly URL means we don't see the visitor's session and can't tie the booking to an ad click. Embeds + redirect let us track end-to-end.
What if I don't configure a redirect?
Bookings will still flow to your destinations — we use the closest page_view on the session as a fallback for the event source URL. But match quality on Meta is highest when the confirmation page URL (with the appended event details) is the URL we send. We recommend setting up the redirect.
Do I need to set up the webhook in Calendly myself?
No. FunnelTrack uses your PAT to call Calendly's API and register the webhook subscription automatically when you connect. You don't paste any URLs into Calendly — just the token into FunnelTrack.
What if my Calendly account has multiple event types?
Use the per-calendar custom event flow. The Event Type ID condition is attached automatically when you pick a calendar in the Add Event modal, so each card only fires for the calendar it's scoped to.
Can I see the raw payload FunnelTrack received?
Yes. The Add Event modal's Find Event button surfaces the latest payload for each calendar. The inbound row in the usage log shows the full payload FunnelTrack received for any given booking.

Ready to set it up?

Jump straight into your FunnelTrack workspace and start wiring up Calendly.

Configure your Calendly integration →

Need a hand?

If anything in this guide didn't match what you're seeing in Calendly or FunnelTrack, open a support ticket in your dashboard and we'll get you sorted.