Calendly
Sync scheduling events, invitees, availability schedules, and audit activity from Calendly into your data warehouse.
Authentication
The Calendly connector uses OAuth 2.0 with PKCE (Proof Key for Code Exchange, S256 method). Weld initiates the OAuth flow and exchanges an authorization code for access and refresh tokens on your behalf. No manual token management is required.
Available Streams
All streams run as full syncs โ the entire dataset is re-fetched on every sync run. Incremental syncing is not currently supported for any Calendly stream.
| Stream | Table Name | Primary Key | Sync Mode | Requires Enterprise |
|---|---|---|---|---|
| List Events | list_events | uri | Full | No |
| List Event Invitees | list_event_invitees | uri | Full | No |
| List User Availability Schedules | list_user_availability_schedules | uri | Full | No |
| List Activity Log Entries | list_activity_log_entries | uri | Full | Yes |
List Events
Fetches all scheduled events for the authenticated user, ordered by start_time ascending.
Endpoint: GET /scheduled_events
| Column | Type | Description |
|---|---|---|
uri | string | Unique resource identifier for the event |
name | string | Event name |
status | string | active or canceled |
start_time | string | ISO 8601 start time |
end_time | string | ISO 8601 end time |
event_type | string | URI of the event type definition |
location | object | Location details (type, join URL, etc.) |
invitees_counter | object | Total, active, and limit counts |
event_memberships | array | Hosts associated with the event |
event_guests | array | Additional guests added to the event |
cancellation | object | Cancellation reason and actor, if canceled |
calendar_event | object | Linked calendar event metadata |
meeting_notes_plain | string | Plain-text meeting notes |
meeting_notes_html | string | HTML meeting notes |
created_at | string | ISO 8601 creation timestamp |
updated_at | string | ISO 8601 last-updated timestamp |
List Event Invitees
Fetches all invitees across every scheduled event for the authenticated user. Weld first paginates through all events, then fetches invitees per event.
Endpoint: GET /scheduled_events/{event_uuid}/invitees
| Column | Type | Description |
|---|---|---|
uri | string | Unique resource identifier for the invitee |
email | string | Invitee email address |
name | string | Invitee display name |
status | string | active or canceled |
timezone | string | Invitee's timezone |
event | string | URI of the parent event |
rescheduled | boolean | Whether the invitee rescheduled |
old_invitee | string | URI of the previous invitee record before rescheduling |
new_invitee | string | URI of the new invitee record after rescheduling |
cancel_url | string | URL for the invitee to cancel |
reschedule_url | string | URL for the invitee to reschedule |
scheduling_method | string | How the event was scheduled |
invitee_scheduled_by | string | Who booked on behalf of the invitee |
text_reminder_number | string | Phone number used for SMS reminders |
routing_form_submission | string | URI of the routing form submission, if applicable |
questions_and_answers | array | Intake form responses |
tracking | object | UTM and attribution tracking data |
payment | object | Payment details, if payments are enabled |
no_show | object | No-show marker details |
reconfirmation | object | Reconfirmation status and timestamp |
created_at | string | ISO 8601 creation timestamp |
updated_at | string | ISO 8601 last-updated timestamp |
List User Availability Schedules
Fetches all availability schedules configured by the authenticated user.
Endpoint: GET /user_availability_schedules
| Column | Type | Description |
|---|---|---|
uri | string | Unique resource identifier for the schedule |
name | string | Display name of the schedule |
user | string | URI of the owning user |
timezone | string | Timezone the schedule rules apply to |
default | boolean | Whether this is the user's default schedule |
rules | array | Array of availability rules (days, intervals) |
List Activity Log Entries
Requires Calendly Enterprise plan. This stream will fail with a permissions error if the authenticated user's organization is on a Standard or Teams plan.
Fetches the organization-wide audit log, ordered by occurred_at ascending. Useful for compliance reporting and auditing user actions across the organization.
Endpoint: GET /activity_log_entries
| Column | Type | Description |
|---|---|---|
uri | string | Unique resource identifier for the log entry |
occurred_at | string | ISO 8601 timestamp of when the action occurred |
namespace | string | Category of the action (e.g. event_type, user) |
action | string | The specific action taken (e.g. created, deleted) |
fully_qualified_name | string | Namespaced action name (e.g. event_type.created) |
organization | string | URI of the organization the entry belongs to |
actor | object | Who performed the action (URI, display name, type) |
details | object | Additional context about the action |
Known Limitations
No incremental syncs
All four streams use full sync mode only. Every sync run re-fetches the complete dataset from Calendly's API. For accounts with large event histories this can result in long sync durations and higher API usage. Incremental sync support is not currently implemented.
Invitees sync performance scales with event volume
The list_event_invitees stream fetches invitees by iterating over every event returned by list_events and making a separate API call per event. For accounts with thousands of historical events, this results in a large number of sequential API requests and significantly longer sync times.
Scoped to the authenticated user only
The connector authenticates as an individual Calendly user. Streams like list_events and list_user_availability_schedules are scoped to that user's data only โ they do not return organization-wide data across all team members. To sync data for multiple users, separate connections would be needed per user.
The list_activity_log_entries stream is the exception: it is scoped to the entire organization, which is why it requires an Enterprise plan.
Activity log requires Enterprise
The list_activity_log_entries stream requires a Calendly Enterprise subscription. Attempting to sync this stream on a Standard or Teams plan will result in a 403 Forbidden error from the Calendly API, and the sync job will fail.