Looking to use Calendly's API or build integrations? Developer Community is here to help.
Recently active
Descrição Detalhada: Olá. Sou terapeuta e meu fluxo de trabalho está sendo prejudicado por um erro de leitura do Calendly. O sistema está bloqueando 1 hora antes e 1 hora depois de cada agendamento, mas os Buffers estão todos configurados em 0 minutos. Na minha Google Agenda não há eventos, lembretes ou tarefas nos horários bloqueados. A ferramenta de diagnóstico Troubleshoot indica Calendar Event, mas esse evento não existe no Google. Eu realizo os cancelamentos diretamente pelo painel do Calendly, mas os blocos de 1h ao redor de outros eventos persistem. Preciso que a equipe técnica verifique se há um erro de cache na sincronização da conta [removed by moderator] O Calendly está inventando ocupação onde a agenda está livre.
This is loaded from their official script: https://assets.calendly.com/assets/external/widget.jsWhats already set:Container min-height: 700px (exactly what they suggest) Container min-width: well above 320px (it's full mobile width, ~375px+) We use overflow: hidden, clip-path: inset(0), contain: content on the .calendly-inline-widget class We've added max-width: 100vw on the widget and its iframe via CSSThe actual problem:The Calendly widget works fine on mobile until the user completes a booking. At that point, Calendly navigates its iframe to a "You are scheduled" confirmation page. That confirmation page's content is wider than the mobile viewport. Because it's a cross-origin iframe, mobile Safari ignores all CSS containment (overflow: hidden, clip-path, contain) on the parent and expands the entire page layout to fit the iframe content. This breaks the viewport for the current screen and all subsequent screens.Key point : This is not an iframe sizing issue, it's specifically Calend
Hi everyone, When rescheduling an appointment, the calendar shows the default Calendly colors. I would like to personalize this calendar in the same way that I have personalized my main calendar. Can anyone point me to the place where I can change this? Thanks in advance!
Hello Calendly Support Team,I am trying to integrate Calendly on my WordPress website (https://jdtheweb.com/) for my agency bookings, but I am facing an issue.Whenever I try to embed or open Calendly, I receive the following error message:“Oops, something went wrong. If the problem persists, contact us at [removed by moderator] ”I have tried the following:Re-embedding the Calendly widget Clearing browser cache and testing on different browsers Checking my internet connection Trying different devicesBut the issue still persists.Could you please help me understand:Why this error is occurring? How can I fix it? Is there any restriction or setting I need to configure in my Calendly account or embed code?Looking forward to your support.Thank you in advance.Best regards,JD The Web
Hi, I’m trying to connect ScoreApp results pages with Calendly so that name and email from ScoreApp are autofilled on Calendly. Can’t figure out how to do it. Connecting the two is dead simple, Adding the autofill is not clear. Can anyone help me with this? I am a non-techy, so need very simple and explicit instructions, especially as this involves iframe code embedding and I have no clue how to do this, or where each piece goes! Thanks in advance for any help you can lend. Michael
We are integrating the Calendly Scheduling API with our agentic system and are facing unexpected behavior while booking meetings.Request Payload{ "date": "2025-12-19", "time": "02:00", "email": " [removed by moderator] ", "name": "name" } Response Received HTTP Status: 200 Response Body: { "status": "error", "message": "I encountered a system error while booking. I will have a specialist call you to confirm.", "meeting_url": "", "scheduled_time": "" } We are unsure why the API returns HTTP 200 while the response body indicates an error.Slot Availability IssueWhen testing different times: Request with time = 06:00 returns: “The slot is not available, you can book a slot from the 06:30, 07:00, 07:30” Retrying with time = 06:30 returns: “The slot is not available, you can book a slot from the 07:00, 07:30, 08:00” Each retry shifts the suggested availability forward, even though we are selecting from the suggested slots.Expected BehaviorOur logic is: If the requested slot is unavailabl
Hi everyone,I’m trying to correctly pass Google Ads GCLID parameters through Calendly to my website’s booking confirmation page, so that conversions can be attributed back to Google Ads in GA4.Here’s my setup: My Google Ads and GA4 accounts are linked correctly. My website uses Google Tag Manager (GTM) with a GA4 event tag booking_confirmation that fires when the user lands on:https://xxxx.de/pages/booking-confirmation Calendly is used for booking consultations, and after a booking I redirect users to that confirmation page using:After booking → Redirect to an external site → Redirect URL:https://xxxx.de/pages/booking-confirmation The issue is:I need to pass the gclid parameter from the original Google Ads click through Calendly to my confirmation page, but Calendly doesn’t accept dynamic parameters like {gclid} in the redirect URL (it shows “Not a valid URL” when I try ?gclid={gclid}).As a result, my GA4 event tracks bookings, but Google Ads doesn’t register any conversions — ever
Bonjour,Je rejoins les demandes précédentes. Quand le bouton “RESERVER EN LIGNE” sur la fiche d’établissement Google My Business sera t’il disponible? Je regarde pour une autre solution que Calendly même si j’en suis satisfaite pour le reste.Merci
Hi! I was trying to fetch group_relationships with owner parameter →https://api.calendly.com/group_relationships?owner=https://api.calendly.com/organization_memberships/ef4f9092-0e84-43cc-960c-b82804f7f9fdI am getting following 403 error →{ "title": "Permission Denied", "message": "You do not have permission to access this resource."}I’m using PAT token to make API call, and the PAT is generated from an Owner account still getting same issue. I’ve tried with OAuth2 as well but facing same issue
Keep Calendly Contacts in sync across systems.ICYMI: Calendly Contacts keeps relationship details, meeting history, and follow-ups in one place, automatically building and updating contact profiles as users schedule and meet.Developers can now access and manage Contacts through the Public API and stay in sync with webhooks.What’s included Public API endpoints Webhooks subscriptions Get ContactGET /contacts/{contact_uuid} List ContactsGET /contacts Create ContactPOST /contacts Update ContactPATCH /contacts/{contact_uuid} Delete ContactDELETE /contacts/{contact_uuid} contact.created contact.updated contact.deleted Use casesMany teams use Calendly alongside CRMs, marketing platforms, support tools, workflow automation tools, and internal systems. Contacts APIs make it easier to keep Contact data synced across systems without relying only on scheduling events as the source of truth.This also enables new workflows built around Contact events —
HI team,I am using a citrix application to connect to calendly with my users, I had a problem to verify the schedule a meet and the .har file is giving me this error: "method": "POST", "url": "https://calendly.com/api/booking/invitees", "response": { "status": 400, "text": "{\"failure\":{\"error\":\"Oops, something went wrong.\",\"code\":\"forbidden\",\"context\":{\"telemetry_id\":\"tid-3f6fcd30-751f-4f1a-8468-25ece116e58f\",\"explanation\":\"Your meeting request could not be finalized with this host. If you feel you've reached this message in error, please reach out to support with below error code.\",\"stytch_block_verdict\":true}}}" }, Is this because in Calendly platform is blocking me with the IP address we are using? It works outside the citrix, should we ask for a whitelist in Calendly side, how ca we do that?
Hi Team, I want to verify what is the meaning of this message: “stytch_block_verdict:true” in a post request with 200 response.
For my company internal use, will it be doable to set a webhook to company internal domain name or url?
Hi,We need to set up per-host ceilings in a round robin through the API.In other words, as we create the round robin event via the API, we would like to instruct that for this event, agent A cannot have more than X appointments in total and agent B, no more than Y appointments in total (on the same round robin event).This limitation prevents us from using the round robin feature (which is why we haven't yet upgraded to a higher plan which would include round robin).I’d be happy to provide more context for you if needed.
I’m attempting to create an invitee via:POST https://api.calendly.com/inviteesI consistently receive:{ "title": "Invalid Argument", "message": "Specified location kind is not configured for this event type.", "details": [ { "parameter": "event.location_configuration.kind", "code": "invalid_location_choice" } ]}Event Type (confirmed via GET){ "kind": "solo", "locations": [ { "kind": "zoom_conference" } ], "uri": "https://api.calendly.com/event_types/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"}Invitee POST body{ "event_type": "https://api.calendly.com/event_types/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "start_time": "2026-02-17T16:15:00Z", "invitee": { "email": "test@example.com", "name": "Test User", "timezone": "America/New_York" }, "location_configuration": { "kind": "zoom_conference" }}Headers: Content-Type: application/json Authorization: Bearer (PAT) The event books successfully via the UI, but the API rejects it.What additional field (if any
I am loving the new meeting packages that are available. Please make these for all events, including round robin. It is the perfect solution to my scheduling problems, but I cannot achieve what I need to with 1:1 events only.
We're in the process of implementing Subresource Integrity (SRI) across our website to meet security compliance requirements. As part of this, we need to add integrity hashes to all externally loaded scripts and stylesheets. Why it matters / Risks:Without SRI, if your CDN were ever compromised or the asset URL silently updated, a malicious script could execute on our site with no warning to us or our users.Almost all modern JavaScript libraries support versioning and integrity-hash support. It seems to be missing in Calendly. Could you please confirm:1. Whether you provide a versioned, stable URL for this asset (so the file content won't change unexpectedly)?2. Whether you publish an official SHA-384 (or SHA-256) integrity hash we can use in our integrity attribute?3. If not, do you have a recommended approach for customers who need SRI compliance?This is a security requirement flagged in our infrastructure audit, so any guidance you can provide would be greatly appreciated.
I’ve used Calendly routing for my team’s implementation project kickoff calls for the last 4 years. Recently, we’ve rapidly grown to a team of 35. I’m routing to 20 different round robin events, with some team members being in multiple events. Long story short, we’ve launched new products that can be bundled together in a few different ways, and it necessitates this level of complexity.I’m not currently using the salesforce integration, but have plans to scope it further this quarter. Also, I’m not on enterprise plan but may consider upgrading. The main problem is that it’s getting difficult to keep track of the event details such as buffers/maxes. I’m looking for better visibility into what team members are in which round robin, and better reporting on my full event structure.Has anyone had a similar issue? Are there additional API, MCP, or integration options that could help manage this level of complexity?
I am trying to create a scheduled event using oauth 2 API. I am not sure why the API is failing with 400 Bad Request error. Could you please help me to figure out the issue?request url: https://api.calendly.com/inviteesrequest method: postrequest headers includedauthorization bearer <token>content-type application/jsonrequest payload{ 'event_type': 'https://api.calendly.com/event_types/742a5393-093d-474b-abda-1ffdd446fb7e', 'start_time': '2025-12-01T19:27:04.0000Z', 'invitee': { 'email': 'user_001@test.com', 'name': 'Test User001', 'first_name': 'Test', 'last_name': 'User001', 'timezone': 'America/Los_Angeles' }, 'location': { 'kind': 'inbound_call' }}response code: 400response payload:{"title":"Invalid Argument","message":"The supplied parameters are invalid."}reponse headers:x-request-id: 5e18b628-eb03-4771-8f56-96f9341e5261
I want the connect button to always show register/login page but Calendly automatically loads an account which is already logged in browser.So, If user is a first time visitor in my site and requires connecting to my app’s dedicated Calendly account, it fails cause they already have an personal account and it loads automatically .I can add condition that current account doesn’t match with app’s account using DB, but then how to prompt the register page frommy account?
Hey Calendly!I’m using the `Calendly.initInlineWidget` JavaScript embed API. I need to know when the user picks a date/time and what date time they select. So I’m listening for the `calendly.date_and_time_selected` event, which is correctly fired when an time is selected. However, the payload is empty, so while I know the user picked a date, I have no idea WHICH date. Is there any workaround or fix for this? Here’s a code snippet: function initCalendly() { Calendly.initInlineWidget({ url: 'https://calendly.com/example/meet?embed_domain=example.com', parentElement: document.getElementById('calendly-embed') }); } // Load Calendly after page load window.addEventListener('load', initCalendly); function isCalendlyEvent(e) { return e.origin === 'https://calendly.com' && e.data.event?.startsWith('calendly.'); } window.addEventListener('message', function (e) { if (isCalendlyEvent(e)) { switch (e
We have the new endpoint out, which is great. Is there any way to reschedule an event? Seems like the only workaround is to cancel, and then rebook it. Kind of annoying to have to do a round trip (since there’s multiple emails / texts / workflows with each event). Thanks!
In referencing this API documentation:https://calendly.stoplight.io/docs/api-docs-v1/c2NoOjE4NzA3MzM-webhook-payloadIt says the following: “Human-readable moment when the event starts in invitee's timezone (e.g. "12:00pm - Wednesday, March 14, 2018")”This should mean that the webhook payload data here contains the start time for the invitee, so if this was pulled out of a payload and sent in an email, it wouldn’t be confusing to the invitee regarding what time their meeting is at.Ours, however, ALWAYS sends this in pacific time. We have tested internally with 3 different employees in different time zones and all three have ended up with the invitee start time showing pacific time. Our Calendly is set to mountain time, as well as our Zoho Flow (although this shouldn’t affect anything).What is more interesting, is in the same exact payload, a field titled, “timezone” (the timezone of the invitee) comes across with the correct timezone.Any ideas?
I have a Calendly Premium account and am using my personal access token to build a customized booking flow.So far, I’ve successfully integrated the external API to: Retrieve and display availability Create a customized calendar UI on my website The issue is that although availability shows correctly, I cannot complete the booking process through the API.I’ve reviewed the API documentation, but I’m not sure if I’m missing an endpoint, permission, or specific payload structure required for confirming the booking. Could someone guide me on: 1. The correct API flow for completing a booking after retrieving availability. 2. Any special parameters or authentication steps needed for booking confirmation. 3. Whether this is possible with only a personal access token or if I need an OAuth setup.
The Primary Color of the routing form is RED (#bf0d05) but the dropdown list box selection color is an orange. Is there a workaround to change this color from orange to a different color? <!-- Calendly inline widget begin --><div class="calendly-inline-widget" data-url="https://calendly.com/d/cv9z-wmd-tqg?embed_domain=perlmanmediation.com&embed_type=Inline background_color=d3d3d3&text_color=000000&primary_color=bf0d05" data-resize="true" style="min-width:320px;height:500px;"></div><script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js" async></script><!-- Calendly inline widget end →
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.