How to source track your Calendly embed with UTM parameters
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.
<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.
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.
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.
<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