EWS Retirement 2026: How to Find Legacy Exchange Integrations Before They Break

EWS Retirement 2026: How to Find Legacy Exchange Integrations Before They Break

Exchange Web Services has been on borrowed time since 2018 when Microsoft announced it would stop active development. The retirement dates are now in the calendar: a phased disablement begins on 1 October 2026, with full shutdown landing on 1 April 2027. There is a control mechanism that buys time for tenants that need it — EWSEnabled together with an AppID Allow List — but the deadline to configure that mechanism falls at the end of August 2026. In other words: by the time you read this, you have weeks, not months, to find every EWS-based integration in your tenant, decide what to do with it, and either migrate it to Microsoft Graph or add it to the Allow List. This article is the practical playbook for the discovery and decision work that the next two months demand. Validate the current tenant-specific guidance in Microsoft Learn and the Microsoft 365 Message Center before quoting these dates in customer communications.

📅 June 2026 ⏱ 15 min read 📧 Exchange Online 📚 Decision Framework
Key Takeaways
📅
The 2026 EWS timeline is short and concrete. End of June 2026: Microsoft begins blocking EWS access for users without licence rights, including affected Kiosk / Frontline Worker scenarios where the assigned SKU does not include EWS rights. End of August 2026: deadline to set EWSEnabled = True and populate an AppID Allow List to be excluded from the 1 October 2026 default change. 1 October 2026: Microsoft starts blocking EWS requests for tenants that did not configure the Allow List. 1 April 2027: EWS fully disabled in Exchange Online. Validate the current published dates on Microsoft Learn and the Microsoft 365 Message Center before quoting in customer communications — Microsoft has previously adjusted the timeline.
🛡️
The Allow List is a stopgap, not a strategy. Setting EWSEnabled = True and adding application IDs to the Allow List is the official mechanism to keep specific apps working past 1 October 2026 while a migration is in flight. It is not a way to opt out of the retirement. Apps on the Allow List still need a migration plan that lands before the currently documented 1 April 2027 full shutdown.
🔎
Microsoft has shipped a built-in EWS Usage Report in the Microsoft 365 admin center. The report surfaces SOAP actions, active applications and call volume. It is the primary discovery source for 2026. Complement it with the Unified Audit Log activity EwsAccess, the Microsoft Entra ID sign-in logs filtered for the EWS resource, and an inventory of app registrations with EWS-relevant permissions.
🚀
Microsoft Graph is the strategic replacement for most EWS scenarios, but not every EWS workload is a one-to-one migration. Mailbox content access, standard mail operations, calendar, contacts, folder operations, attachment handling and change notifications are strong Graph migration candidates. Archive mailbox scenarios, public folders, import/export, impersonation-style access and EWS extended properties require careful validation or redesign. Validate Graph capability for your specific scenario on Microsoft Learn before committing to a migration plan.
🔌
The legacy integrations most at risk in 2026 are the ones nobody owns. Backup and archiving tools, signature management, mailbox migration tools, journaling connectors, third-party meeting room solutions, custom in-house apps written in the 2010s that someone copied into a server and never revisited. The discovery work is partly technical (the Usage Report, audit log) and partly archaeological (who owns this, is it still in production, can we just turn it off).
💰
Scope. The retirement applies to Microsoft 365 / Exchange Online only. Exchange Server on-premises is not affected at the time of writing. Hybrid environments still have EWS available on the on-premises side for as long as the on-premises Exchange version supports it. Migration paths for hybrid tenants depend on whether the EWS dependency runs against the on-premises or the cloud mailbox.
🔗
Where this article fits. EWS retirement is a quietly enormous discovery exercise. The integrations that use EWS in 2026 are typically the ones that have not been touched in years. Some were bought from a vendor and forgotten; some were written by an admin who has long since moved on. This article is for the Exchange Online admin or architect who has been asked "what happens to our integrations in October?" and needs a structured way to answer.
📌
How to use this guide:
1. Starting from zero: read top to bottom; the discovery methods and the pre-October checklist capture the work.
2. Already have an inventory: jump to the migration playbook and the Allow List configuration sections.
3. Responding to a vendor question: jump to the timeline and the categorisation section to frame the response.

