Calendly integration
In short
Read event types and booked meetings, and create booking links. Connect it on the Integrations page; your app then calls Calendly through Sapilon without ever holding a Calendly credential.
Lets your app list event types and scheduled meetings with their invitees, and create single-use scheduling links, for the Calendly user whose token you use.
Connecting
On the Integrations page choose Connect on Calendly and fill in:
- Personal access token — Calendly → Integrations & apps → API and webhooks → Get a token now.
Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.
What your app can do
Only these requests are available; anything else is refused.
GET /users/meGET /event_typesGET /scheduled_eventsGET /scheduled_events/*GET /scheduled_events/*/inviteesPOST /scheduling_links
How the agent uses it
Use integrations.request('calendly', …); paths are relative to https://api.calendly.com. Calendly identifies things by full URIs: pass the uri from GET /users/me as user.
GET /users/me—body.resource.uriis the user URI.GET /event_types— Example:{ method: 'GET', path: '/event_types', query: { user: 'https://api.calendly.com/users/ABC' } }.GET /scheduled_events— Example:{ method: 'GET', path: '/scheduled_events', query: { user, min_start_time: '2026-10-01T00:00:00Z', status: 'active' } }.GET /scheduled_events/{uuid}— one meeting.GET /scheduled_events/{uuid}/invitees— who booked it.POST /scheduling_links— a single-use booking link. Example:{ method: 'POST', path: '/scheduling_links', body: { max_event_count: 1, owner: 'https://api.calendly.com/event_types/XYZ', owner_type: 'EventType' } }.
More from Calendly: https://developer.calendly.com/api-docs