Integrations / Outlook Calendar
Outlook Calendar
Read and manage events on your Outlook and Microsoft 365 calendar through Microsoft Graph.
8 actions
OAuth 2
3 read4 write1 destructive
Calls graph.microsoft.com
Connect
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "outlookcalendar" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();Permissions requested
| Scope | Why it is requested |
|---|---|
Calendars.Read | Read your calendars and events |
Calendars.ReadWrite | Create, change, delete and respond to events on your calendars |
User.Read | Identify which Microsoft account you connected |
offline_access | Stay connected without asking you to sign in again |
Actions
Accept event invitationwriteoutlookcalendar.accept_eventAccept a meeting invitation, with an optional comment, and optionally tell the organizer.
Needs scope: Calendars.ReadWrite
| Input | Type | Description | |
|---|---|---|---|
event_id | string | Required | Event ID from list_events |
comment | string | Optional | Optional note to the organizer |
send_response | boolean | Optional | Whether to notify the organizer (default true) |
await setu.execute({
userId: "user_1",
action: "outlookcalendar.accept_event",
input: {
"event_id": "<event_id>"
},
});Create eventwriteoutlookcalendar.create_eventCreate an event on the user's default calendar. Attendees, if given, are sent an invitation by email.
Needs scope: Calendars.ReadWrite
| Input | Type | Description | |
|---|---|---|---|
subject | string | Required | Event title |
start | object | Required | Start date and time with time zone |
end | object | Required | End date and time with time zone |
body | object | Optional | Optional event description |
location | object | Optional | Optional location |
attendees | array of object | Optional | Optional attendees; invitations are emailed to them |
await setu.execute({
userId: "user_1",
action: "outlookcalendar.create_event",
input: {
"subject": "<subject>",
"start": {},
"end": {}
},
});Decline event invitationwriteoutlookcalendar.decline_eventDecline a meeting invitation, with an optional comment, and optionally tell the organizer.
Needs scope: Calendars.ReadWrite
| Input | Type | Description | |
|---|---|---|---|
event_id | string | Required | Event ID from list_events |
comment | string | Optional | Optional note to the organizer |
send_response | boolean | Optional | Whether to notify the organizer (default true) |
await setu.execute({
userId: "user_1",
action: "outlookcalendar.decline_event",
input: {
"event_id": "<event_id>"
},
});Delete eventdestructiveoutlookcalendar.delete_eventDelete an event from the calendar. If you are the organizer of a meeting, a cancellation is sent to the attendees.
Needs scope: Calendars.ReadWrite
| Input | Type | Description | |
|---|---|---|---|
event_id | string | Required | Event ID from list_events |
await setu.execute({
userId: "user_1",
action: "outlookcalendar.delete_event",
input: {
"event_id": "<event_id>"
},
confirm: true,
});Get eventreadoutlookcalendar.get_eventRead one calendar event in full: subject, description as text, times, location, organizer and attendees with their responses.
Needs scope: Calendars.Read
| Input | Type | Description | |
|---|---|---|---|
event_id | string | Required | Event ID from list_events |
await setu.execute({
userId: "user_1",
action: "outlookcalendar.get_event",
input: {
"event_id": "<event_id>"
},
});List calendarsreadoutlookcalendar.list_calendarsList the user's calendars with their IDs, names and owners.
Needs scope: Calendars.Read
No input.
await setu.execute({
userId: "user_1",
action: "outlookcalendar.list_calendars",
input: {},
});List events in a date rangereadoutlookcalendar.list_eventsList events on the user's default calendar between two moments, with recurring events expanded into single occurrences. Times are returned in UTC.
Needs scope: Calendars.Read
| Input | Type | Description | |
|---|---|---|---|
start_time | string | Required | Start of the range, ISO 8601, for example 2017-01-01T19:00:00-08:00 |
end_time | string | Required | End of the range, ISO 8601, for example 2017-01-07T19:00:00-08:00 |
top | integer | Optional | Maximum number of events to return |
await setu.execute({
userId: "user_1",
action: "outlookcalendar.list_events",
input: {
"start_time": "<start_time>",
"end_time": "<end_time>"
},
});Update eventwriteoutlookcalendar.update_eventChange fields of an existing event, such as the title, time, location, description or attendees. Only the fields you pass are changed; attendee changes send updates.
Needs scope: Calendars.ReadWrite
| Input | Type | Description | |
|---|---|---|---|
event_id | string | Required | Event ID from list_events |
subject | string | Optional | New title |
start | object | Optional | New start |
end | object | Optional | New end |
body | object | Optional | Optional event description |
location | object | Optional | Optional location |
attendees | array of object | Optional | Optional attendees; invitations are emailed to them |
await setu.execute({
userId: "user_1",
action: "outlookcalendar.update_event",
input: {
"event_id": "<event_id>"
},
});