The 2026 EWS timeline

Microsoft first announced the EWS retirement in 2018 and reconfirmed the schedule in 2023 with a phased plan landing the active changes in 2026 and the final shutdown in 2027. The timeline below reflects the published guidance at the time of writing; Microsoft has adjusted dates before, so validate against Microsoft Learn and the Microsoft 365 Message Center before relying on a date in a customer communication.

Date Event What it means for admins
End of June 2026 Microsoft begins blocking EWS access for users without licence rights to EWS — including affected Kiosk / Frontline Worker scenarios where the assigned SKU does not include EWS rights. Tenants with Kiosk / F-SKU populations using EWS-based tools should expect failures. Validate which user populations are in scope on Microsoft Learn.
End of August 2026 Deadline to proactively configure EWSEnabled = True together with an AppID Allow List to be excluded from the 1 October 2026 default change. Tenants that complete this step before the deadline keep specific apps working past 1 October. Tenants that miss the deadline are switched to EWSEnabled = False by Microsoft, which blocks EWS for all apps by default.
1 October 2026 Microsoft starts blocking EWS requests in Exchange Online for tenants that did not configure the Allow List in time. Phased disablement begins. This is the date most teams treat as the operational cut-off. Apps that have not migrated or been added to the Allow List stop working on or after this date.
April 2027 EWS fully disabled in Exchange Online (currently published target: 1 April 2027). Validate against Microsoft Learn and the Microsoft 365 Message Center for your tenant. Apps still on the Allow List in early 2027 enter the final migration window. The Allow List is not a long-term capability and stops working when the final shutdown is reached.
2018 — ongoing Microsoft has not actively developed EWS since 2018. Security and certain non-security updates continue; product design and features do not. If your integration is still on EWS in 2026, it is on a code path that has been frozen for years. The migration is overdue regardless of the retirement date.
The August 2026 deadline is short. If you are reading this in June 2026, you have roughly 8 weeks to inventory EWS usage in the tenant, decide which apps need continued access, and configure the Allow List before the default change to EWSEnabled = False arrives on 1 October. Start the discovery work immediately.
📝
EWS retirement is no longer only a third-party app problem. Microsoft widened the scope to include first-party Microsoft applications after the Midnight Blizzard incident and is actively removing EWS dependencies from Outlook, Office, Microsoft Teams and Dynamics 365. The practical implications for admins: keep Microsoft clients on supported, up-to-date versions, and use the published Microsoft first-party application IDs when interpreting the EWS Usage Report so that legitimate Microsoft client traffic is correctly identified (and not accidentally added to a remediation backlog as if it were a custom integration). Classify Microsoft first-party AppIDs separately from third-party, vendor and custom AppIDs in your inventory — the remediation owner and the migration path differ between the categories.

The new control surface: EWSEnabled + AppID Allow List

Microsoft introduced a tenant-level control to manage EWS access during the retirement window. The control has two parts.

  • EWSEnabled — a tenant-wide switch that gates whether EWS requests are accepted. Default behaviour shifts on 1 October 2026: tenants that did not proactively set EWSEnabled = True by the end of August 2026 are switched to False.
  • AppID Allow List — a list of Microsoft Entra ID application identifiers that are permitted to use EWS when EWSEnabled = True. Applications not on the list are blocked even when the tenant-level switch is on.

The mechanism gives admins the ability to keep specific apps working past 1 October 2026 while a migration plan is delivered, without leaving EWS open to every app in the tenant. The configuration is done via Exchange Online PowerShell at the time of writing; expect a portal experience to follow.

📝
The Allow List is bounded by the AppID, not by the user. Granting an app access through the Allow List means every user the app authenticates is allowed to use EWS via that app. Scope at the AppID level is broad. Combine with Microsoft Entra Conditional Access and the app's own scoping (which mailboxes it actually accesses) to constrain effective use where stricter scoping is required.

Discovery: four methods to find EWS usage in your tenant

The discovery work has four sources. Each one tells you something the others miss. Use them together rather than picking one.

