May 8th, 2025

Exchange Web Services code analyzer and usage report

We are now less than 18 months away from the retirement of Exchange Web Services (EWS) in Exchange Online, set for October 1, 2026. Since announcing the deprecation, gaps between EWS and Microsoft Graph have been systematically addressed, and more updates are on their way as part of the Secure Future Initiative (SFI). At Microsoft, we’ve already started removing dependencies on EWS within our own apps—a milestone that will be completed this summer. If you haven’t already, it’s critical to start planning your migration from EWS to Microsoft Graph now. Here’s how you can begin.

Understanding EWS exposure

To effectively migrate from EWS, the first step is understanding your app portfolio’s exposure to EWS. Applications using EWS rely on specific permissions, and identifying those apps is essential. Fortunately, we offer tools to help with this:

  • Admin center reports: These reports reveal which apps use EWS, their EWS operation types, and call volumes. They are available on tenants in the worldwide Microsoft 365 cloud.
  • App usage reports: These reports can be configured and run on any Microsoft 365 tenant including those on sovereign clouds. These reports provide similar insights into EWS applications with recent activity.

Once you’ve compiled a prioritized list of applications using EWS, you can begin analyzing migration paths for each code base.

 

Understanding your migration path

Migrating your codebase away from EWS will create a more secure posture for your application portfolio. It can also be an opportunity to address architectural deficiencies in your app portfolio and consolidate components using Exchange Online capabilities.

To support developers in that process we released the EWS code analyzer as an open-source sample. You can use it as-is to identify references to EWS or extend it to generate bespoke messages and code actions, here is an example:

EWS Code Analyzer message

In conjunction with GitHub Copilot the tool can suggest alternative implementations with Graph API.

GitHub Copilot generates equivalent Graph API code

We’d love to hear from you in the comments if you have feedback on the approach or how you extended the tools to adapt to your code base and workflow.

While there are still some known parity gaps in Graph API there are many common scenarios that are fully supported. We are frequently updating the roadmap on the EWS Deprecation page as new capabilities come online. Even if a feature in your app is blocked by a parity gap, we encourage you to migrate as much as you can to identify any additional issues, we may not be aware of.

Considering your application portfolio holistically can also help you identify opportunities to create shared components that encapsulate EWS use cases. Here are actions to consider for migration:

  • Consider if the business process still requires Exchange capabilities or if the business need can be met using other technologies, such as Microsoft Teams.
  • Consider moving the application functionality to Power Platform to reduce the effort required for future updates.
  • Consider refactoring EWS functionality into shared components to streamline migration across multiple applications.
  • Explore modern architectural patterns, such as modular monolith or microservices, which can make migration smoother and dependency injection to simplify component swapping and insulating the parts of your applications using EWS.

Planning the migration path now ensures your apps are ready well in advance of EWS retirement and with enough time to react to limitations.

Call to action

Don’t wait for all known gaps to be addressed before starting your migration. Begin the analysis now, map out your path, and implement as much as possible using the available APIs. While Microsoft Graph continues to evolve and close feature gaps with EWS, some unanticipated issues may arise that require time to resolve. By acting early, you can ensure smooth transitions and unlock the powerful capabilities of Microsoft Graph.

Conclusion

The retirement of EWS is an opportunity to improve your tenant’s security posture, to modernize your applications and leverage the enhanced features provided by Microsoft Graph. With tools like the Admin Center Reports, App Usage Reports, and EWS Code Analyzer, you have everything you need to understand your exposure, analyze your migration paths, and make informed decisions. Let’s work together toward a seamless migration.

Author

Senior Product Manager

1 comment

  • Marianchuk, Maksym 3 days ago

    Hello Thomas! I hope you are doing great.

    Could you please tell me if it is possible to see how much and how often EWS is used through a specific registration app that users provide access to?

    I’m wondering if we can calculate the number of EWS requests that we (specific Azure App Registration) use to support our tenants.

    Thank you,
    best regards Maksym!