Calendly
Calendly organizes scheduling around users, organizations, event types, and scheduled events. URIs (not UUIDs) identify resources. Get current user first to obtain user_uri and organization_uri for most operations.
Data Model
- User is the account. calendly_get_current_user returns user_uri and current_organization. Use these for scoped calls.
- Event Types define bookable meeting types (30min call, etc.). List with calendly_list_event_types; get availability with calendly_list_event_type_available_times.
- Scheduled Events are booked meetings. List with calendly_list_scheduled_events; invitees via calendly_list_event_invitees(event_uuid).
- Availability Schedules define when the user is available. calendly_list_user_availability_schedules.
- Routing Forms route invitees to different event types. calendly_list_routing_forms; submissions via calendly_list_routing_form_submissions.
- Webhooks: calendly_list_webhook_subscriptions. Create/delete via webhook tools for event.booked, event.canceled, etc.
Gotchas
- URIs not UUIDs: Calendly uses full URIs (e.g. https://api.calendly.com/event_types/...) for many params. Pass the full URI from list responses.
- organization_uri from current user: Many org-level calls need organization_uuid — use current_organization from get_current_user.
- activity_log Enterprise only: calendly_list_activity_log may 403 on non-Enterprise plans.
- Available times require event_type_uri: calendly_list_event_type_available_times needs the event type URI from list_event_types.