Method 1 — EWS Usage Report in the Microsoft 365 admin center

Microsoft shipped a built-in EWS Usage Report in the Microsoft 365 admin center in 2025. It is the primary discovery source for 2026.

  1. Sign in to the Microsoft 365 admin center at admin.microsoft.com.
  2. Go to Reports → Usage.
  3. Select the Exchange Web Services (EWS) usage report.
  4. Review SOAP actions, active applications by name and AppID, call volume per application, and the user population making the calls.
  5. Export the report for a documented snapshot before any remediation work begins.

The report's strength is that it identifies applications by AppID, which is the exact identifier you will need for the Allow List or for the migration ticket. Some operational characteristics matter for how you use it:

  • The report currently supports 7-day, 30-day and 90-day filters in the Microsoft 365 admin center.
  • Data is collected and aggregated weekly, not daily. The report does not reflect activity in real time; recent calls may not appear immediately in the report.
  • The report is a starting point, not a full historical inventory. Applications active outside the 90-day window do not appear; applications configured but currently idle do not appear. Combine with the audit log, sign-in logs and app registration inventory to assemble a complete view.

Method 2 — Unified Audit Log: EwsAccess activity

The Unified Audit Log captures EWS access events under the activity name EwsAccess. The audit log's strength is granularity and time depth (retention depends on licensing; E5 / advanced auditing covers up to a year by default).

  1. Sign in to the Microsoft Purview portal or the Microsoft 365 admin center.
  2. Open Audit and search for the activity EwsAccess over the longest window your licence allows.
  3. Group results by application name, AppID and source IP to identify the calling applications.
  4. Pair with the EWS Usage Report — the audit log adds applications that have called EWS at any point in the retention window, even if they are quiet today.
⚠️
Audit log retention depends on licensing. Tenants on Microsoft 365 E3 without Audit (Premium) typically have 180 days of audit retention. Tenants on E5 with Audit (Premium) can have up to a year or longer depending on configuration. If you have not enabled longer retention, the audit log will only show recent activity. Validate retention before relying on the search results as a complete inventory.

Method 3 — Microsoft Entra ID sign-in logs filtered for EWS

Microsoft Entra ID sign-in logs record application authentications, including the resource the application is calling. Filtering for the EWS resource surfaces every application that authenticated to EWS in the log window.

  1. Sign in to the Microsoft Entra admin center.
  2. Go to Monitoring & health → Sign-in logs.
  3. Apply filters for the resource that EWS uses (Office 365 Exchange Online) and review the application column.
  4. Cross-reference application IDs against the EWS Usage Report and the audit log.

Method 4 — App registrations with EWS-relevant permissions

The final source is the static configuration: which applications in the tenant have been granted EWS-relevant permissions on the Office 365 Exchange Online service principal, regardless of whether they have called EWS recently. The right query is over assigned permissions, not over what the resource service principal exposes.

Connect-MgGraph -Scopes "Application.Read.All","Directory.Read.All","AppRoleAssignment.Read.All"

# Identify the Office 365 Exchange Online resource service principal
$exo = Get-MgServicePrincipal -Filter "displayName eq 'Office 365 Exchange Online'" |
       Select-Object -First 1

# Resolve the EWS app-only role IDs on the EXO resource SP
# (validate the EWS-relevant identifiers against Microsoft Learn before
# relying on the output as a complete classification)
$ewsAppRoleIds = $exo.AppRoles |
  Where-Object { $_.Value -in @("full_access_as_app") } |
  Select-Object -ExpandProperty Id

# Iterate over every client service principal in the tenant and check
# its app role assignments against the EXO resource SP and the EWS roles
$appOnlyGrants = foreach ($sp in Get-MgServicePrincipal -All) {
  Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $sp.Id -ErrorAction SilentlyContinue |
    Where-Object { $_.ResourceId -eq $exo.Id -and $ewsAppRoleIds -contains $_.AppRoleId } |
    Select-Object @{Name="ClientDisplayName";Expression={$sp.DisplayName}}, `
                  @{Name="ClientAppId";Expression={$sp.AppId}}, `
                  AppRoleId, ResourceDisplayName
}

