When to use it
- Load meetings from a calendar into a warehouse for reporting on time spent, meeting volume, or attendance.
- Load mail from a folder to track inbound requests, notifications, or correspondence with customers.
- Copy events from one calendar to another together with the Outlook Calendar destination.
Connection
The Outlook connection uses delegated OAuth. Click Authenticate and sign in with the Microsoft 365 account whose calendar and mail you want to read. The source reads data as that user, so it can read only what that user can see in Outlook. The mailbox is part of the connection. By default the source reads the signed-in user’s own mailbox. To read a shared mailbox, enter its address on the connection. Reading mail from a shared mailbox needs Full Access to it. Integrate.io stores the connection’s access and refresh tokens. A token that expires during a job is refreshed automatically. If Microsoft rejects the refresh, sign in to the connection again. The connection is tied to the account that signs in. If that person leaves or loses access, the connection stops working. For production pipelines, sign in with a service account.Create an Outlook connection
1
Go to the Connections tab and click + New connection.
2
Search for and select Outlook.
3
Click Authenticate and sign in with the Microsoft 365 account. Review and accept the requested permissions.
4
Optionally, enter a Mailbox to use a shared mailbox instead of the signed-in user’s own. Enter the mailbox’s email address (user principal name) or its Microsoft Entra user object ID. Leave it blank for the signed-in user’s mailbox.
5
Enter a connection name, click Test Connection, then click Create Connection.
Every Outlook connection asks for calendar write permission, even if you only use it with the source.
Source properties
Read
Select what to read:- Calendar events. Recurring meetings are returned as individual occurrences, one row per occurrence.
- Mail messages.
Calendar (events only)
Select the calendar by name from the calendars of the connection’s mailbox. The default calendar is marked (default calendar). If the selected calendar is removed from the mailbox, or the signed-in user loses access to it, the editor won’t save until you pick another calendar.Folder (mail only)
The mail folder to read:- Inbox (default)
- Sent Items
- Archive
- All folders (including Deleted Items and Junk Email)
Load Type
- Full Load. Reads every message in the folder, or the events from 30 days before the run date to 90 days after it.
- Incremental Load. Reads only the records after or before a reference date. The options are described below.
Incremental Load settings
Date field (mail only). The message date the load compares:- Received (default). When the message arrived.
- Sent. When it was sent. Drafts have no sent date, so they are not read.
- Last modified. Any change, such as being read, moved, or flagged. Use this to pick up messages that changed since the last run.
- For mail: newer than ( > ) or older than ( < ) the reference date.
- For events: occurring after ( > ) or occurring before ( < ) the reference date.
- Last successful run. The time the last successful run of this package started. Until a run has succeeded there is no such time, so the first run reads what a Full Load reads.
- Fixed Date. A date you pick.
- Variable. A package variable. If the variable is blank at run time, a mail load reads every message, as a Full Load does.
- Relative date. A number of days ago or from now, counted in whole UTC days from the run date. Up to 3650 days.
How events are read
Events are read by when they occur, not by when they were last changed. Microsoft Graph needs both ends of a date range to expand recurring meetings, so every events load reads a bounded range:How mail is read
Messages are read in order of the date field, up to the moment the run started. A message that is moved, deleted, or changed while the job runs does not cause other messages to be skipped. Message and event bodies are returned as plain text.Each run returns the records as they are at that moment. To keep a table in sync, use
id as the key in your destination and update rows that already exist. A message or event deleted in Outlook stops appearing in later runs, and the source doesn’t report the deletion.Schema
Select the fields to read. Date-times are returned in ISO 8601 format in UTC, for example2026-10-01T09:00:00.000Z. Lists of addresses and categories are comma-separated. A value Outlook does not return is null.
Events and messages both return immutable IDs. An event’s id doesn’t change when the event is moved to another folder or calendar, so you can use it to update the same event later with the Outlook Calendar destination.
Events
Messages
Example: incremental mail load
To load new inbox messages on each scheduled run, set:- Read: Mail messages
- Folder: Inbox
- Load Type: Incremental Load
- Date field: Received
- Load records: newer than ( > )
- Reference date: Last successful run
id as the key.
Example: upcoming meetings
To load the meetings of the next 90 days on each run, set:- Read: Calendar events
- Calendar: the calendar to report on
- Load Type: Incremental Load
- Load records: occurring after ( > )
- Reference date: Relative date, 0 days from now
id as the key in your destination, so a meeting that moves or changes updates its existing row.