How to source track your Calendly embed with UTM parameters

Updated Oct 13, 20263 min read
Available to:
All usersRoles control which account and team settings a person can manage. Your role may vary by organization, team, or group.
Plans:
All plansFeature access may vary based on your plan, when your account was created, and any add-ons.
View plans

UTM parameters are tags you add to links. They show you where your traffic comes from before someone books with you. Use them to measure how well your ads, emails, and campaigns are working in tools like Google Analytics.

Why track with UTM parameters?

Understanding where your bookings come from helps you do more of what works. You'll see exactly which campaigns, social media posts, or emails bring the most valuable meetings to your calendar.

What are UTM parameters?

UTM parameters are simple tags you add to any Calendly link. Calendly supports these five standard values:

  • utm_source — Where the traffic comes from (example: facebook, newsletter)
  • utm_medium — The type of channel (example: ad, email)
  • utm_campaign — The name of your campaign (example: spring_sale)
  • utm_content — Extra details to tell similar links apart (example: image1, linktext)
  • utm_term — For paid search keywords (example: scheduling tool)

You can also pass salesforce_uuid to track Salesforce record IDs.

Option 1 – Add UTM parameters to the embed URL

If you use a direct embed link, you can add UTM parameters to the URL.

html
<div class="calendly-inline-widget"  
data-url="https://schedule.nocodeconsulting.com/YOUR_LINK/30min?utm_source=facebook&utm_medium=ad&utm_campaign=spring_sale"  
style="min-width:320px;height:630px;"></div>

This method works for all embed types: inline, popup text, or popup widget.

Option 2 — Pass UTM parameters using JavaScript (for advanced users)

If you use the advanced JavaScript embed, you can pass UTM values during setup.

javascript
Calendly.initInlineWidget({  
url: 'https://schedule.nocodeconsulting.com/YOUR_LINK/30min',
parentElement: document.getElementById('calendly-embed'),
utm: {
utmCampaign: "spring_sale",
utmSource: "facebook",
utmMedium: "ad",
utmContent: "shoes",
utmTerm: "spring"
}
});

Values in the utm object replace any UTM parameters already in the page URL.

Option 3 — Reuse UTM values from the page URL

Pull UTM values directly from your page URL. This way, you can use the same embed across multiple campaigns.

javascript
function getUrlVars() {  
const vars = {};
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,k,v) {
vars[k] = decodeURIComponent(v);
});
return vars;
}

const utms = getUrlVars();

Calendly.initInlineWidget({
url: 'https://schedule.nocodeconsulting.com/YOUR_LINK/30min',
parentElement: document.getElementById('calendly-embed'),
utm: {
utmSource: utms["utm_source"],
utmMedium: utms["utm_medium"],
utmCampaign: utms["utm_campaign"],
utmContent: utms["utm_content"],
utmTerm: utms["utm_term"]
}
});

Option 4 — Create separate embeds for each traffic source

If you're tracking multiple sources, create different embed codes for each. This keeps your tracking simple and organized.

html
<div class="calendly-inline-widget"  
data-url="https://schedule.nocodeconsulting.com/YOUR_LINK/30min?utm_source=facebook"
style="min-width:320px;height:630px;"></div>

Use different embeds for Google Ads, email newsletters, LinkedIn, and other traffic sources.

Where to find your UTM data

After someone books, Calendly stores the UTM data with that event. You'll find it in these places:

  • Calendar page — Select the meeting to see its UTM values
  • Webhook payloads — UTM data is included if you use webhooks
  • Calendly API — Use the v2 API to access UTM parameters in your invitee data

Frequently asked questions

Check your URL. Start the first parameter with a question mark (?). Separate each parameter with an ampersand (&).

Yes. Pick a UTM parameter you don't use for analytics, like utm_term, and use it for the user ID instead.

No. Calendly supports only the five standard UTM parameters and salesforce_uuid. Custom parameters aren't supported.

The values in the utm object win. They replace any UTM parameters set in the page URL.

Yes. Use the salesforce_uuid parameter to pass a Salesforce record ID to Calendly through your embed code, just like you would with UTM parameters.

Was this article helpful?
Let us know so we can improve our content.

Related articles