Calendly MCP for AI agents
Agents read Calendly MCP at once. Changes and sends are held for a person's approval by default.
About Calendly MCP
Calendly MCP lets agents manage event types and availability, find open times, generate scheduling links, book meetings, and cancel scheduled events.
What an agent can do in Calendly MCP
Every Calendly MCP action is classed by the platform as a read, a change or a send. Reads run at once. Changes and sends are held for a person by default.
Runs at once (reads)
Looks things up in Calendly MCP without asking first. 25 actions.
- Availability-get user availability scheduleUse: Fetch details for one named availability schedule. When: User asks about specific schedule rules or needs rules for a named schedule. Needs: Schedule URI from `availability-list_user_availability
- Availability-list user availability schedulesUse: List all named availability schedules for the connected user. When: User asks about availability schedules or you need to identify one by name. Needs: User URI from `users-get_current_user`. Do:
- Availability-list user busy timesUse: List a user's busy time blocks within a date range. When: User asks a general yes/no "what's my schedule", "am I free/busy", or "do I have any meetings" question with no named event type, invitee
- Event types-get event typeUse: Fetch full details for one event type by URI. When: Before updating an event type or confirming its current configuration. Needs: Event type URI. Do: Use the returned fields as the baseline for a
- Event types-list event type availability scheduleUse: Read the current availability schedule (rules) for an event type. When: Before calling `event_types-update_event_type_availability_schedule`. Needs: Event type URI. Do: Retain the full `rules` ar
- Event types-list event type available timesUse: List bookable time slots for an event type within a date range. When: User wants slots, or to confirm availability before booking. Needs: Event type URI and start/end date range (ISO 8601). Do: P
- Event types-list event typesUse: List all event types for the connected user or org. When: Start of any event-type task, or when selecting an event type by name. Needs: User URI from `users-get_current_user`. Do: Filter by curre
- List calendly skillsList or search available Calendly skill guides. Each skill gives domain-specific context, recommended tool usage, and best practices for working with Calendly MCP tools. Call this when the user's goal
- Load calendly skillLoad a Calendly skill guide that provides domain-specific context, recommended queries, and best practices for working with Calendly tools. Required after listing when a skill matches; do not guess mu
- Locations-list user meeting locationsUse: List allowed meeting location kinds for a user. When: Before creating bookings that need a `location` payload. Needs: User URI from `users-get_current_user`. Do: Read supported location `kind` va
- Meetings-get eventUse: Fetch details for a single scheduled meeting. When: User asks about a specific meeting or before canceling/examining invitees. Needs: Meeting URI from `meetings-list_events`. Do: Use returned `ev
- Meetings-get event inviteeUse: Fetch details for a single meeting invitee. When: User asks about a specific attendee's booking details. Needs: Meeting URI from `meetings-list_events` and Invitee URI from `meetings-list_event_i
Show all 25
- Meetings-get invitee no showUse: Fetch the no-show record for a meeting invitee. When: User asks whether a no-show was recorded for an invitee. Needs: No-show URI from `meetings-create_invitee_no_show`. Do: Check returned record
- Meetings-list event inviteesUse: List all invitees for a scheduled meeting. When: User asks who is attending a meeting or you need invitee URIs. Needs: Meeting URI from `meetings-list_events`. Do: Use returned invitee `uri` for
- Meetings-list eventsUse: List scheduled meetings for user/org. When: Upcoming/past meetings or to find meetings by date. Needs: User/org URI via `users-get_current_user`. Do: Filter status (active/canceled), date range;
- Organizations-get organizationUse: Fetch details for the connected user's organization. When: User asks about the org or you need the org URI for org-scoped list tools. Needs: Org URI from `users-get_current_user` (`resource.curre
- Organizations-get organization membershipUse: Fetch details for a single org membership. When: You need role or status for a specific member. Needs: Membership URI from `organizations-list_organization_memberships`. Do: Check `role` and `sta
- Organizations-list organization invitationsUse: List pending invitations for the organization. When: User asks to see pending invites or check if someone was already invited. Needs: Org URI from `users-get_current_user`. Do: Check returned lis
- Organizations-list organization membershipsUse: List all members of an organization. When: User asks who is in the org or you need to find a member's user URI. Needs: Org URI from `users-get_current_user`. Do: Use returned `user.uri` for per-u
- Routing forms-get routing formUse: Fetch details for a single routing form. When: User asks about a specific form or its questions. Needs: Routing form URI from `routing_forms-list_routing_forms`. Do: Use returned question IDs for
- Routing forms-get routing form submissionUse: Fetch details for a single routing form submission. When: User asks about a specific submission or response. Needs: Submission URI from `routing_forms-list_routing_form_submissions`. Do: Read `qu
- Routing forms-list routing formsUse: List routing forms for the org. When: User asks about routing forms or you need to find a form by name. Needs: Org URI from `users-get_current_user`. Do: Use returned `uri` to fetch form details.
- Routing forms-list routing form submissionsUse: List submissions for a routing form. When: User asks to see form responses or analyze routing data. Needs: Routing form URI from `routing_forms-list_routing_forms`. Do: Use pagination params for
- Users-get current userUse: Resolve the connected host account and canonical user URI. When: Start any scheduling, booking, event-type, or availability workflow. Needs: No inputs. Do: Call once and keep `resource.uri`, `tim
- Users-get userUse: Fetch profile for a specific user by URI. When: User asks about another person's account or you hold a user URI from org/membership data. Needs: User URI. Do: Pass the user URI from org/membershi
Held for approval by default (changes and sends)
Held for a person's approval by default. The approval is recorded and the action is sent once, never twice, with 10 seconds to undo. 11 actions.
- Event types-create event typeUse: Create a new event type on the connected account. When: User explicitly asks to create a new event type. Needs: Host user URI from `users-get_current_user`. Do: Set name, duration, and host URI;
- Event types-update event typeUse: Update fields on an existing event type. When: User asks to change name, duration, description, or other settings. Needs: Event type URI from `event_types-list_event_types` or `event_types-get_ev
- Event types-update event type availability scheduleUse: Overwrite the availability schedule for an event type. When: User requests schedule changes (hours, days, one-off date overrides) for an event type. Needs: Event type URI and current rules from `
- Meetings-cancel eventUse: Cancel a scheduled meeting on behalf of the connected host When: User confirms they want to cancel a specific meeting. Needs: Meeting URI from `meetings-list_events` or `meetings-get_event`. Do:
- Meetings-create inviteeUse: Book a meeting slot for an invitee on a Calendly event type. When: User provides invitee name, email, and a confirmed available time slot. Needs: Event type URI, `start_time` from `event_types-li
- Meetings-create invitee no showUse: Mark an invitee as a no-show for a past meeting. When: User reports an invitee did not attend. Needs: Invitee URI from `meetings-list_event_invitees`. Do: Pass invitee URI; operation is idempoten
- Meetings-delete invitee no showUse: Remove a no-show mark from an invitee. When: User asks to undo a no-show marking. Needs: No-show URI from `meetings-create_invitee_no_show`. Do: Pass no-show URI; operation is idempotent. Avoid:
- Organizations-create organization invitationUse: Invite a user to the organization by email. When: User asks to add a new member. Needs: Org URI and invitee email address. Do: Check `organizations-list_organization_invitations` first to avoid d
- Organizations-revoke organization invitationUse: Revoke a pending organization invitation. When: User asks to cancel a pending invite. Needs: Organization URI from `users-get_current_user` and Invitation URI from `organizations-list_organizatio
- Scheduling links-create single use scheduling linkUse: Create a single-use scheduling link using the event type's settings unchanged. When: User wants a one-time link with no overrides. For per-link customization (duration, scheduling window, locatio
- Shares-create shareUse: Create a single-use share link for a one-on-one event type with per-link overrides When: User wants a single-use link with any customization (duration, scheduling window, location, or availabilit
Changes wait in Needs you
Changes and sends in Calendly MCP are held for a person's approval by default. The approval is recorded, and the action is sent once, never twice, with 10 seconds to undo.
Calendly MCP questions
Can an agent change data in Calendly MCP on its own?
Not by default. Changes and sends in Calendly MCP are held for a person's approval. The approval is recorded, and the action is sent once, never twice, with 10 seconds to undo.
What can an agent read in Calendly MCP?
This connector lists 25 read actions. Reads run at once, without waiting for approval.
How does Calendly MCP connect?
It connects with dcr oauth. Connectors are built and maintained by third-party developers; availability is confirmed during scoping.