How to source track your Calendly embed with UTM parameters

Use UTM parameters to track where your traffic comes from before someone books with you. This helps you measure the success of your ads, emails, or campaigns using tools like Google Analytics.

What are UTM parameters?

UTM parameters are tags you add to a link. They tell you where your traffic comes from. Calendly supports these values:

  • utm_source — where the traffic comes from (e.g., facebook, newsletter)
  • utm_medium — the type of channel (e.g., ad, email)
  • utm_campaign — the name of your campaign (e.g., spring_sale)
  • utm_content — extra details like image1 or linktext
  • utm_term — for paid search keywords

Note: Each UTM value must be fewer than 255 characters. Longer values may not be tracked.

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://calendly.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 (advanced)

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

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

Option 3 – Pass UTM values from the page URL

You can reuse the same embed across multiple campaigns by pulling UTM values directly from the page URL.

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://calendly.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 – Hardcode UTM values for different sources

If you're tracking multiple sources, create separate embed codes for each.

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

Create different embeds for traffic sources like Google Ads, email newsletters, or LinkedIn.