A few things we think you should know!
Recently active
We’re excited to share the Calendly MCP Server, a new way to connect Calendly with AI-powered apps and MCP-compatible clients.If you’re building AI apps, agents, or workflow-driven experiences, Calendly MCP gives you a secure, structured way to bring scheduling actions into those experiences using structured tools instead of raw API calls. With Calendly MCP, you can:Connect Calendly to supported AI assistants and MCP-compatible clients Enable natural language access to Calendly data and actions Build custom AI-powered workflows on top of Calendly Initial capabilitiesThe first release is focused on scheduling workflows, including:Requesting and updating availability Creating and updating event types Managing and booking meetings Generating single-use scheduling links How to get startedConnect your client to https://mcp.calendly.com Confirm that your client supports MCP 2025-03-26+ and streamable HTTP Complete the OAuth authorization flow Check out the MCP integration guide for setup gu
If you’re getting started with the Calendly API or advanced embed, the Developer Portal is the best place to start!Getting started - an overview of our APIs and the different ways you can authenticate. Create a developer account - instructions on making an account to create and manage OAuth credentials. API Reference - our up-to-date API reference, including a full list of available endpoints. API use cases and API recipes - some ideas and tutorials related to common API uses. Release notes - stay up to date with new releases and use our RSS or Atom subscription options.We also have some embed Help Center articles that are helpful to developers.Advanced embed - an outline of our advanced embed code, including a function to manually initialize an inline embed. Source tracking with your Calendly embed and UTM parameters - a great reference for passing UTM parameters to an embed.
Hi there!We’re investing more deeply in the developer experience at Calendly — APIs, integrations, extensibility, and platform capabilities — and we’re looking for developers who want to help shape what we build next.We’re forming a small, developer-focused group within Calendly TIME (Testing, Insights & Member Experience) to get iterative feedback on things like: API design and usability Auth and data access patterns Webhooks and integration workflows Embedding and white-label use cases AI-assisted scheduling and automation Platform naming and positioning This isn’t marketing — it’s working sessions. Short surveys, occasional 1:1 interviews, and early looks at concepts before they ship.Participation is always optional, and live sessions include a thank-you incentive for your time.If you build with or are exploring Calendly’s APIs and want a direct line to the product team, join here:👉 Join the Calendly Developer Research GroupAppreciate any and all feedback — especiall
Hey there,I’m currently implementing a “book a demo”-landing page and can’t figure out how to properly embed my Calendly page.It’s a 2 column layout. Left column: content, right column: Calendly Widget. I figured out, that there is a certain threshold around 950ish pixels width where the widget jumps from desktop-mode (above that threshold) to mobile-mode (below threshold). Now I got the problem that in that mobile-mode the widget fully expands for all available time slots.I’d wish to limit this in max-heigth and get a scroll bar for the time options (only time options scroll, calendar view stays fixed). That behavior is available in “desktop-mode” (see 1st screenshots) but not in “mobile-mode”. How can I accomplish this?
Hi I’m trying to hide the event details in my embed with the “hide_event_type_details=1” code but the infos still appear. Any guess on what’s not working ? Here’s the entire code copied on my website :<!-- Début de widget en ligne Calendly --><div class="calendly-inline-widget" data-url="https://calendly.com/EVENTLINK?hide_gdpr_banner=1?hide_event_type_details=1" data-resize="true" style="min-width:320px;height:700px;"></div><script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js" async></script><!-- Fin de widget en ligne Calendly -->
Hi,Currently the Widget displays informations on top and the calendar below , and that create some unwelcomed scrolling. How can i make it horizontal : Title and infos in the left , and calendar on the right ? (at least for desktop)Thanks !
When initializing a Calendly embed with widget.js, our script adds two parameters to the iframe embed’s URL. The presence of these two parameters will allow the booking page to ‘behave’ like an embed.The parameters that our script adds are embed_domain and embed_type.When the parameters are included, the booking page will:show a transparent background behind the booking container instead of a light background, allow the option to hide the cookie banner and cookie preferences, and send notifications to the parent window with window.postMessage().There are a few reasons that these parameters can be missing from your embed:When loading an HTML file in your browser directly from your computer’s local files, embed_domain will be missing. (Note: loading a localhost page will populate the domain parameter - only pages opened directly will be impacted.) Loading an embed in a WebView can also sometimes result in embed_domain being missing, so you may need to add this manually to the URL. If you
If you are not receiving webhook data, it is possible that your webhook has become disabled or is in the process of becoming disabled because Calendly cannot successfully send a POST request to your server.When you call the get webhook subscription endpoint, the state will indicate whether the webhook is active or disabled. If the webhook is in the disabled state, you will need to delete it and create a new webhook after resolving any server issues that would cause this (see further below for more details).You can also reference retry_started_at to see the last time Calendly needed to start retrying because the POST request was not successfully received by your server. How does a webhook become disabled?If the URL that you are using for your webhook subscription returns non-2xx responses or if the connection times out, the retry process will start. Calendly will continue to try to deliver the data for 24 hours with an exponential back-off that makes attempts less and less frequently. A
When calling Calendly API endpoints, you will sometimes be required to include a user and/or organization value. For example, the list events endpoint requires that you pass either a user or organization parameter depending on the scope you’d like to request and the create webhook subscription requires the organization and optionally the user to be passed in the body. But what are those values and how do you get them? The value you will need to pass is the user or organization URI.The easiest way to get these values is to call the get current user endpoint. The user URI can be found in uri and the organization URI can be found in current_organization.If you are using OAuth, these values will also be contained in the response when you get an access token. The user URI will be provided in owner and the organization URI will be in organization.Please note that you will need to pass the entire URI, not just the UUID portion. We recommend working with and saving entire URIs because UUIDs wi
An organization URI value is needed with a user-scoped webhook because a user can have multiple organizations associated with their data in Calendly, such as when they had their personal Calendly account before they were a member of an organization or after they leave an organization. As such, the organization is needed to confirm the specific user data that should be returned.
Yes, to cancel an event via the API, you can send a POST request to the cancel event endpoint.At this time, there is no API endpoint that supports rescheduling an event or invitee, however the cancel and reschedule URLs are on the invitee resource.However, the cancel and reschedule URLs can be found on the v2 API webhook payload as well. You can see an example of the payload here.These URLs are always inserted at the bottom of calendar events or email confirmations, but they are available on the API to be more easily retrievable so you can place them wherever you want in the app that you are building.Please note that cancel event endpoint can be used to cancel an event, including a Group event, but not an individual invitee in a Group event.
At this time, our API endpoints do not support creating or managing event types. To manage an event or event type, users will need to visit their Event Types page within their Calendly account.
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.