Calendly tool
The Calendly tool gives an agent the full Calendly v2 scheduling surface — event types, real-time availability, scheduled meetings and invitees, single-use booking links, cancellations, no-shows, memberships, and webhooks — behind a single action the agent picks per call. One credential: a Calendly Personal Access Token.
create_scheduling_link, which returns a single-use booking_url the invitee opens to pick a slot. Design flows around sending that link.
user / organization, the tool resolves them from your account — so "list my event types / my availability / my meetings" works with no ids. No setup required beyond the token.
Connect Calendly
The single credential is a Personal Access Token:
- Sign in to Calendly → Integrations & apps → API & webhooks.
- Under Personal access tokens, click Generate new token, name it (e.g. "Hania"), and Generate.
- Copy it immediately — Calendly shows the token only once.
- Paste it into the Personal Access Token field and save. It's stored encrypted and never shown again (leave blank on edit to keep it).
One token = one Calendly account. Webhook actions require a paid (Standard+) plan.
Capabilities
The agent picks one action per call (24 in total), grouped by resource:
- Users / org —
get_current_user,get_user(uuid),list_organization_memberships,get_organization_membership(uuid). - Event types —
list_event_types,get_event_type(uuid),create_one_off_event_type(name, duration, date_setting, location). - Scheduled events —
list_scheduled_events(filters: status, invitee_email, min/max_start_time),get_scheduled_event(uuid),cancel_scheduled_event(uuid, optional reason),list_event_invitees(event_uuid),get_invitee(event_uuid, invitee_uuid). - Availability —
list_event_type_available_times(event_type, start_time, end_time),list_user_busy_times(start_time, end_time),list_user_availability_schedules,get_availability_schedule(uuid). - Booking —
create_scheduling_link(owner = event-type URI) → returnsbooking_url. - No-shows —
create_invitee_no_show(invitee),get_invitee_no_show(uuid),delete_invitee_no_show(uuid). - Webhooks (paid plan) —
list_webhook_subscriptions(scope),create_webhook_subscription(url, events, scope),get_webhook_subscription(uuid),delete_webhook_subscription(uuid).
Field reference
- Path ids (
uuid,event_uuid,invitee_uuid) — accept a bare id or the full Calendly URL/URI (the tool uses the last path segment). - URI references (
user,organization,event_type,owner,invitee) — full Calendly URIs returned by thelist_*actions. Leaveuser/organizationblank to use your own account. - Availability window (
start_time/end_time) — ISO-8601 UTC, must be in the future and span ≤ 7 days (a Calendly hard limit). - max_event_count (booking link) — default 1 (one-time booking).
- events (webhook) — array, e.g.
invitee.created,invitee.canceled.
Common recipes
- Show the caller open times —
list_event_type_available_timesfor an event type within a ≤7-day window. - Send a booking link —
create_scheduling_linkwith the event-type URI asowner; share the returnedbooking_url. - Look up / cancel a meeting —
list_scheduled_events(filter by invitee email) →cancel_scheduled_eventwith an optional reason. - Check the principal's availability —
list_user_busy_timesover a date range (account resolved automatically).
Behaviors & gotchas
- Availability is real-time and capped at a 7-day future window per call.
- Cancellation is real and irreversible —
cancel_scheduled_eventactually cancels and notifies the invitee. Bot instructions should guard it ("only when asked"). - Booking = a link, not a direct event (see the callout above).
Errors & plan limits
Calendly returns a {title, message, details[]} envelope, surfaced verbatim in trace/debug panels:
- 403 Permission Denied — a webhook action on a free plan; upgrade to Standard+.
- 404 — bad id/URI on a get/cancel/delete.
- 400 with details[] — validation (e.g. availability window > 7 days, or a past start_time); each entry names the offending parameter.
- Misconfigured — a missing token is caught before any network call.
Classification & lifecycle
This is a read and write tool, and it can cancel meetings. If you run it on an autonomous bot, set its safety classification to match. It's post-call-hook eligible (runs outside the LLM turn) — e.g. send a booking link or log a no-show after the call.