# Apps granted EWS delegated permissions on the EXO resource
$delegatedGrants = Get-MgOauth2PermissionGrant -All |
  Where-Object {
    $_.ResourceId -eq $exo.Id -and
    ($_.Scope -split " " | Where-Object { $_ -eq "EWS.AccessAsUser.All" }).Count -gt 0
  } |
  Select-Object ClientId, ConsentType, Scope

# Output both sets
$appOnlyGrants
$delegatedGrants
📝
This script is a discovery accelerator, not a compliance-grade inventory by itself. Always cross-reference results with the EWS Usage Report, audit logs and Microsoft Entra sign-in logs, because permissions granted do not prove active usage. An application can hold full_access_as_app or EWS.AccessAsUser.All and never call EWS; an application can call EWS through a permission shape this query does not catch. The four discovery methods are complementary; no single one is canonical.

The exact permission identifiers to look for on the Office 365 Exchange Online service principal are the EWS-relevant app role full_access_as_app (app-only access where EWS is the intended path) and the delegated scope EWS.AccessAsUser.All (delegated EWS access). Resolve the corresponding AppRoleId values and delegated Scope values on the EXO service principal, then enumerate per-client-SP app role assignments and OAuth2 permission grants where the resource is the EXO service principal. Combine the four methods to assemble a complete inventory.

Code-side discovery: EWS Analyzer and EWS-to-Graph mapping

The four methods above cover the runtime side of discovery: what is calling EWS in your tenant right now or recently. They do not cover the code side: repositories, scheduled tasks, and old binaries that may still contain EWS calls but have not run within the audit window. For a complete inventory, runtime discovery needs to be paired with code analysis.

Microsoft has published guidance and tooling to help with the code side. Specifically:

  • EWS Analyzer — a Microsoft-provided tool that scans codebases for EWS usage and identifies migration targets. Useful for in-house repositories where the source code is available.
  • EWS-to-Graph mapping guidance — Microsoft Learn documentation that maps common EWS operations to their Graph equivalents, with the gotchas called out per operation.
  • AI-assisted code analysis and refactoring — Microsoft has published tutorials covering use of AI tooling to accelerate the EWS-to-Graph migration in source code, particularly for larger or older codebases where manual review is impractical.

The practical pattern: use the runtime methods for the inventory (who is calling, what AppID, how often), then use the code-side tooling for the migration work itself (what to change, in which file, with what Graph equivalent). The two halves of the discovery are complementary, not interchangeable.

Inventory output: the deliverable of the discovery phase

The discovery work converges into a single artefact: the EWS inventory. The structure below is the practical deliverable of the discovery phase. It is the document that is reviewed in change-control meetings, referenced when migration decisions are taken, and updated as items move from "Allow List" through to "migrated" and finally "decommissioned". Maintain it in a place under source control or shared documentation, not a personal spreadsheet on a single admin's machine.

Field What it captures
App display name The human-readable name of the application as it appears in Microsoft Entra ID and the EWS Usage Report.
AppID The Microsoft Entra ID application identifier (GUID). The exact value needed for the Allow List entry and for migration tickets.
Owner A named person in the organisation (not a vendor name). The owner is accountable for the migration decision and for keeping the entry up to date.
Vendor / custom Classification: Microsoft first-party, third-party vendor SaaS, custom in-house. Determines the migration path and the remediation owner.
Last seen The most recent date the application was observed calling EWS, from the Usage Report or the audit log. Used to triage dormant apps.
Call volume Approximate call volume per day or per week, from the Usage Report. Used to size the migration effort and to rank priorities.
SOAP actions The set of EWS SOAP actions the application uses (e.g. FindItem, GetItem, CreateItem, Subscribe). Determines which Graph operations need to map across.
Permission model App-only via full_access_as_app, delegated via EWS.AccessAsUser.All, or impersonation via EWS-specific patterns. Drives the Graph permission redesign.
Users / mailboxes touched Approximate user or mailbox population the application accesses. Useful for scoping Application Access Policies or Application RBAC on the Graph side, depending on the current recommended model for the tenant.
Decision One of: migrate to Microsoft Graph, replace with vendor Graph version, decommission, Allow List as stopgap. Documented with rationale.
Target date Deadline for the decision to be delivered. Allow List entries should have a date earlier than April 2027; migration projects should land before October 2026 where possible.

