deadlinescan

EWS retirement: what breaks Oct 1, 2026, what breaks Apr 1, 2027

The Exchange Web Services shutdown is phased, tenant-by-tenant, and decided by two organisation-level settings. That means “everything breaks on October 1” is wrong, and so is “we have until 2027.” Which of the two applies to you is a thing you can read off your tenant in one command.

EWS: tenants that never opted in start getting disabled Oct 1, 2026 (includes Microsoft's own apps); allow-listed apps run until Mar 31, 2027; Apr 1, 2027 is final — no exceptions.

The timeline

  1. Phased disablement begins, and enforcement starts in Exchange Online. “October 2026: EWS starts to be disabled globally for all organizations.”

  2. The last day allow-listed applications work. Admins can re-enable EWS during this phased window.

  3. “April 2027: EWS is fully disabled.” No extensions, no exceptions, no re-enablement.

Who breaks on Oct 1, 2026

Not everyone breaks at once, and that is the whole shape of this. Disablement is phased, admins can re-enable during the phased window, and tenants with EWSEnabled=True plus a configured allow list will not have their EWSEnabled setting modified by Microsoft before April 2027.

Who breaks on Apr 1, 2027

Everyone still calling EWS, including every allow-listed application. This is the date with no mechanism behind it to argue with: EWS access is permanently removed, with no re-enablement, and Microsoft has confirmed there are no extensions or exceptions after it.

Read your tenant's posture or set the allow list.

What Microsoft Graph does not replace

Most EWS operations have a Graph equivalent, and the migration work is real but ordinary: different filter syntax, a different item schema, a different subscription lifecycle. A handful of operations have no equivalent at all. Those are the ones that turn a migration into a project, because no amount of code work moves them — they need a redesign, and the allow-list runway is the time you have to do it in.

DeadlineScan's mapping table covers 31 operations — 25 EWS, 6 QuickBooks Online. Twelve map cleanly, five map partially, nine are informational, and five are gaps, flagged inline in the report as [NO GRAPH EQUIVALENT — see runbook]. The four EWS gaps:

Public folders

There is no Graph equivalent for public folder access, and Microsoft has said the CRUD APIs for it will not be available. This is not a gap that closes later — it is a permanent boundary. The realistic path is to migrate the content itself to shared mailboxes, Microsoft 365 Groups, or SharePoint, using the allow-list runway to do it.

In-place (online) archive access

Graph's mailbox import/export API does reach archive mailboxes for bulk full-fidelity export, but that API is in preview and is not yet safe to build a production migration on. General in-place archive access — folder browsing and per-item operations equivalent to what EWS offers today — is still an open item on Microsoft's EWS-to-Graph parity roadmap with no committed date.

Microsoft 365 Group mailboxes

Graph's group conversation and group calendar APIs do not cover the same EWS group-mailbox surface, and Microsoft's roadmap explicitly excludes Microsoft 365 Groups from the in-progress mailbox import/export work. There is no direct mapping to hand you.

Mailbox import/export (ExportItems / UploadItems)

Graph does have a mailbox import/export API now, in preview, for standard, shared and archive mailboxes — but it explicitly excludes public folder and Microsoft 365 Group mailboxes, and it works in full-fidelity opaque streams rather than EWS's structured item access. Because a raw ExportItems call site does not reveal which mailbox type it targets, each one has to be triaged against the preview API's actual scope.

Microsoft's own published parity list also names sticky notes, event delta for recurring events, in-place archive redirects, and creating an event without sending invites.

And five that map only partially — three EWS, two QuickBooks

The mapping table's five Partial entries are the ones where the replacement exists but does not behave identically. Three are EWS:

The other two are on the QuickBooks Online side, where the endpoint survives but the payload changed underneath it:

Find your own call sites

DeadlineScan is a free, MIT-licensed command-line scanner. It walks a directory tree, reports every EWS and QuickBooks Online call site it recognises across C#, VB, PowerShell, Python, Java, JavaScript and dependency manifests, and marks the ones Graph does not replace. No compilation, no package restore, no network calls, no telemetry.

deadlinescan scan ./my-repo --json report.json

Get the scanner: email hello@deadlinescan.com and you'll get the source and a Windows binary by reply — the public repository is being prepared.

A finding count of zero means no affected call sites were FOUND — not that you're unaffected.

How it works, and what it does not do. If the gaps are yours, the Parity-Gap Runbook is the paid version of the plan described above.

Sources

Related