Calendly
Calendly embed not working
The booking page on calendly.com and the embed on your site fail differently. Most blank widgets are a blocked script, a dead event URL, or a parent with no height.
Symptoms
- A blank rectangle where the calendar should be.
- The event opens on calendly.com and the embed does not.
- The widget flashes and disappears after a client-side navigation.
- Times show, and confirming never reaches a confirmation screen.
Common causes
The event type was unpublished or renamed
The data-url still points at the old event. Calendly shows an error or an empty state inside the frame. The rest of your page is unaffected.
The widget script is blocked
Consent tools and Content-Security-Policy block the Calendly script or the iframe. The div is on the page. Nothing fills it.
The parent has no height
An inline widget inside a collapsed panel, or a parent with overflow hidden and height 0, clips the iframe to nothing. It looks like the embed failed to load.
Client-side navigation did not re-run the widget
The script boots on the first load. A later route change in a single-page app leaves the container empty. A full reload works.
The link is a personal page, not the event you meant
The homepage of a Calendly account is not the event type the campaign promised. Visitors land on the wrong booking, or on a list they cannot use.
Fix it
Open the event URL on its own
Paste the data-url into a browser. If Calendly itself says the event is unavailable, fix or replace the event. The embed cannot do better than the URL.
Confirm the script and the container
The page needs the widget script and a container whose URL matches that event. A generator often keeps one and drops the other.
Read the console
A blocked frame or script error names the policy. Allow the Calendly host in frame-src and script-src if you set a Content-Security-Policy.
Give the parent a real height
Do not put the inline embed in a zero-height tab. Set a min-height and test on a phone, where the clip is easier to miss.
Reload after client-side navigation
If a full reload shows the calendar and a route change does not, re-initialize the widget when the container is mounted. This is an app bug, not a Calendly outage.
Book a slot with a monitor address
Pick a time you can cancel. A missing confirmation screen is the bug even when the grid of times rendered.
Catch it automatically
Map a booking funnel: open the page, choose a slot, assert the confirmation. FunnelWatch does not need your calendar password. A free ping on the public link still only proves the URL returned, so use it as the cheap check and the replay as the real one.
Watch the next break before a customer does.
Map the path once. The next publish does not get to fail in private.
Questions
The iframe is empty and calendly.com works.
The event is up. Your page is not loading the script, or it is clipping the frame. Check the console and the parent height.
Do I have to give FunnelWatch my Calendly login?
No. The check uses the public booking page, the same way a visitor does.
Why did this start after a redesign?
The new component kept the heading and lost the widget script or the event URL. Compare view source to the embed code Calendly gives you now.