Categorising what you find

An EWS inventory is rarely homogeneous. The applications calling EWS typically fall into one of five categories, each of which has a different migration path.

Category Typical examples Migration path
Backup, archiving, eDiscovery Veeam Backup for M365, AvePoint Cloud Backup, Quest On Demand Migration, third-party journaling. Vendor migration to Graph. Most major vendors have shipped Graph-based versions; check vendor release notes and upgrade.
Mailbox migration tools BitTitan MigrationWiz, Quest On Demand Migration, Microsoft's own native cross-tenant tooling. Vendor version that uses Microsoft's Cross-Tenant User Data Migration add-on or Graph-based mailbox access.
Signature and template management Exclaimer, CodeTwo, Symprex, in-house signature scripts. Vendor versions that use Graph or transport rules. Some in-house signature scripts may already be obsolete and removable.
Meeting room and resource calendar tools Robin, Joan, Condeco, Skedda, room-display kiosks. Vendor version using Graph calendar APIs. Confirm the vendor supports Graph and which permission scopes are required.
Custom in-house apps PowerShell scripts run on a scheduled task. ASP.NET web apps written in 2014. Console apps that send notifications. Rewrite to Microsoft Graph. The simplest scripts can move in a day; older web apps may need more work. Some custom apps will turn out to be no longer used — remove them.

For each item in the inventory, capture: owner (someone in the organisation, not a vendor name), business criticality, migration vendor / version status, planned migration date, fallback (Allow List or accept service interruption), and the date the decision was last reviewed.

Microsoft Graph as the replacement: fit, gaps, exceptions

Microsoft Graph is the strategic replacement for most EWS scenarios, but not every EWS workload is a one-to-one migration. Some scenarios port directly to Graph with comparable or better APIs. Some require redesign because EWS exposed a model (impersonation, extended properties, streaming notifications) that Graph addresses differently. A few scenarios are genuinely thin in Graph coverage today and either need careful validation or a workaround.

Graph migration fit per scenario

EWS scenario Graph fit Notes
Mail read / send / search / move / delete Strong Outlook mail API in Graph covers the standard mail operations cleanly with delegated and application permissions.
Calendar and contacts Strong Validate recurrence handling and delegate access patterns against your specific use case. Most cases port cleanly; a few delegated recurrence edge cases need testing.
Attachments (small and large) Strong Use Graph upload sessions for large attachments. Small attachments port directly.
Notifications (push / streaming) Good, with redesign Redesign from EWS streaming / push notifications to Graph subscriptions and change notifications. Not a one-to-one swap; the model is different (webhook-based, with explicit subscription lifecycle).
Public folder operations Weak — validate carefully Microsoft is steering customers off public folders generally. Some legacy operations may not have a clean Graph equivalent. Evaluate whether the use case can move to modern alternatives (groups, shared mailboxes, Teams).
Archive mailbox scenarios Validate carefully Some archive-specific operations need scenario-by-scenario validation. Confirm Graph coverage for your specific archive workflow before committing to migration.
Import / export mailbox operations Gap or preview — depending on scenario Bulk import / export patterns historically used by migration tools have gaps in current Graph coverage. Some equivalents are in preview. For mailbox migration vendors, this is the main reason a Graph-based version of their tool may have shipped later than other workloads.
EWS impersonation model Redesign required Graph does not replicate EWS impersonation. Redesign to Graph application permissions with consented scopes and explicit access to specific mailboxes where required (for example via Application Access Policies or Application RBAC, depending on the current recommended model for the tenant).
EWS extended properties Redesign required No direct Graph equivalent. Use Graph open extensions where the schema needs to be carried over, but in most cases a clean redesign is the better outcome.
🔎
Validate Graph capability per scenario. Microsoft's framing of Graph as the strategic replacement is correct at the tenant-planning level but is not a substitute for verifying that your specific scenario maps cleanly. The first step of any migration ticket is to test the Graph equivalent against a representative test mailbox in a non-production tenant.

Migration playbook per category

The migration work breaks into parallel tracks by category. Each track has its own ownership, its own validation criteria, and its own deadline.

Vendor SaaS (backup, archive, signature, meeting rooms)

The fastest path. The vendor has already shipped a Graph-based version; your work is to upgrade and re-validate. The migration ticket is: confirm the vendor supports Graph, confirm the version that does, plan the upgrade, validate against a pilot before tenant-wide cutover.

Mailbox migration tools

If a migration is in flight on the day EWS is blocked, the migration breaks. Check the tool's vendor for Graph-based migration support. Microsoft's own Cross-Tenant User Data Migration add-on (covered in a separate article in this blog) is the native path for tenant-to-tenant scenarios going forward.

Custom in-house apps

The slowest path because each app is bespoke. For each app, the migration is a small project: register an Entra ID app with the right Graph permissions, rewrite the calls (the Microsoft Graph SDKs cover most major languages), validate against the same test mailboxes the original was built against, then cut over.

Three patterns repeat for the in-house apps:

  • It is no longer used. Confirm with the owner, document, and decommission. This is the cheapest outcome.
  • It is simple and has a clear Graph equivalent. The script that reads mailboxes and sends a report can typically be ported in a day, sometimes faster. A junior developer with the Microsoft Graph PowerShell SDK can deliver this.
  • It is complex, business-critical and the original author has left. This is the case where the Allow List buys time. Put the app on the Allow List, raise a project to migrate or replace it, then remove from the Allow List once the project lands.

Configuring the Allow List for continued access

The Allow List is the stopgap mechanism for apps that cannot be migrated before the 1 October 2026 default change. The configuration is via Exchange Online PowerShell at the time of writing. The conceptual flow is:

  1. Connect to Exchange Online PowerShell.
  2. Set the tenant-level EWSEnabled switch to True via Set-OrganizationConfig.
  3. Configure the AppID Allow List with the application identifiers that should retain EWS access.
  4. Verify the configuration with the corresponding Get-OrganizationConfig output.
⚠️
Do not copy-paste cmdlets without validation. Older Exchange Online tenants have historical parameters such as EwsApplicationAccessPolicy, EwsAllowList and EwsBlockList that pre-date the 2026 retirement. The retirement-specific AppID-based Allow List may use different cmdlet shapes, parameter names and behaviour from those legacy controls. Patterns documented in older blog posts (including some that look superficially correct) may be the legacy controls, not the new retirement Allow List, and may not deliver the intended effect. Validate the exact cmdlet, parameter name and current behaviour against Microsoft Learn and the Microsoft 365 Message Center before running anything in production. Treat any sample you find as conceptual until you have confirmed the syntax against current Microsoft documentation.

Operational practices for the Allow List:

  • Inventory the Allow List in source-controlled documentation. Each entry should record AppID, app display name, owner, the reason it is on the Allow List, the planned migration date and the date the entry was last reviewed.
  • Review the Allow List monthly. Each entry should have a deadline; when the deadline arrives, the entry is either removed (because the migration landed) or has the deadline renewed with a documented reason.
  • Treat additions as change-controlled. Adding an AppID grants meaningful access; it should not be a casual operation.

Pre-October 2026 validation checklist

