Connect Calendly
Calendly uses OAuth with PKCE. Automate.ax requestsusers:read when you connect, then requests the scopes required by the actions and triggers in your deployment. Access tokens expire after two hours. Calendly rotates refresh tokens after every use; Automate.ax stores the replacement atomically.
Actions declare one of these scopes: users:read, organizations:read, event_types:read, event_types:write, availability:read, availability:write, locations:read, scheduled_events:read, scheduled_events:write, routing_forms:read, or scheduling_links:write. Triggers also require webhooks:write and the read scope for their event family. A write scope includes its corresponding read access.
Calendly still applies the connected user’s role and plan. Direct invitee booking requires Standard or above. Routing forms and their submissions require Teams or above. Organization-scoped resources and webhooks can require an organization owner or admin.
Resource identifiers
Calendly returns canonical resource URLs such ashttps://api.calendly.com/users/AAAAAAAAAAAAAAAA. Pass the complete URL to fields named user, organization, eventType, form, or invitee. Pass only AAAAAAAAAAAAAAAA to fields ending in Id.
List actions return { items, pageInfo }. Pass pageInfo.nextPageToken as pageToken to fetch the next page. count defaults to 20 and accepts 1–100.
Rate limits
Calendly permits 500 requests per user per minute on paid plans and 50 on free plans. Direct invitee creation has lower plan-specific limits. Automate.ax retries429 responses after Calendly’s X-RateLimit-Reset delay. Other client errors fail the action without retry, while server failures remain eligible for retry.
Signed lifecycle webhooks
Every trigger needsorganizationUri and a provider scope:
organizationwatches the organization and needs no additional URI.useralso needsuserUri.groupalso needsgroupUri.
Calendly-Webhook-Signature as HMAC-SHA256 over the exact timestamp and body, rejects deliveries more than three minutes old, and deduplicates provider retries.
Calendly retries failed webhook deliveries for up to 24 hours with progressively longer delays and may turn off a persistently failing subscription.
Calendly does not expose a reschedule mutation. Invitee results contain rescheduleUrl; send that URL to the invitee when they need to choose another time.
See Calendly’s OAuth scopes, API conventions, rate limits, and webhook signatures.