VX Agents

OpenAPI Marketplace · Booking & Scheduling

Calendly Bookings & Availability

v1.0.0 · 14 endpoints · 0 connections · shared by vx.ai

For salons, clinics and consultants who take bookings through Calendly: check open slots for an event type, see who booked and when, book an invitee directly, send a single-use scheduling link, and cancel or flag no-shows without opening the dashboard.

Connect this API to an AI agent Browse all specs

What you can do with Calendly Bookings & Availability via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
GET /users/me getCurrentUser Get your Calendly user and organization URIs
GET /event_types listEventTypes List the event types (services) a user or organization offers
GET /event_types/{uuid} getEventType Get one event type with its duration and booking settings
GET /event_type_available_times listAvailableTimes List open booking slots for an event type (up to 31 days)
GET /user_busy_times listBusyTimes List when a user is busy across Calendly and connected calendars (up to 7 days)
GET /scheduled_events listScheduledEvents List booked meetings by user, status, invitee email or date range
GET /scheduled_events/{uuid} getScheduledEvent Get one booked meeting with time, location and hosts
GET /scheduled_events/{uuid}/invitees listEventInvitees List the people booked into a meeting and their answers
GET /scheduled_events/{event_uuid}/invitees/{invitee_uuid} getEventInvitee Get one invitee with contact details and reschedule/cancel links
POST /invitees bookInvitee Book an invitee into an open slot (paid Calendly plans)
POST /scheduling_links createSchedulingLink Create a single-use booking link for an event type
POST /scheduled_events/{uuid}/cancellation cancelScheduledEvent Cancel a booked meeting with a reason (invitees are notified)
POST /invitee_no_shows markInviteeNoShow Mark an invitee as a no-show
GET /routing_form_submissions listRoutingFormSubmissions List answers submitted to a routing form

Authentication

calendlyToken

Bearer token — sent as Authorization: Bearer <token>

Calendly personal access token (or an OAuth 2.0 access token) sent as Authorization: Bearer <token>.

How to get a credential

  1. Sign in to Calendly and open Integrations & apps > API and webhooks.
  2. Under Personal access tokens, click Generate new token, name it (e.g. "VX Agents") and select the scopes below.
  3. Copy the token now: Calendly shows it only once.
  4. Building for other Calendly users instead? Register an OAuth app at developer.calendly.com and use its access token the same way.

Permissions used

Scope Operations
users:read getCurrentUser
event_types:read listEventTypes, getEventType
availability:read listAvailableTimes, listBusyTimes
scheduled_events:read listScheduledEvents, getScheduledEvent, listEventInvitees, getEventInvitee
scheduled_events:write bookInvitee, cancelScheduledEvent, markInviteeNoShow
scheduling_links:write createSchedulingLink
routing_forms:read listRoutingFormSubmissions

Common errors

  • 401 Unauthenticated: the token is missing, mistyped or revoked. Generate a new one and update the credential.
  • 403 Permission Denied: the token lacks the scope, you asked for another user's or the organization's data without admin rights, or (for bookInvitee) the account is on the Free plan.
  • 400 Invalid Argument: usually a missing user/organization URI, or a date range that is too long (31 days for available times, 7 days for busy times).
  • 429 Too Many Requests: back off and retry after a short pause.

Store the token as a VX Agents credential (bearer token) and never paste it into chat.

Usage guide

Setup

  • Credential: a Calendly personal access token (bearer) with the scopes listed in the auth docs.
  • Call getCurrentUser once and keep resource.uri (your user URI) and resource.current_organization. Most list calls need one of them as the user or organization query value. Worth pinning as preset parameters.
  • Ids in paths are the last part of a URI: for https://api.calendly.com/scheduled_events/ABC123 the uuid is ABC123.

Booking workflow

  1. listEventTypes (user=<your user URI>, active=true) to find the service, e.g. "30 min consultation". Keep its uri.
  2. listAvailableTimes with event_type, start_time and end_time (31 days at most, start must be in the future) to get open slots.
  3. To book the customer yourself: bookInvitee with event_type, start_time (one of the open slots) and invitee (name, email, timezone). Paid plans only. Otherwise send them a link: createSchedulingLink (owner = event type URI, owner_type=EventType, max_event_count=1) and share booking_url.
  4. listScheduledEvents (user, min_start_time, max_start_time, status=active, sort=start_time:asc) for the agenda. listEventInvitees shows who booked and their form answers.
  5. If a booking has to go: cancelScheduledEvent with a short reason. If the customer did not show up: markInviteeNoShow with the invitee URI.

Ask the user to confirm before bookInvitee, createSchedulingLink, cancelScheduledEvent and markInviteeNoShow: each sends emails to the customer or changes their booking.

Good to know

  • Times are UTC ISO 8601 (2026-10-20T09:00:00.000000Z). Convert to the customer's time zone before showing them.
  • listBusyTimes covers 7 days at most and includes connected calendars only when "Check for conflicts" is on.
  • Lists page with count (max 100) and pagination.next_page_token passed back as page_token.
  • Viewing other members' events with organization needs admin or owner rights; otherwise you get 403.
  • listRoutingFormSubmissions needs the routing form URI in form.
  • Source: Calendly API reference (https://developer.calendly.com/api-docs), checked 2026-10-16.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “Calendly Bookings & Availability” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs