CIIFragments Studio is CII-accredited: recover up to 20% of your software development spendLearn more

API integration for Outlook

We build your Outlook connector

We go through Microsoft Graph to write into the Outlook calendar, process a shared mailbox and book a room. The legacy Outlook REST API is gone.

  • Senior product team
  • Graph connectors in production
  • from scoping to monitoring
In short

What does the Outlook API provide and why connect Microsoft email and calendar to your application?

Outlook is the reference email and calendar system for companies on Microsoft 365. Integration via Microsoft Graph lets your application write events into your employees' calendars, read availability to schedule a meeting, or automatically process emails received in a shared inbox without manual monitoring. You integrate it when meeting confirmations or notifications need to appear directly in the tool that teams open first thing in the morning, without copying information from one tool to another.

Use cases

What our clients build on Graph for Outlook

01

Appointment and room in the same call

The product writes the event and adds the room as an attendee. getSchedule has checked the clash before confirmation.

02

Multi-attendee slots without a home-grown solver

findMeetingTimes accounts for availability and room constraints. You query Graph instead of rebuilding a solver.

03

Shared mailbox that opens the file

Mail on orders@ or support@ opens the ticket, attaches files, sends the ack. No more human watch on a shared inbox.

04

EWS to Graph before 2026

Inventory from usage reports, RBAC scope, cutover before the EWSEnabled switch. A dated project, not an option.

For you

What this changes in your Outlook day

The engineering serves a measurable result: no double entry, a processed mailbox, EWS that does not blow up in 2026.

Your teams stay in Outlook

The product writes where sales and technicians already look. You do not impose a second calendar.

Rooms stop being a spreadsheet

Booking a resource is adding an attendee. Fewer double-booked rooms, vehicles, pieces of kit.

The shared mailbox becomes a flow

Mail triggers the business. Fewer forgotten messages in orders@, fewer attachments lost in a thread.

EWS has an end date

1 October 2026, EWSEnabled goes False for tenants still Null. April 2027, final stop. We price the migration on the inventory, not on a guess.

Method

How we deliver your Outlook connector

01

Scoping

Calendar, mail, or both. Which mailboxes, which RBAC, EWS still in play or not. Entra permissions are settled before a line of code.

02

Development

calendarView rather than a home-grown expansion, subscriptions renewed at mid-life, delta as a safety net, limiter per mailbox (4 concurrent, 10,000 / 10 min).

03

Acceptance

Room clash, subscription expiry, 429 Retry-After, a wide permission that cancels RBAC, outlook.com vs tenant. Replay before cutover.

04

Monitoring

Alert on a dead subscription, reauthorizationRequired, 429 per mailbox. An access log a CIO can defend. You see the cut before sales does.

What the API allows

What Microsoft Graph allows for Outlook

Calendar and bounded views
events, calendar, calendarGroup. calendarView bounded by startDateTime and endDateTime. reminderView for a lighter calendar. accept, tentativelyAccept, decline.
Availability and rooms
getSchedule for free/busy, findMeetingTimes for a multi-attendee slot. A room is an emailAddress; the place API lists tenant rooms.
Mail and folders
messages, mailFolder, mailSearchFolder, messageRule, attachments. A shared mailbox is a Graph resource, not an Outlook export.
Change subscriptions
POST /subscriptions on messages, events, contacts. 1,000 active subscriptions per mailbox, all apps combined. Webhook, Event Hubs or Event Grid.
Glossary

Graph vocabulary for Outlook

calendarView
Time-bounded occurrence list. The sane way to read recurrences. Expanding RRULE on the client is the slow, wrong path.
findMeetingTimes
Graph action that proposes slots from availability and rooms. Work accounts only. A trial on outlook.com proves nothing.
RBAC for Applications
Exchange Online guardrail to limit an app to a mailbox scope. A tenant-wide Mail.Read in Entra ID overrides that restriction: permissions are additive.
EWSEnabled
Tenant property. On 1 October 2026 (or shortly after), Null becomes False and blocks EWS for every app. Populate EWSAllowedAppIDs before the end of August 2026 for a stay.
Prefer: outlook.timezone
Without this header, start and end come back in UTC. Store the user time zone and map Windows names to IANA; do not derive it from the server.
Rich notification
The payload includes the data, but the subscription lives under 24 hours instead of under seven days. That is an operating cost, not a webhook detail.
Good to know

The real constraints of Graph for Outlook

01

Four concurrent requests per mailbox

10,000 calls / 10 minutes / app-mailbox pair, 150 MB of uploads / 5 minutes, four parallel requests. Outlook JSON batching stays capped at four, whichever mailboxes are targeted. dependsOn makes execution sequential.

02

Subscriptions die in under seven days

A renewal job is not optional. Rich notification: under 24 hours. Handle reauthorizationRequired, and keep delta as a net, or a dead webhook silently empties the flow.

03

Application mode reads the whole tenant

Without RBAC for Applications, the app sees every mailbox. A concurrent wide permission in Entra ID cancels the restriction. Online archives and public folders have no Graph API.

04

You cannot share a calendar via the API

canEdit, canShare, isShared can be observed. The sharing act stays human. Rooms, free/busy and findMeetingTimes are work-account only: an outlook.com demo is not a tenant acceptance test.

Outlook or Google Calendar

Microsoft Graph or Google Calendar API?

Two work calendars. The right one follows the client already open in the morning, not the SDK.

CriterionMicrosoft OutlookThis pageGoogle CalendarCalendar API v3
Typical estateMicrosoft 365, French SMEs and mid-marketGoogle Workspace
Scope of this pageGraph calendar and mailCalendar only
Rooms and solverplace, getSchedule, findMeetingTimesFreebusy, no Graph rooms
NotificationSubscription ≤ 7 days, delta as a netPush with no body, syncToken re-read
Concurrency4 requests / mailbox, batch included10,000/min project, 600/user
Dated debtEWS cut in 2026-2027Quota billing announced for 2026
The right caseYour teams live in OutlookYour teams live in Google Calendar

SharePoint and OneDrive files are not here: see the Microsoft 365 page. Calendly and Cal.com carry booking, not the work calendar.

Our expertise

What we measure on an Outlook integration

15 d
first Graph calendar flow in production
4 / mb
concurrency cap respected per mailbox
< 1 min
queueing a Graph notification
4
senior developers on the project
Compare

The other calendar APIs

If not everyone lives in Outlook, these options belong in the scoping conversation.

We combine Outlook with

The stack around Graph calendar and mail on our projects.

  • HubSpot
  • Zendesk
  • n8n
  • PostgreSQL
  • Node.js
FAQ

Outlook integration: your questions

In 2026 you no longer call Outlook REST. You register an Entra ID app, request calendar and/or mail permissions, bound the scope with RBAC for Applications if the app must not read the whole tenant, then talk to graph.microsoft.com/v1.0. For calendar: calendarView, getSchedule, event create. For mail: messages and subscriptions. A job renews subscriptions before seven days, delta fills the gaps. The hard part is per-mailbox throttling and additive permissions, not the first GET.

No. Outlook REST API v2.0 and its beta endpoint (outlook.office.com/api/v2.0) were decommissioned on 31 March 2024, after two postponements. After the cut, calls returned HTTP 410 for 60 days, then nothing. Any new or revived Outlook integration goes through Microsoft Graph v1.0. If an existing tool still speaks EWS, that is a separate project, with a distinct 2026-2027 deadline. This is a scoping call, written down before the first request, not an acceptance surprise.

A first useful flow, typically writing events into collaborators' calendars, ships in two to three weeks. Adding getSchedule, rooms, a shared mailbox and stable subscriptions is closer to six to eight weeks. An EWS migration is priced separately, on the tenant's application inventory, not as a flat fee. We scope the perimeter up front and give a firm estimate before we start. This is a scoping call, written down before the first request, not an acceptance surprise.

Yes if a tool (DMS, backup, archive, security, signature) still speaks EWS on Exchange Online. On 1 October 2026, EWSEnabled Null flips to False and blocks EWS for every app on the tenant. A stay exists by populating EWSAllowedAppIDs and setting EWSEnabled to True before the end of August 2026. Full stop on 1 April 2027, with no reactivation. Does not apply to on-premises Exchange Server. Start from EWS usage reports, not from a guess.

Follow the estate. Microsoft 365: Graph, with mail possible on the same token. Workspace: Calendar v3. A mixed estate takes two connectors and a per-person rule. This page does not cover SharePoint or OneDrive (Microsoft 365 page). Calendly and Cal.com do not replace Outlook: they carry booking. This is a scoping call, written down before the first request, not an acceptance surprise. SharePoint and OneDrive stay on the Microsoft 365 page; this one is mail and calendar only.

An Outlook integration project?

Let's talk. 30 minutes to scope calendar, mail, any living EWS, and what Graph really allows, then tell you plainly what is feasible.

Discuss my Outlook project
Discuss my Outlook project