The checklist below captures the highest-impact actions for the next eight weeks. Most of the work is discovery and decision-making; the technical configuration is a small fraction of the total effort.

  • Run the EWS Usage Report in the Microsoft 365 admin center.Export the report for a documented snapshot. Capture SOAP actions, applications by AppID, call volume and user population.
  • Query the Unified Audit Log for EwsAccess over the longest window your licence allows.Group by application name and AppID. Pair with the EWS Usage Report to catch applications that have been active in the retention window but are quiet today.
  • Query Microsoft Entra sign-in logs filtered for the EWS resource.Filter for the Office 365 Exchange Online resource and review the calling applications. Cross-reference with the Usage Report and audit log.
  • Inventory Entra ID app registrations with EWS-relevant permissions.Identify applications registered with EWS app roles or delegated scopes regardless of recent activity. Some apps may be configured but not currently calling.
  • Build the consolidated inventory with owner per item.Merge the outputs of the four discovery methods. For each application, capture AppID, app display name, vendor or in-house, business owner, criticality, and current call volume.
  • Categorise each item.Vendor backup/archive, mailbox migration, signature/template, meeting room, custom in-house. Categorisation determines the migration path.
  • Contact each vendor for the Graph-based version status.Confirm the version that supports Graph, the upgrade path, prerequisites and known migration gotchas. Record the vendor reference number for the conversation.
  • Triage custom in-house apps.For each: is it still in use? If not, plan decommission. If yes, identify the owner, estimate the migration effort, and assign it as a small project with a deadline before October 2026.
  • Decide which apps need the Allow List.The Allow List is for apps that cannot reasonably migrate before 1 October 2026. Document the reason and the planned migration date for each Allow List entry.
  • Configure EWSEnabled = True and populate the Allow List by end of August 2026.Validate cmdlet syntax against current Microsoft Learn. Verify the configuration with Get-OrganizationConfig. Capture the configuration in source-controlled tenant documentation.
  • Validate that Allow-Listed apps still work after the 1 October change.Monitor the EWS Usage Report and the audit log in the first weeks of October to confirm Allow-Listed apps continue to call successfully and that nothing else is.
  • Plan the migration of Allow-Listed apps before full shutdown.Each Allow List entry has a deadline. Track migrations in flight, remove entries as projects land, escalate if a deadline slips. The Allow List should be shrinking, not growing, until April 2027 when EWS is fully disabled.
0 of 12 items checked

Common mistakes

  1. Treating the Allow List as a strategy.The Allow List buys time; it does not opt the tenant out of the retirement. Apps on the Allow List still need a migration plan that lands before the April 2027 full shutdown currently documented by Microsoft. Adding an app to the Allow List and walking away is deferring the same problem to next year.
  2. Relying on one discovery method.The EWS Usage Report misses dormant apps. The audit log is bounded by retention. Sign-in logs miss the static configuration. App registration inventory misses the unauthenticated edge cases. Use all four, paired with code-side analysis for repositories and old binaries.
  3. Assuming the vendor already migrated.Several major vendors have shipped Graph-based versions, but not every tenant is on the version that supports Graph. The vendor name on the inventory is not enough; confirm the version and the upgrade plan.
  4. Forgetting Kiosk and Frontline Worker populations.Microsoft is blocking EWS access for users without licence rights from end of June 2026, including affected Kiosk / Frontline Worker scenarios where the assigned SKU does not include EWS rights. Tenants with kiosk-based workflows or frontline workforces may experience selective failures before the broader October change.
  5. Confusing EWS retirement with Exchange Server retirement.The EWS retirement applies to Exchange Online only. Exchange Server on-premises is not affected at the time of writing. Hybrid tenants need to distinguish which side an EWS dependency runs against.
  6. Underestimating the in-house app inventory.The hardest discoveries are the PowerShell script someone scheduled in 2017 and the ASP.NET app that lives on a server in the second data centre. The audit log catches them; the personal knowledge in the team often does not. Pair runtime discovery with code analysis tools like the EWS Analyzer for codebases under your control.
  7. Migrating to Graph without scope rationalisation.EWS permission models were broad. Graph migrations are an opportunity to scope permissions tightly. Reusing the broad EWS permission shape in Graph is a missed security improvement.
  8. Missing the August 2026 deadline.If the Allow List is not populated and EWSEnabled set to True by the end of August, Microsoft switches the tenant to EWSEnabled = False on 1 October. Every app then fails until the configuration is recovered. Plan ahead of the deadline, not after.

References & further reading

Need to turn EWS usage into a clean migration register?

If you need to turn EWS usage into a clean migration register before the October 2026 disablement window, I can help you identify active integrations, classify vendor versus custom dependencies, prepare the Allow List fallback and map each workload to Microsoft Graph.

Get in touch
Next
Next

Exchange Online Mail Flow Architecture 2026: HVE, SMTP AUTH retirement, and the modern connector playbook