Calendly
Let an agent schedule for you without your Calendly login. It reads event types, open times and meetings, books a meeting or creates a single-use link, cancels and marks no-shows, and a booking or a cancellation can wait for a person.
- host
- api.calendly.com
- connect
- API key, per user
Book meeting
calendly-book-meeting
Create scheduling link
calendly-create-scheduling-link
Cancel event
calendly-cancel-event
Mark no show
calendly-mark-no-show
Reads and writes in Calendly. Writes are off until you switch them on.
Each one is a named operation from the pack. Reads change nothing.
Writes
Book meeting
read backcalendly-book-meeting
Book a meeting on an event type for one invitee, at a start time from list-available-times. Calendly sends its usual confirmation and calendar invite to the invitee and any guests, and runs the event type's workflows, as for a booking made on the booking page. Answer every required custom question of the event type (get-event-type) in answers, and give a location of a kind the event type offers.
Create scheduling link
acknowledgedcalendly-create-scheduling-link
Create a single-use scheduling link for one event type and return its booking_url. One meeting can be booked with it, then it stops working. Creating it tells nobody; the link reaches a person when it is sent.
Cancel event
read backcalendly-cancel-event
Cancel one scheduled meeting, with a reason. Calendly notifies the invitees.
Mark no show
read backcalendly-mark-no-show
Mark one invitee of a meeting as a no-show.
Unmark no show
read backcalendly-unmark-no-show
Remove a no-show mark from an invitee. Give the mark's uuid and the invitee it is on (get-no-show returns the invitee's uri).
Reads
Get current user
calendly-get-current-user
Get the Calendly user the token belongs to: name, email, timezone, scheduling_url, and the uri and current_organization uri. The other actions take this user's uri (resource.uri) as user. The last part of any Calendly uri is the uuid the get actions take.
List event types
calendly-list-event-types
List one user's event types (the kinds of meeting people can book), 10 per page, by name: name, duration, active, kind, pooling_type, scheduling_url, locations, custom_questions and uri. Pass active=true to leave out inactive ones. Calendly returns pagination.next_page_token when there are more; pass it as page_token.
Get event type
calendly-get-event-type
Get one event type: name, duration and duration options, active, kind, pooling_type, scheduling_url, locations, custom_questions (the questions a booking must answer), description and owner profile.
List available times
calendly-list-available-times
List the open start times of one event type between start_time and end_time, each with status, invitees_remaining and a scheduling_url that books it. Calendly requires start_time not in the past and a range of at most 31 days. Not paged: every slot in the range comes back, so keep the range to a week or less to stay under the 64 KB response limit.
List busy times
calendly-list-busy-times
List a user's busy times between start_time and end_time, in order: Calendly meetings, reserved times and events on connected calendars, each with start, end and buffered times. Calendly allows a range of at most 7 days, not in the past. External calendar events come from calendars with "Check for conflicts" turned on. Not paged.
List availability schedules
calendly-list-availability-schedules
List a user's availability schedules (their working hours): name, timezone, whether it is the default, and its rules by weekday and by date. Not paged.
List scheduled events
calendly-list-scheduled-events
List the user's scheduled meetings, 20 per page: name, status, start and end time, event_type, location, invitee counts, hosts and cancellation. Filter by status, by an invitee's email, and by start time (min_start_time and max_start_time, UTC). Sort by start time with sort. The user must be the token's own user. Calendly returns pagination.next_page_token when there are more; pass it as page_token.
Get scheduled event
calendly-get-scheduled-event
Get one scheduled meeting: name, status, start and end time, event_type, location (with the join URL for a video call), invitee counts, hosts, guests, and the cancellation when it was canceled.
List event invitees
calendly-list-event-invitees
List the invitees of one scheduled meeting, 20 per page, oldest booking first: name, email, status, timezone, answers to the booking questions, no_show, and the cancel and reschedule URLs. Filter by status or email. Calendly returns pagination.next_page_token when there are more; pass it as page_token.
Get invitee
calendly-get-invitee
Get one invitee of a scheduled meeting: name, email, status, timezone, answers to the booking questions, rescheduled state, cancellation, payment, the cancel and reschedule URLs, and no_show (its uri when the invitee is marked as a no-show, otherwise null).
Get no show
calendly-get-no-show
Get one no-show mark: its uri, the invitee it is on and when it was made. get-invitee returns the mark's uri in no_show.uri.
How do users connect? Each one brings their own Calendly.
- 1.Call for the userYour server invokes the action for the signed-in user. Without a Calendly connection, the SDK throws EndUserNotConnectedError with a connect link.
- 2.The user pastes a keyThe link opens a form that shows where in Calendly's settings to create the key. The link lasts 10 minutes and works once.
- 3.Anlyon checks itThe key is checked with Calendly before it is kept, and bound to api.calendly.com. It is never shown back.
- 4.Your server confirmsYour server confirms the connection for the user who is signed in, and the call goes through.
Guardrails. Suggested limits and approvals, for you to review.
Suggested limits
- 20 meetings booked a day
- 50 scheduling links a day
- 10 meetings cancelled a day
- 50 no-shows marked a day
- 50 no-show marks removed a day
Suggested approvals
- A person approves booking a meeting
- A person approves cancelling a meeting
- A person approves removing a no-show mark
What the key must allow
- A personal access token you create
- users, event_types, availability and scheduled_events: read; scheduled_events and scheduling_links: write
Good to know
- Booking a meeting uses Calendly's Scheduling API, which needs a Standard plan or above.
- A cancellation cannot be undone: the invitee books again.
For your own account
- 1.In Calendly, open Integrations & apps, API and webhooks, and create a personal access token.
- 2.Give it the scopes above, and leave out any your agent should not use.
- 3.In Anlyon, open Actions, then Integrations, choose Calendly and paste the token.
- 4.Anlyon checks the token with Calendly before storing it. It becomes a secret named CALENDLY, bound to api.calendly.com.
Calendly in your code. For one of your users, or for your own account.
Act for one of your users from your server, or connect your company's own Calendly with the CLI.
import { Client, EndUserNotConnectedError } from "@anlyonhq/sdk";const anlyon = new Client({ apiKey: process.env.ANLYON_API_KEY! });try { const { data } = await anlyon .forUser(session.userId) .actions.invoke("calendly-create-scheduling-link", { event_type: "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA" }); return { status: "done", grade: data.grade };} catch (error) { if (error instanceof EndUserNotConnectedError) { // The user connects their own Calendly, then you call again. return { status: "connect_required", url: error.connectUrl }; } throw error;}Other integrations. Under the same limits, approvals and receipts.
Available
Stripe
Payments · API key
Refunds under a money ceiling, and every customer, payment and invoice to read.
Available
GitHub
Code · API key
Issues, pull requests and code, in the repositories you choose.
Available
HubSpot
CRM · Sign in
Contacts, companies and deals: search them and change them.
- Anlyon app
- Available
- Your own app
- Recommended for production
