Updates, improvements, and announcements for the Calendly API. Each entry documents a change that affects developers building on the platform.Documentation Index
Fetch the complete documentation index at: https://calendly-preview.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
We are updating the endpoint-specific rate limits for
Create Event Invitee.Updated Endpoint-Specific Rate Limits:Previously, this endpoint had the same rate limits across billing tiers. With this change, rate limits for this endpoint will vary by billing tier.| Billing Tier | Rate Limit |
|---|---|
| Trial | 5 requests per user per day |
| Paid, Non-Enterprise | 10 requests per user per minute 50 requests per user per hour 100 requests per user per day |
| Enterprise | 500 requests per user per minute |
Connect Calendly to AI tools and MCP-compatible clients to enable natural language access to Calendly scheduling data and actions.Use Calendly MCP to:
- Integrate Calendly with supported AI tools and MCP-compatible clients
- Power natural language interactions with Calendly
- Build custom AI-powered workflows with Calendly
Scoped permissions are now available for Calendly API access. New OAuth apps and new personal access tokens must request and be granted explicit scopes before calling endpoints.What’s included:
- Clear read vs write permissions, with
:writeimplicitly including the matching:readin the same domain. - A full scope catalog across scheduling, user management, webhooks, and security/compliance.
- Backward compatibility: Legacy OAuth apps and personal access tokens keep full access by default. Refreshing a legacy token migrates it to the scoped format automatically.
The Scheduling API (Create Event Invitee endpoint) enables developers to programmatically schedule Calendly meetings on behalf of invitees without redirects, iframes, or Calendly-hosted UI. This endpoint enables more deeply integrated scheduling flows for use cases like AI assistants, workflow automation tools, and custom portals.Included endpoints:
- POST /invitees – Create a new Event Invitee
We’re releasing a set of new APIs that enable external developers to create and update Calendly event types, initially limited to one-on-one event types. These APIs are ideal for embedding scheduling setup into external onboarding flows or custom integrations.Included endpoints:
GET /locations– Retrieve the host’s connected locations (e.g. Zoom, Google Meet)POST /event_types– Create an event typePATCH /event_types/{uuid}– Update an event typeGET /event_type_availability_schedules– List availability schedules tied to an event typePATCH /event_type_availability_schedules– Update availability schedules for an existing event type
Information about an Event Type now includes a field named “locale” to indicate the language of the event type’s scheduling page.
V1 APIs will be phased out beginning in May 2025. If you have not already migrated to v2, please refer to the Migration Guide for next steps to avoid disruptions to your connections and integrations.
We have added a new API to retrieve the details of an Organization, including:
- Name
- Kind (i.e. whether it is a single-user or multiple-user organization)
- Active subscription plan or trial plan
- Current stage (e.g. “trial”)
- Timestamps of when the organization was created or last updated
The List Organization Memberships API now accepts the “role” parameter to allow filtering results by role. Developers can specify this parameter to efficiently query memberships based on an assigned role, such as admin or owner.
Information about a User returned by the Get User and Get Current User API now includes the user’s language preference. That information can be used by developers to communicate with their users in their favorite language.
Information about an Organization returned by the Get Organization API now includes a field named “kind” to indicate whether the organization is a single-user or multiple-user organization.
It is now possible to specify duration options when using the Create Share API. Developers can use this new field to provide up to 4 unique options, each of them specified as a number of minutes between 1 and 720.If duration options are provided, then duration must be one of values specified in that field. If duration options aren’t provided then duration must be one of the duration options inherited from the event type
This enhancement allows for dynamic adjustments to the booking page height, ensuring a smoother user experience by eliminating unnecessary (double) scroll bars within the iframe.
Key points:
- Dynamic Height Posting: Each time the height within the booking page iframe changes, a message is posted to the parent window. This message indicates the new height of the booking page.
- Real-Time Height Rendering: When a booking page loads, it renders the current height automatically. Navigating to different pages triggers height adjustments to reflect changes instantly.
data-resize="true" will need to be added as an attribute:<div class="calendly-inline-widget" data-url="http://calendly.com/YOUR-LINK" data-resize="true" style="min-width:320px;height:700px;"> </div>Note:- This enhancement currently only works with one inline embed per page.
- When using this attribute, avoid using drop downs on the booking page.
The Groups API enables organizations to efficiently view members and events of specific Groups by associating scheduled events with particular Groups. This enhances the accuracy of event attribution and facilitates the creation of reports for Groups. Additionally, it allows Org admins to assign reporting tasks to Group Admins without granting admin privileges when integrating external products with Calendly.Key Info:
- List Groups API
- Get Group API
- List Group Relationships API
- Get Group Relationship API
- List scheduled events for a specific Group
- Subscribe to scheduled events (Webhook) for a specific Group
Our Event Type permissions feature allows a user (User A) to grant view or edit permission of their Event Types to another user (User B) within their Org. However, those ETs were not visible to User B when they accessed the List User’s Event Type API. This limitation has now been addressed with this enhancement. As a result, any ETs that User B has permissions to access will now appear in their API results. This update enhances visibility and consistency, aligning what User B sees in the product interface.Additionally, to identify the ETs User B has permissions for, you can refer to the
profile section within the API response which contains the original owner profile of that ET.We’re excited to announce an update to our Developer Portal that makes signing up easier and more secure than ever. Developers can now register using their standard email and password, moving beyond the need to use their personal Google or GitHub accounts for access. This update includes all the essential features you expect, such as account verification and a “Forgot Password?” option.This improvement was driven by our commitment to providing flexible and accessible tools for developers. Whether you prefer to use your company email, a shared team account, or another email address, our enhanced sign-up process is designed to accommodate your needs. This flexibility not only makes it easier to get started with our platform but also encourages a broader range of integrations with Calendly.Let’s start building more integrations!
Launching a series of enhancements based directly on customer feedback. These enhancements are designed to improve product quality and efficiency while implementing a solution using our APIs.
- Sorting by ‘Created or Updated Date’ on List Users Event Type API: By adding sorting options based on the ‘dates’ to the List Users Event Type API, we aim to increase the efficiency of implementation when using this API.
- Including Meeting Notes in Scheduled Event API: Meeting notes (added under Scheduled Events) are now included in the Scheduled Event API. Now, adding meeting notes to external systems becomes a easier.
- Get Webhook Sample Data API: An endpoint to get sample data from
invitee.created,invitee.canceledandinvitee_no_show.createdsubscription for easy evaluation. - API Examples for Easy Implementation: To facilitate a smoother developer onboarding experience, we’ve added three API examples targeting popular use cases:
In December 2023, we introduced two powerful APIs designed to enhance your experience:These APIs address key customer needs, enabling dynamic creation of meeting links from external systems and providing visibility into all members associated with a Collective or a Round Robin Event Type. Use cases include scenarios where Event Type availability is limited, allowing hosts to take timely action.Previously restricted to our Enterprise plan, we’re thrilled to announce that based on customer feedback and our commitment to providing value across all tiers, we’re removing this limitation!Starting today, these APIs are accessible to all tiers, empowering every customer to leverage these capabilities seamlessly.Thank you for your continued support as we strive to improve your experience with our platform.Happy collaborating! 🌟P.S: Additionally, we’ve included a direct feedback channel on our support page. We’re eager to receive your input firsthand regarding our API offerings and how we can enhance them to better assist you in creating new integrations.
We’d like to inform you that we have now updated API Rate Limit specifically for customers on our Free Billing Tier. Customers on the Free Billing Tier will be subject to a limit of 10 API requests per token per minute. This restriction applies to both direct API calls and those made through third-party integrations.It’s important to note that there is no alterations for customers on the Paid Billing Tiers.
We’d like to inform you in advance that we will be introducing a distinct API Rate Limit specifically for customers on our Free Billing Tier. In the near future, customers on the Free Billing Tier will be subject to a limit of 10 API requests per token per minute. This restriction applies to both direct API calls and those made through third-party integrations.It’s important to note that there will be no alterations for customers on the Paid Billing Tiers.We wanted to provide this notice well in advance, allowing our customers the time to plan accordingly. As we get closer to implementing, we will share the exact date.
API to create a collective one time use (ad-hoc)meeting links from external system by adding any users as host or co-hosts and use date ranges or individual spots to share availability.
Key Info:
- Only available to Enterprise plan at this time
- Add any users as hosts or co-hosts (max 10)
- Use individual spots, date ranges or days in future as availability
API to return all members from a given Collective or a Round Robin Event Type. This API empowers customers to build a solution/integration where they can view and notify all the hosts of an Event Type based on a certain condition or action. For example: When Event Type availability is limited, notify all hosts to take appropriate action.Key info:
- Only available to Enterprise plan at this time
We have implemented token-based rate-limiting on all of our Public APIs. Based upon current usage data, we have currently set the rate limit at 500 requests per min per token at this time. This rate is subject to change in the future as we continue to monitor.Key Info:
- Currently set the rate limit at 500 requests per min per token.
- This rate applies to all customers and tech-partners using our APIs on all plans.
- This rate applies to both Personal Access Tokens and OAuth Tokens.
- This rate does not apply to API Key for V1 endpoints.
We want to give you a heads up about an upcoming change to our API - the introduction of token-based rate limiting. This change aims to enhance service quality and system stability by ensuring fair usage and preventing disruptions from excessive requests. Please plan as early as possible to make appropriate changes based on the following details to avoid any disruption to your current implementation. To ensure a smooth transition, we will soon notify you of the exact date when rate limiting will take effect, and the specific rates as we get closer to the target date.
Details
- When an API consumer reaches the rate limit, we will respond with a 429. The consumer can retry the call after the number of seconds specified in
x-ratelimit-reset.“ - As detailed above, all responses will include the following headers
- x-ratelimit-limit (the specific rate limit ceiling for the current request)
- x-ratelimit-remaining (the number of requests left for the current rate-limit window)
- x-ratelimit-reset (the time at which the rate limit resets = 60 seconds)
We have added the ability to edit attributes for existing OAuth applications from within a Calendly developer account (the self-service developer portal). This will allow developers to edit the following values:
- Name of app
- Kind of app
- Environment type
- Redirect URI
We recently launched a new product feature ‘Customize event once and share’, which allows users to change some key properties of their event from the sharing page and generate a unique scheduling link. More information on this feature can be found on our help center.
We are now enabling the same functionality via Share API. Developers can use the API to provide the same functionality to our users from external products when users need to make last minute key changes and generate a new link to share with their invitees.
We have launched a self-service mechanism for developers/technology partners to create a developer account and manage their own oauth applications in order to streamline the onboarding process and enhance their user experience.With this new capability, developers can create, update and delete their applications without having to contact our developer support team. This also provides added security when generating/sharing application tokens.Key info:
- Ability to sign up for a Calendly developer account using their GitHub or Google login. Note: This account is different from your Calendly user account.
- Ability to create and delete applications.
- At this time, (oauth) applications created before this release will not be visible within the portal under their respective developers’ account. We will work on adding all existing applications in coming months so they are available within the portal. Please look for communication in the coming weeks regarding the process.
Our Enterprise customers now have the ability to delete all invitee’s PII from scheduled events within a specified date range from an external system. This allows customers to ensure that their data is compliant with the latest legal and industry regulations.This API provides customers with the flexibility to delete data (when required) in an efficient way, directly from external system. It also enables them to create a process to automatically delete in a scheduled timeframe removing the manual effort.
We have added a new response parameter (
admin_managed) in List User Event Type and Get Event Type APIs. Developers can use this parameter to identify if an Event Type is a Managed Event Type assigned to that user or if it’s their personal Event Type.We have added three new APIs - List User Availability Schedules, Get User Availability Schedules and List User Busy Times. With these APIs, developers are able to view user’s schedules including override dates and ‘busy times’ (scheduled external meetings and Calendly meetings). Use this information to get total available (or booked) hours for a given user for a given period of time. These APIs will also enable developers to create ‘calendar view’ within their product.
We have added an API to retrieve the activity log data we have available in the product. IT Security teams & developers (with admin authorization) can use this API to retrieve user activity for a specific category or action for a given period of time. Customers can utilize this API for audit log archiving and retention purposes and for integration with a SIEM (Security information and event management). Read our help center article for more information.
Note: This API is only available to Calendly enterprise customers
We have added an API to return available times for a given Event Type. Developers can use this API to create an experience for users to select and share individual meeting available times directly from external products.
We have added the
routing_form_submission.created webhook subscription to allow users to be notified and take appropriate action based on form details when a routing form is submitted.
The routing_form_submission.created webhook payload contains the Routing Form Submission resource and the routing form submission link is now included in the Invitee resource.In addition to the Webhook, we have also added complementary APIs to retrieve the Routing Form details- List Routing Forms endpoint
- Get Routing Form endpoint
- List Routing Form Submissions endpoint
- Get Routing Form Submission endpoint
- Create Webhook Subscription endpoint (new
routing_form_submission.createdwebhookevent added) - The Invitee resource has a new
routing_form_submissionproperty that refers to the associated routing form submission (if any)
Implement meeting cancellation functionality within external products to enable hosts to cancel a scheduled meeting using our new Cancel Event API.
We have updated one of the HTTP error response codes and the error title on our Invite User to Organization API in order to be consistent with our API standards.
- Existing behavior: When this API is called and there are no available seats for that Organization, API responded with an error message with HTTP code 400 with ‘Please upgrade your Account to Send More Invitations’ error title.
- New behavior: When this API is called and there are no available seats for that Organization, API will respond with the same error message, but with HTTP code 403 with ‘Permission Denied’ error title.
You can now sync invitee no-show information for a scheduled events using our new no-show APIs.
- View who were marked no-show among list of invitees for a given scheduled events.
Object: ``no_showProvides data pertaining to the associated no show for the Inviteeuri`` string requiredCanonical reference (unique identifier) for the no showcreated_at`` string <date-time> requiredThe moment when the no show was createdExample:2019-01-02T03:04:05.678Z
- Get more information for a given no-show invitee
- Mark an invitee as no-show within your Calendly Org
- Un-mark any previously marked no-show invitee within your Calendly Org
See who created a Webhook subscription and request additional data about the event on their behalf. Subscription creator URI is now included in Webhook payloadattribute:
created_by`` string <uri> requiredThe user who created the webhook subscription
We have enhanced our
GET /event_types API with an ability to return only ‘active’ or ‘inactive’ Event Types by adding optional query parameters in the request. Default (current) action in the request without active query parameter will return both ‘active’ and ‘inactive’ Event Types.Query Parameter:active`` booleanReturn only active event types if true, only inactive if false, or all event types if this parameter is omitted.
We have enhanced (below) scheduled events endpoint and added a new
cancellation object in the response. This object is also included in the Webhook payload.Object:
cancellation`` object Provides data pertaining to the cancellation of the Event ``canceled_by`` string required ``reason`` string required ``canceler_type`` string required Allowed values: host, invitee
We’ve updated the formatting of our access tokens. You can still make requests to our API the same way, but now the character length of access tokens is around 370 characters instead of 43 characters. We recommend storing access tokens (along with webhook signing keys) within a database column without length restrictions or with a very high character limit.
The v2 API now supports personal access tokens as a second method of authentication. An individual Calendly user or organization can use a personal access token to connect to internal automations. Any automations or integrations that allow multiple Calendly users to connect should use OAuth. See more here.
2021-03-03
Webhook signing keys supported for webhook subscriptions created with personal access tokens
When creating a webhook subscription using personal access tokens, developers can optionally set a webhook signing key. This lets developers verify expected signatures using the signing key. Developers working with OAuth should already have a signing key associated with their OAuth app. See more here.
When a Calendly user connects a payment integration to collect payment at the time an event is scheduled, the amount the invitee paid will be included in the invitee model.
Authenticated Calendly owners and admins can make a call to this endpoint using the optional organization parameter to return event types across all users in the Calendly organization. To get the organization parameter related to the authenticated owner or admin, they can make a call to this organization endpoint using the user parameter.
Use the scheduling links endpoint to create links that will expire once one event has been booked with them.
The event resource will now include the email addresses of any additional guests the invitee adds while booking the event. The event resource is included in the response from the scheduled event endpoint.
When an invitee is canceled, the person who canceled the invitee and any reason provided is included in the invitee model.
Authenticated Calendly owners and admins can make a call to this endpoint using the optional organization parameter to return events across all users in the Calendly organization. To get the organization parameter related to the authenticated owner or admin, they can make a call to this organization endpoint using the user parameter.
The invitee resource is included in the webhook payload and the response to the invitee endpoint.