# How to track Calendly bookings as conversions, by source

> Count Calendly bookings as conversions in analytics and Google Ads, with UTM pass-through, embed events or a thank-you redirect, and no email in URLs.

Source: https://datacenter.so/track/calendly
By the Datacenter team. Updated October 23, 2026.

To track Calendly bookings as conversions, embed Calendly on your own page and count its `calendly.event_scheduled` message, or redirect people to a thank-you page on your site after they book and count that page. Either way, the booking is tied to the visit that came from your ad or post. A plain link to calendly.com loses the source, because the booking happens on Calendly's domain.

This page covers the three setups, which to pick, how to send bookings to Google Ads and Meta, and the privacy trap in Calendly's redirect.

## Why a plain Calendly link loses the source

When a visitor taps a link to `calendly.com/yourname`, they leave your site. Your analytics saw the visit and the tap, but never the booking. Calendly's own analytics sees the booking, but unless the link carried [UTM tags](https://datacenter.so/guides/utm-parameters), Calendly says Google Analytics will show its source as `(direct)` ([Calendly](https://calendly.com/help/calendly-google-analytics)).

## The three ways to count a booking

| Setup | How the booking is counted | Plans | Best for |
|---|---|---|---|
| Embed on your page | Calendly sends `calendly.event_scheduled` to your page | Any embed | Most sites: booking stays on your domain |
| Redirect to your thank-you page | A visit to `/booked` is the conversion | Calendly paid plans | Sites already counting thank-you pages; Google Ads tags |
| Calendly's GA4 integration | Calendly sends `invitee_meeting_scheduled` to GA4 | Calendly paid plans | GA4 users who link straight to Calendly |

### Embed: count Calendly's message

Calendly's inline and popup embeds tell the page they sit on what happened, with `window.postMessage`. The events are `calendly.profile_page_viewed`, `calendly.event_type_viewed`, `calendly.date_and_time_selected` and `calendly.event_scheduled` ([Calendly](https://calendly.com/help/advanced-calendly-embed-for-developers)). Listen for the last one and count a conversion. Check that the message comes from `https://calendly.com` before trusting it.

Use Calendly's embed code, not a bare `<iframe>`: Calendly says plain iframes do not support event tracking through postMessage ([Calendly](https://calendly.com/help/advanced-calendly-embed-for-developers)).

### Redirect: count a page on your site

In the event type's editor, under **Confirmation page**, **After booking**, choose **Redirect to an external site** and enter a page on your site, such as `/booked`. Calendly offers this on its Standard, Professional, Teams and Enterprise plans ([Calendly](https://calendly.com/help/how-to-redirect-invitees-to-another-site-after-booking)). Then count a visit to `/booked` as the goal.

The trap: **Pass event details to your redirected page** adds the invitee's name, email and answers to the page address ([Calendly](https://calendly.com/help/how-to-redirect-invitees-to-another-site-after-booking)). An analytics tag that records full addresses then stores personal data, which Google asks you never to send to Google Analytics ([Google](https://support.google.com/analytics/answer/6366371)). Leave it off unless your page needs those details, and if it does, make sure your analytics records the path without the query string.

### Calendly's GA4 integration

