
Calendly GTM Event Listener
How to install the free Calendly listener Embed Calendly on your page. In Calendly open your event type, click Share → Add to website…
calendly_booking_success Video Get the code

Copy this into a Custom HTML tag in Google Tag Manager. It pushes hubspot_meeting_success to the dataLayer when someone books through HubSpot Meetings.
<script>
/* HubSpot Meetings listener by MD Niamul - mdniamul.com */
(function () {
window.dataLayer = window.dataLayer || [];
var lastPush = 0;
window.addEventListener('message', function (event) {
// Only trust messages from HubSpot's meetings iframe (meetings.hubspot.com, meetings-eu1.hubspot.com)
var host = '';
try { host = new URL(event.origin).hostname; } catch (e) { return; }
if (!/(^|.)hubspot.com$/.test(host)) return;
var data = event.data;
if (typeof data === 'string' && data.charAt(0) === '{') {
try { data = JSON.parse(data); } catch (e) { return; }
}
if (!data || typeof data !== 'object') return;
if (data.meetingBookSucceeded !== true && data.meetingBookSucceeded !== 'true') return;
// One push per booking, even if HubSpot sends the message twice
var now = new Date().getTime();
if (now - lastPush < 2000) return;
lastPush = now;
var payload = data.meetingsPayload || {};
window.dataLayer.push({
event: 'hubspot_meeting_success',
form_id: payload.formGuid || '',
page_path: window.location.pathname
});
});
})();
</script>
This code is also on GitHub with a README and version history: github.com/mdniamul0/hubspot-meetings-gtm-listener
hubspot_meeting_successhubspot_meeting_success, use it on your GA4, Google Ads or Meta tag, then Preview and Publish.After you install the code and send a test entry, this is the data that shows up in GTM. You don’t need to paste it anywhere. Use it to check the listener works and to create Data Layer Variables such as form_id.
{
event: 'hubspot_meeting_success',
form_id: '8f2b1c3a-11aa-4c9e-9b7f-1234567890ab',
page_path: '/book-a-call/'
}hubspot_meeting_success as the event name.DLV - form_id and use form_id as the Data Layer Variable Name.generate_lead), Google Ads conversion or Meta Pixel event on the hubspot_meeting_success trigger.hubspot_meeting_success shows up in Tag Assistant, then publish your container.The free code tells GTM that a lead happened. The advanced code tells your ad platforms who the lead is and where they came from.
| What you get | Basic Free | Advanced Paid |
|---|---|---|
| Fires only on a successful submit or booking | Yes | Yes |
| Form or platform ID in the dataLayer | Yes | Yes |
| UTM source, medium, campaign, term and content | No | Yes |
| Ad click IDs (gclid, wbraid, gbraid, fbclid, ttclid, msclkid) | No | Yes |
| SHA-256 hashed email, phone and name | No | Yes |
| First-party cookies (_fbp, _fbc, _ga, _gcl_aw) | No | Yes |
| Device, browser and visitor location | No | Yes |
| event_id for Pixel and CAPI deduplication | No | Yes |
| Ready for Google Ads Enhanced Conversions and Meta CAPI | No | Yes |
| Install help from MD Niamul | No | Yes |
Built for agencies and brands that run paid ads. Every lead carries the data that Meta, Google Ads, TikTok and GA4 need to match the person and credit the right campaign.
One-time price. Start with the code, or let me set everything up for you.
You install it yourself
We set it up together
I install and test it
Browser + server tracking
Stape.io plan paid separately
Server-side: Server-side tracking runs on Stape.io. The Stape plan is not included: you pay Stape directly (they have a free plan for small sites). I set it up on your account. Get Stape (global) · Stape EU server
One-time prices in USD. You pay me directly and get an invoice in your client portal.
Not sure which one fits? Message me and I will tell you what you need.
Already bought the advanced code? Get it in your client portal.
No. It works when the HubSpot calendar is embedded on your own page. On HubSpot's own meetings page your GTM does not load, so nothing can fire.
Yes. The basic code is free to copy and use on your own and your clients' sites. It fires hubspot_meeting_success with the meeting form ID and page path.
Yes. It accepts messages from meetings-eu1.hubspot.com and every other hubspot.com address, and ignores messages from anywhere else.
Message me on WhatsApp. After payment I add it to your client portal with the code, a setup video, a PDF guide and a GTM import file.
Yes. The basic code on this page is free to copy and use on your own or your clients’ sites. It fires the hubspot_meeting_success event when the HubSpot Meetings form is sent.
The basic version only tells GTM that a lead happened. The advanced version also sends UTM values, ad click IDs, hashed email and phone, first-party cookies, device and location data and an event_id, so Meta CAPI, Google Ads Enhanced Conversions and GA4 get much better data.
Message me on WhatsApp, book a call or use the contact form. It is a paid, one-time purchase, and I can install it for you if you like.
No. The listener runs inside Google Tag Manager and listens for the form’s own success signal. You don’t need to edit the form or your theme.
💬 Want this implemented without mistakes?
I’ve completed 850+ projects for 600+ businesses and 15+ agencies, helping clients generate $11M+ in revenue with accurate client-side & server-side tracking and business automation.
⮏ My core services include:
⨭ GoHighLevel Automation — build CRM pipelines, WhatsApp automation, AI voice workflows & automated follow-ups end-to-end.
⨭ AI Agent Automation — deploy AI chatbots & agents for 24/7 lead qualification and support.
⨭ Paid Ads Management — Google Ads, Meta Ads.
⨭ Full Stack SEO/GEO/AEO Manager.
⨭ CRO-Focused Web Development — Landing Pages on WordPress, Shopify, Wix, Squarespace.
⨭ Google Tag Manager (GTM) — manage data layers & (Marketing platform Tag, Trigger & Variables).
⨭ Custom Code by GTM — HTML, CSS & JavaScript for advanced marketing platform tracking.
⨭ Server-Side Tracking — recover data lost to ITP & ad blockers (Official Stape Partner).
⨭ Google Analytics 4 (GA4) — visualize customer journeys.
⨭ Multi-Channel CAPI — Facebook, TikTok, Pinterest & Snapchat Conversion API & Klaviyo email marketing tools.
⨭ Third Party Checkout Conversion Tracking — Shopify, Stripe, GoKwik, Shiprocket, PayPal or more.
⨭ Google Consent Mode (GCM) — maintain GDPR compliance.
⨭ Marketing Automation — streamline workflows (Zapier/n8n/Make).
⨭ CRM Conversion Tracking — link offline sales to ads.
⨭ Tag Management — GTM & Third-Party Checkout Tracking.
⨭ Offline & CRM Tracking — HubSpot, Salesforce, Zoho, Pipedrive, Odoo, Webhook & Sheet.
⨭ Advanced Analytics — GA4, Google Looker Studio & BigQuery (SQL) for deep data visualization.
If you want your HubSpot Meetings Tracking done right the first time, message me.