Calendly

Scheduling and availability management.

Community: Submitted by a user or imported; check the owner before granting accessDegradedNo sign-inGlobalFreeCan modify data

What it can do

  • Users Get Current User: Get current user Returns basic information about your user account. <!-- theme: info --> > #### Required scopes: `users:read` :return: Returns the result object.
  • Users Get User: Get user Returns information about a specified User. <!-- theme: info --> > #### Required scopes: `users:read` :param uuid: User unique identifier, or the constant "me" to reference th
  • Event Types Create Event Type: Create Event Type Create a new Event Type **NOTE:** * Currently, this endpoint only supports one-on-one event types (kind: "solo"). <!-- theme: info --> > #### Required

What data it sees

Do you need an account

No: the server works without sign-in

Scheduling and availability management. Create event types, check availability, book meetings, and generate scheduling links.

How to connect

How to connect Calendly to Claude

The server address to paste into Claude settings:

https://calendly.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Calendly to ChatGPT

The server address to paste into ChatGPT settings:

https://calendly.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Calendly to Cursor

The server address to paste into Cursor settings:

https://calendly.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (35)

Raw names from tools/list. Only developers need these.

users-get_current_userGet current user Returns basic information about your user account. <!-- theme: info --> > #### Required scopes: `users:read` :return: Returns the result object.
users-get_userGet user Returns information about a specified User. <!-- theme: info --> > #### Required scopes: `users:read` :param uuid: User unique identifier, or the constant "me" to reference the caller (required) :type uuid: str :return: Returns the result object.
event_types-create_event_typeCreate Event Type Create a new Event Type **NOTE:** * Currently, this endpoint only supports one-on-one event types (kind: "solo"). <!-- theme: info --> > #### Required scopes: `event_types:write` :param create_event_type_request: (required) :type create_event_type_request: CreateEventTypeRequest :return: Returns the result object.
event_types-update_event_typeUpdate Event Type Update an existing Event Type **NOTE:** * Currently, this endpoint only supports one-on-one event types (kind: "solo"). <!-- theme: info --> > #### Required scopes: `event_types:write` :param uuid: (required) :type uuid: str :param update_event_type_request: (required) :type update_event_type_request: UpdateEventTypeRequest :return: Returns the result object.
event_types-list_event_typesList User's Event Types Returns all Event Types associated with a specified User. Use: * `organization` to look up all Event Types that belong to the organization * `user` to look up a user's Event Types in an organization Either `organization` or `user` are required query params when using this endpoint. <!-- theme: info --> > #### Required scopes: `event_types:read` :param active: Return only active event types if true, only inactive if false, or all event types if this parameter is omitted. :type active: bool :param organization: View available personal, team, and organization event types associated with the organization's URI. :type organization: str :param user: View available personal, team, and organization event types associated with the user's URI. :type user: str :param user_availability_schedule: Used in conjunction with `user` parameter, returns a filtered list of Event Types that use the given primary availability schedule. :type user_availability_schedule: str :param sort: Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.Supported fields are: name, position, created_at, updated_at. Sort direction is specified as: asc, desc. :type sort: str :param admin_managed: Return only admin managed event types if true, exclude admin managed event types if false, or include all event types if this parameter is omitted. :type admin_managed: bool :param page_token: The token to pass to get the next or previous portion of the collection :type page_token: str :param count: The number of rows to return :type count: float :return: Returns the result object.
event_types-get_event_typeGet Event Type Returns information about a specified Event Type. <!-- theme: info --> > #### Required scopes: `event_types:read` :param uuid: (required) :type uuid: str :return: Returns the result object.
event_types-list_event_type_available_timesList Event Type Available Times Returns a list of available times for an event type within a specified date range. Date range can be no greater than 1 week (7 days). **NOTE:** * This endpoint does not support traditional keyset pagination. <!-- theme: info --> > #### Required scopes: `availability:read` :param event_type: The uri associated with the event type (required) :type event_type: str :param start_time: Start time of the requested availability range. Date cannot be in the past. (required) :type start_time: str :param end_time: End time of the requested availability range. Date must be in the future of start_time. (required) :type end_time: str :return: Returns the result object.
event_types-list_event_type_availability_scheduleList Event Type Availability Schedules Return the availability for an event type <!-- theme: info --> > #### Required scopes: `availability:read` :param event_type: The URI associated with the event type (required) :type event_type: str :return: Returns the result object.
event_types-update_event_type_availability_scheduleUpdate Event Type Availability Schedules Update an event type availability schedule <!-- theme: info --> > #### Required scopes: `availability:write` :param event_type: Event Type uri in which to update the availability schedule (required) :type event_type: str :param update_event_type_availability_request: (required) :type update_event_type_availability_request: UpdateEventTypeAvailabilityRequest :return: Returns the result object.
locations-list_user_meeting_locationsList User Meeting Locations Returns configured location information for a given user. <!-- theme: info --> > #### Required scopes: `locations:read` :param user: The URI associated with the user (required) :type user: str :return: Returns the result object.
meetings-list_eventsList Events Returns a list of Events. * Pass `organization` parameter to return events for that organization (requires admin/owner privilege) * Pass `user` parameter to return events for a specific User * Pass `group` parameter to return events for a specific Group (requires organization admin/owner or group admin privilege) **NOTES:** * If you are the admin/owner of the organization, you can use both `organization` and `user` to get a list of events for a specific user within your organization. * If you are the admin/owner of the organization, you can use both `organization` and `group` to get a list of events for a specific group within your organization. * `user` can only be used alone when requesting your own personal events. This will return your events within any organization that you are currently in or were a part of in the past. <!-- theme: info --> > #### Required scopes: `scheduled_events:read` :param user: Return events that are scheduled with the user associated with this URI :type user: str :param organization: Return events that are scheduled with the organization associated with this URI :type organization: str :param invitee_email: Return events that are scheduled with the invitee associated with this email address :type invitee_email: str :param status: Whether the scheduled event is `active` or `canceled` :type status: str :param sort: Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: start_time. Sort direction is specified as: asc, desc. :type sort: str :param min_start_time: Include events with start times after this time (sample time format: "2020-01-02T03:04:05.678123Z"). This time should use the UTC timezone. :type min_start_time: str :param max_start_time: Include events with start times prior to this time (sample time format: "2020-01-02T03:04:05.678123Z"). This time should use the UTC timezone. :type max_start_time: str :param page_token: The token to pass to get the next or previous portion of the collection :type page_token: str :param count: The number of rows to return :type count: float :param group: Return events that are scheduled with the group associated with this URI :type group: str :return: Returns the result object.
meetings-get_eventGet Event Returns information about a specified Event. <!-- theme: info --> > #### Required scopes: `scheduled_events:read` :param uuid: The event's unique identifier (required) :type uuid: str :return: Returns the result object.
meetings-cancel_eventCancel Event Cancels specified event. <!-- theme: info --> > #### Required scopes: `scheduled_events:write` :param uuid: The event's unique indentifier (required) :type uuid: str :param create_scheduled_event_cancellation_request: Optional cancellation reason. :type create_scheduled_event_cancellation_request: CreateScheduledEventCancellationRequest :return: Returns the result object.
meetings-create_inviteeCreate Event Invitee Create a new Event Invitee. Standard notifications, calendar invites, reschedules, and workflows run as if booked via the Calendly UI. **NOTE:** * Access to this endpoint is limited to Calendly users on paid plans (Standard and above). Users on the Free plan will receive a 403 Forbidden response. <!-- theme: info --> > #### Required scopes: `scheduled_events:write` * IMPORTANT: `location` is **required** if the selected event_type has any `locations` configured. :param post_invitee_request: (required) :type post_invitee_request: PostInviteeRequest :return: Returns the result object.
meetings-list_event_inviteesList Event Invitees Returns a list of Invitees for an event. <!-- theme: info --> > #### Required scopes: `scheduled_events:read` :param uuid: (required) :type uuid: str :param status: Indicates if the invitee "canceled" or still "active" :type status: str :param sort: Order results by the **created_at** field and direction specified: ascending ("asc") or descending ("desc") :type sort: str :param email: Indicates if the results should be filtered by email address :type email: str :param page_token: The token to pass to get the next or previous portion of the collection :type page_token: str :param count: The number of rows to return :type count: float :return: Returns the result object.
meetings-get_event_inviteeGet Event Invitee Returns information about a specified Invitee (person invited to an event). <!-- theme: info --> > #### Required scopes: `scheduled_events:read` :param event_uuid: The event's unique identifier (required) :type event_uuid: str :param invitee_uuid: The invitee's unique identifier (required) :type invitee_uuid: str :return: Returns the result object.
scheduling_links-create_single_use_scheduling_linkCreate Single-Use Scheduling Link Creates a single-use scheduling link. <!-- theme: info --> > #### Required scopes: `scheduling_links:write` :param create_scheduling_link_request: (required) :type create_scheduling_link_request: CreateSchedulingLinkRequest :return: Returns the result object.
availability-list_user_availability_schedulesList User Availability Schedules Returns the availability schedules of the given user. <!-- theme: info --> > #### Required scopes: `availability:read` :param user: A URI reference to a user (required) :type user: str :return: Returns the result object.
availability-get_user_availability_scheduleGet User Availability Schedule This will return the availability schedule of the given UUID. <!-- theme: info --> > #### Required scopes: `availability:read` :param uuid: The UUID of the availability schedule. (required) :type uuid: str :return: Returns the result object.
availability-list_user_busy_timesList User Busy Times Returns an ascending list of user internal and external scheduled events within a specified date range. Date range can be no greater than 1 week (7 days). **NOTE:** * This endpoint does not support traditional keyset pagination. * External events will only be returned for calendars that have "Check for conflicts" configured. <!-- theme: info --> > #### Required scopes: `availability:read` :param user: The uri associated with the user (required) :type user: str :param start_time: Start time of the requested availability range. Date cannot be in the past. (required) :type start_time: str :param end_time: End time of the requested availability range. Date must be in the future of start_time. (required) :type end_time: str :return: Returns the result object.
meetings-create_invitee_no_showCreate Invitee No Show Marks an Invitee as a No Show. <!-- theme: info --> > #### Required scopes: `scheduled_events:write` :param create_invitee_no_show_request: (required) :type create_invitee_no_show_request: CreateInviteeNoShowRequest :return: Returns the result object.
meetings-get_invitee_no_showGet Invitee No Show Returns information about a specified Invitee No Show. <!-- theme: info --> > #### Required scopes: `scheduled_events:read` :param uuid: (required) :type uuid: str :return: Returns the result object.
meetings-delete_invitee_no_showDelete Invitee No Show Undoes marking an Invitee as a No Show. <!-- theme: info --> > #### Required scopes: `scheduled_events:write` :param uuid: (required) :type uuid: str :return: Returns the result object.
organizations-get_organizationGet Organization Returns the details of a specified Organization. <!-- theme: info --> > #### Required scopes: `organizations:read` :param uuid: The organization's unique identifier (required) :type uuid: str :return: Returns the result object.
organizations-list_organization_membershipsList Organization Memberships Use this to list the Organization Memberships for all users belonging to an organization, use: * `user` to look up a user's membership in an organization * `organization` to look up all users that belong to the organization This endpoint can also be used to retrieve your organization URI. <!-- theme: info --> > #### Required scopes: `organizations:read` :param page_token: The token to pass to get the next or previous portion of the collection :type page_token: str :param count: The number of rows to return :type count: float :param email: Indicates if the results should be filtered by email address :type email: str :param organization: Indicates if the results should be filtered by organization :type organization: str :param user: Indicates if the results should be filtered by user :type user: str :param role: Indicates if the results should be filtered by role :type role: str :return: Returns the result object.
organizations-get_organization_membershipGet Organization Membership Returns information about a user's Organization Membership <!-- theme: info --> > #### Required scopes: `organizations:read` :param uuid: The organization membership's unique identifier (required) :type uuid: str :return: Returns the result object.
organizations-delete_organization_membershipRemove User from Organization Removes a user from an organization. Notes: * To remove users, the caller must have admin rights for the organization * An organization owner can't be removed <!-- theme: info --> > #### Required scopes: `organizations:write` :param uuid: The organization membership's unique identifier (required) :type uuid: str :return: Returns the result object.
organizations-list_organization_invitationsList Organization Invitations Returns a list of Organization Invitations that were sent to the organization's members. <!-- theme: info --> > #### Required scopes: `organizations:read` :param uuid: The organization's unique identifier (required) :type uuid: str :param count: The number of rows to return :type count: float :param page_token: The token to pass to get the next or previous portion of the collection :type page_token: str :param sort: Order results by the field name and direction specified (ascending or descending). Returns multiple sets of results in a comma-separated list. :type sort: str :param email: Indicates if the results should be filtered by email address :type email: str :param status: Indicates if the results should be filtered by status ("pending", "accepted", or "declined") :type status: str :return: Returns the result object.
organizations-create_organization_invitationInvite User to Organization Invites a user to an organization. <!-- theme: info --> > #### Required scopes: `organizations:write` :param uuid: The organization's unique identifier (required) :type uuid: str :param create_organization_invitation_request: (required) :type create_organization_invitation_request: CreateOrganizationInvitationRequest :return: Returns the result object.
organizations-revoke_organization_invitationRevoke User's Organization Invitation Use this to revoke an Organization Invitation to an organization. Once revoked, the invitation link that was sent to the invitee is no longer valid. <!-- theme: info --> > #### Required scopes: `organizations:write` :param org_uuid: The organization’s unique identifier (required) :type org_uuid: str :param uuid: The organization invitation's unique identifier (required) :type uuid: str :return: Returns the result object.
routing_forms-list_routing_formsList Routing Forms Get a list of Routing Forms for a specified Organization. <!-- theme: info --> > #### Required scopes: `routing_forms:read` :param organization: View organization routing forms associated with the organization's URI. (required) :type organization: str :param count: The number of rows to return :type count: float :param page_token: The token to pass to get the next or previous portion of the collection :type page_token: str :param sort: Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc. :type sort: str :return: Returns the result object.
routing_forms-get_routing_formGet Routing Form Get a specified Routing Form. <!-- theme: info --> > #### Required scopes: `routing_forms:read` :param uuid: (required) :type uuid: str :return: Returns the result object.
routing_forms-list_routing_form_submissionsList Routing Form Submissions Get a list of Routing Form Submissions for a specified Routing Form. <!-- theme: info --> > #### Required scopes: `routing_forms:read` :param form: View routing form submissions associated with the routing form's URI. (required) :type form: str :param count: The number of rows to return :type count: float :param page_token: The token to pass to get the next or previous portion of the collection :type page_token: str :param sort: Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc. :type sort: str :return: Returns the result object.
routing_forms-get_routing_form_submissionGet Routing Form Submission Get a specified Routing Form Submission. <!-- theme: info --> > #### Required scopes: `routing_forms:read` :param uuid: (required) :type uuid: str :return: Returns the result object.
shares-create_shareCreate Share Endpoint for our [Customize Once and Share](https://help.calendly.com/hc/en-us/articles/10594902199191) feature. This allows you to customize events for a specific invitee without needing to make an entirely new event type. ***This feature is only available for one-on-one event types.*** **Note: Any parameter which is not provided in the request body will be copied from the target event type.** <!-- theme: info --> > #### Required scopes: `shares:write` :param create_share_request: (required) :type create_share_request: CreateShareRequest :return: Returns the result object.