Under **Integrations and apps**, Calendly takes a GA4 Measurement ID, one per Calendly organization, and sends events such as `invitee_scheduling_page`, `invitee_select_time` and `invitee_meeting_scheduled` ([Calendly](https://calendly.com/help/calendly-google-analytics)). Mark `invitee_meeting_scheduled` as a key event. Calendly does not connect to Google Tag Manager directly.

## Install Datacenter with Calendly

1. Add the Datacenter tag to your site (see the [HTML install guide](https://datacenter.so/docs/install-html)) and turn on 90-day tracking in **Settings**.
2. On the **Goals** tab, add the **Someone books or calls** goal. It counts bookings made in an embedded Calendly widget, and taps on booking links, phone numbers and email addresses, as the `Book or call` event with its type.
3. Embed Calendly on a page of your site with Calendly's inline or popup embed code.
4. Book a test meeting from that page and check the goal on the Goals tab.
5. Optional: set a Calendly redirect to a page such as `/booked` and add the **Someone reaches a thank-you page** goal for it, if you prefer counting a page. That goal also works in Private mode.

## Pass UTM tags into Calendly

Calendly keeps UTM tags it receives, so its own reports and integrations see the campaign. Add them to the scheduling link, or for an embed, to the embed's `data-url` or the `utm` object of the advanced embed ([Calendly](https://calendly.com/help/how-to-track-embed-activity-in-google-analytics)). Calendly's help shows a snippet that copies the page's own `utm_source`, `utm_medium` and `utm_campaign` into the widget, so an ad's tags follow the visitor into the booking.

## Send bookings to Google Ads and Meta

A booking is a lead, so the ad platforms should learn from it:

- **Google Ads:** import the GA4 key event, or fire a Google Ads conversion tag on your thank-you page. The [lead-gen conversion tracking guide](https://datacenter.so/guides/google-ads-conversion-tracking-lead-gen) covers counting and values.
- **Meta:** send a `Schedule` or `Lead` event from the thank-you page or the embed listener, and the same event from your server with an event id so it counts once. See the [Meta Conversions API guide](https://datacenter.so/guides/meta-conversions-api-explained).
- **Not every booking is a customer.** If no-shows are common, send the booked call as a secondary conversion and the attended or closed one later as the primary, with [offline conversions](https://datacenter.so/guides/offline-conversions-explained).

## Where Datacenter fits

From Datacenter's tag and help: with 90-day tracking and the **Someone books or calls** goal, the tag listens for Calendly's `calendly.event_scheduled` message from `calendly.com` and counts a booking, and counts taps on links to Calendly, Cal.com and other booking sites. Forms in an embedded frame, such as Typeform, need their own callback: see [Typeform tracking](https://datacenter.so/track/typeform). Each is tied to the visit's source and campaign. A thank-you page goal works in every mode. Datacenter records a page's path without its query string, so details Calendly adds to a redirect address are not stored as pages.

## Common questions

### How do I track Calendly bookings in Google Analytics 4?

Either add your Measurement ID in Calendly's Google Analytics integration and mark `invitee_meeting_scheduled` as a key event, or embed Calendly on your site and send a GA4 event when the embed reports `calendly.event_scheduled`.

### Can I track Calendly conversions in Google Ads?

Yes. Redirect bookers to a thank-you page with your Google Ads conversion tag, or import the booking key event from GA4 into Google Ads.

### Why does Calendly show my bookings as direct traffic?

The scheduling link had no UTM tags, so Calendly could not tell where the visitor came from. Add tags to the link, or embed Calendly and pass the page's tags into the widget.

### Is it safe to pass event details on Calendly's redirect?

It puts the invitee's name and email in the page address. Leave it off unless the page needs them, and keep that address out of analytics and ad tags.

## Sources

- Calendly Help: [Calendly + Google Analytics](https://calendly.com/help/calendly-google-analytics), [How to track embed activity in Google Analytics](https://calendly.com/help/how-to-track-embed-activity-in-google-analytics), [Advanced Calendly embed for developers](https://calendly.com/help/advanced-calendly-embed-for-developers), [How to redirect invitees to another site after booking](https://calendly.com/help/how-to-redirect-invitees-to-another-site-after-booking). Checked October 2026.
- Calendly Developer: [Embed parent window events](https://developer.calendly.com/api-docs/overview/embedding/notifying-the-parent-window). Checked October 2026.
- Google Analytics Help: [Best practices to avoid sending personally identifiable information](https://support.google.com/analytics/answer/6366371). Checked October 2026.

## Where Datacenter fits

With Datacenter's Book or call goal on, a booking made in an embedded Calendly widget and a tap on a Calendly link both count, tied to the visit's source, with nothing to code. More: https://datacenter.so/docs/custom-events-and-goals
