Integrations / Calendly
Calendly
See booked meetings, event types and open slots in Calendly, create single-use booking links and cancel meetings.
8 actions
OAuth 2
6 read1 write1 destructive
Calls api.calendly.com
Connect
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "calendly" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();Permissions requested
| Scope | Why it is requested |
|---|---|
users:read | Identify which Calendly account you connected |
event_types:read | List your Calendly event types |
scheduled_events:read | Read the meetings booked with you and their invitees |
scheduled_events:write | Cancel meetings booked with you |
availability:read | See the open booking slots of your event types |
scheduling_links:write | Create single-use booking links for your event types |
Actions
Cancel scheduled eventdestructivecalendly.cancel_scheduled_eventCancel a booked Calendly meeting. The invitees are notified by Calendly, and a reason can be included.
Needs scope: scheduled_events:write
| Input | Type | Description | |
|---|---|---|---|
event_uuid | string | Required | Event UUID: the last part of the event URI |
reason | string | Optional | Optional reason shown to the invitees |
await setu.execute({
userId: "user_1",
action: "calendly.cancel_scheduled_event",
input: {
"event_uuid": "<event_uuid>"
},
confirm: true,
});Create single-use scheduling linkwritecalendly.create_single_use_scheduling_linkCreate a one-time booking link for an event type that stops working after one meeting is booked. Share it with a specific person.
Needs scope: scheduling_links:write
| Input | Type | Description | |
|---|---|---|---|
event_type | string | Required | Event type URI from list_event_types |
await setu.execute({
userId: "user_1",
action: "calendly.create_single_use_scheduling_link",
input: {
"event_type": "<event_type>"
},
});Get current userreadcalendly.get_current_userGet the connected Calendly user: their URI (needed by the list actions), name, email, time zone, scheduling page and organization URI.
Needs scope: users:read
No input.
await setu.execute({
userId: "user_1",
action: "calendly.get_current_user",
input: {},
});Get scheduled eventreadcalendly.get_scheduled_eventGet one booked Calendly meeting by its UUID (the last part of its URI): time, status, location and hosts.
Needs scope: scheduled_events:read
| Input | Type | Description | |
|---|---|---|---|
event_uuid | string | Required | Event UUID: the last part of the event URI, for example GBGBDCAADAEDCRZ2 |
await setu.execute({
userId: "user_1",
action: "calendly.get_scheduled_event",
input: {
"event_uuid": "<event_uuid>"
},
});List event inviteesreadcalendly.list_event_inviteesList the people who booked a Calendly meeting, with their names, emails, answers and status.
Needs scope: scheduled_events:read
| Input | Type | Description | |
|---|---|---|---|
event_uuid | string | Required | Event UUID: the last part of the event URI |
status | string | Optional | Filter by status |
count | integer | Optional | Number of results per page (default 20, maximum 100) |
page_token | string | Optional | Page token from a previous reply to fetch the next page |
await setu.execute({
userId: "user_1",
action: "calendly.list_event_invitees",
input: {
"event_uuid": "<event_uuid>"
},
});List available timesreadcalendly.list_event_type_available_timesList the open booking slots of an event type within a date range of up to 31 days, starting no earlier than now.
Needs scope: availability:read
| Input | Type | Description | |
|---|---|---|---|
event_type | string | Required | Event type URI from list_event_types |
start_time | string | Required | Start of the range in UTC, not in the past, for example 2020-01-02T20:00:00.000000Z |
end_time | string | Required | End of the range in UTC, at most 31 days after start_time |
await setu.execute({
userId: "user_1",
action: "calendly.list_event_type_available_times",
input: {
"event_type": "<event_type>",
"start_time": "<start_time>",
"end_time": "<end_time>"
},
});List event typesreadcalendly.list_event_typesList a user's Calendly event types (the meeting templates people can book), with their URIs, durations and booking links.
Needs scope: event_types:read
| Input | Type | Description | |
|---|---|---|---|
user | string | Required | User URI from get_current_user |
active | boolean | Optional | true for active event types only, false for inactive |
count | integer | Optional | Number of results per page (default 20, maximum 100) |
page_token | string | Optional | Page token from a previous reply to fetch the next page |
await setu.execute({
userId: "user_1",
action: "calendly.list_event_types",
input: {
"user": "<user>"
},
});List scheduled eventsreadcalendly.list_scheduled_eventsList meetings booked with a user through Calendly, filtered by status, start-time range or invitee email. Returns event URIs, times and locations.
Needs scope: scheduled_events:read
| Input | Type | Description | |
|---|---|---|---|
user | string | Required | User URI from get_current_user |
status | string | Optional | Filter by status |
min_start_time | string | Optional | Only events starting at or after this UTC time, for example 2020-01-02T03:04:05.678123Z |
max_start_time | string | Optional | Only events starting at or before this UTC time |
invitee_email | string | Optional | Only events with this invitee |
count | integer | Optional | Number of results per page (default 20, maximum 100) |
page_token | string | Optional | Page token from a previous reply to fetch the next page |
await setu.execute({
userId: "user_1",
action: "calendly.list_scheduled_events",
input: {
"user": "<user>"
},
});