If you rely on scripts or add-ins that use Outlook Object Model automation to manage emails, calendars, or tasks, you have likely discovered that the new Outlook for Windows does not support this technology. The classic Outlook for Windows uses the Outlook Object Model to allow external programs like VBA scripts, COM add-ins, and third-party automation tools to control its features. The new Outlook, built on a web-based platform, intentionally blocks this automation model for security and performance reasons. This article explains why the new Outlook drops Object Model automation and provides specific, practical alternatives you can use today to automate your workflows.
Key Takeaways: Automating the New Outlook Without Object Model
- Microsoft Graph API: Replace local Object Model calls with cloud-based REST calls for mail, calendar, contacts, and tasks.
- Power Automate: Build no-code or low-code workflows that trigger on new emails, send replies, or create calendar events without writing scripts.
- Exchange Web Services (EWS): Use EWS as a fallback for on-premises or hybrid environments where Graph API is not available.
Why the New Outlook Blocks Object Model Automation
The classic Outlook for Windows exposes a COM-based Object Model that third-party applications and VBA macros can call directly. This model gives deep access to Outlook data and features but also introduces security risks, stability problems, and performance overhead. The new Outlook for Windows is built on the same web platform as Outlook on the web. It runs in a sandboxed environment that does not expose a COM interface. Microsoft made this change to improve security, reduce crashes caused by poorly written add-ins, and support rapid feature updates. As a result, any script or add-in that relies on the Outlook Object Model, including VBA macros, COM add-ins, and some third-party automation tools, will not work in the new Outlook.
Microsoft has stated that they will not add Object Model support to the new Outlook. Instead, they encourage developers and power users to adopt modern APIs and automation platforms. The main alternatives are the Microsoft Graph API, Power Automate, and Exchange Web Services for on-premises scenarios. Each option has its own strengths, limitations, and setup requirements.
Practical Alternatives to Object Model Automation
The following methods replace the Object Model functionality you may be using in classic Outlook. Choose the approach that matches your environment and skill level.
Option 1: Microsoft Graph API for Cloud-Based Automation
The Microsoft Graph API is the primary replacement for Outlook Object Model automation in the new Outlook. It provides RESTful endpoints for mail, calendar, contacts, and tasks. You can call Graph from any programming language that supports HTTP requests, including Python, JavaScript, C#, and PowerShell. To use Graph, you need an Azure Active Directory application registration with the appropriate permissions. For example, to send an email programmatically, you register an app, grant the Mail.Send permission, and then make a POST request to https://graph.microsoft.com/v1.0/me/sendMail. Graph works with Microsoft 365 cloud mailboxes only. It does not work with on-premises Exchange mailboxes unless you use a hybrid deployment.
- Register an application in Azure AD
Go to the Azure portal, select App registrations, and create a new application. Note the Application (client) ID and Directory (tenant) ID. - Configure API permissions
Under API permissions, add Microsoft Graph permissions such as Mail.ReadWrite, Mail.Send, Calendars.ReadWrite, or Tasks.ReadWrite depending on your automation needs. - Generate an access token
Use the client credentials flow or authorization code flow to obtain an OAuth 2.0 token. In PowerShell, you can use the MSAL.PS module to acquire tokens silently. - Call the Graph API endpoint
Send an HTTP request with the token in the Authorization header. For example, to list messages, use GET https://graph.microsoft.com/v1.0/me/messages.
Option 2: Power Automate for No-Code Workflows
If you do not want to write code, Power Automate (formerly Microsoft Flow) provides a graphical interface to build automation workflows that interact with the new Outlook. You can trigger flows on new email arrival, send automatic replies, create calendar events, and move messages to folders. Power Automate connects to the new Outlook through the Microsoft Graph connector. It does not require any programming knowledge. However, complex logic or high-frequency automation may require a premium license.
- Create a new flow in Power Automate
Go to make.powerautomate.com and sign in with your Microsoft 365 account. Select Create and choose Automated cloud flow. - Choose a trigger
Select a trigger from the Outlook connector, such as When a new email arrives (V3). Configure the folder to monitor and any filters. - Add actions
Add actions like Send an email (V2), Create calendar event, or Move email. Configure each action with the required properties. - Test and enable the flow
Save the flow and run a test with a sample email. If the test passes, turn on the flow to run automatically.
Option 3: Exchange Web Services for On-Premises Environments
For organizations that use on-premises Exchange Server and cannot use Microsoft Graph, Exchange Web Services (EWS) remains a viable option. EWS provides a SOAP-based API that supports mail, calendar, contacts, and tasks. However, Microsoft has announced that EWS will be deprecated for Exchange Online in 2026. For on-premises Exchange 2019 and earlier, EWS continues to work. You must disable legacy authentication and use OAuth 2.0 if your environment supports it. EWS does not work with the new Outlook directly, but you can call it from a separate script or service that runs on a server.
- Check Exchange version and EWS availability
Verify that your Exchange server supports EWS. For Exchange 2013 and later, EWS is enabled by default. For Exchange 2010, EWS requires explicit configuration. - Create a service account
Create a dedicated mailbox and service account with the minimum required permissions. Avoid using your personal mailbox for automation. - Write a script using the EWS Managed API
Download the EWS Managed API 2.2 from Microsoft. In your C# or PowerShell script, create an ExchangeService object, set credentials, and call methods like FindItems or SendItem. - Schedule the script to run
Use Windows Task Scheduler or a CI/CD pipeline to run the script on a schedule or trigger it based on events.
Common Migration Issues and How to Handle Them
My VBA macros no longer work in the new Outlook
VBA macros that use the Outlook Object Model, such as Application.ActiveInspector.CurrentItem, will not run in the new Outlook. The new Outlook does not support VBA at all. To replace a macro, identify the specific action it performs. If it sends an email or creates an appointment, rewrite it as a Power Automate flow or a Graph API call. If the macro runs locally without network access, you must keep classic Outlook installed alongside the new Outlook for those workflows.
My COM add-in does not load in the new Outlook
COM add-ins that hook into the Outlook Object Model are not supported. Check if the add-in vendor offers a web add-in version that uses the Office Add-ins platform. Web add-ins run in a sandboxed iframe and work in the new Outlook. If no web add-in is available, you must use classic Outlook for that add-in or replace the functionality with Graph API calls.
I need to automate a task that runs offline
Graph API and Power Automate require internet connectivity. If your automation must work offline, you cannot use the new Outlook for that task. Keep classic Outlook installed and run your Object Model scripts there. You can switch between classic and new Outlook on the same machine by toggling the Try the new Outlook slider in the top-right corner of the classic Outlook window.
Object Model vs Graph API vs Power Automate: Key Differences
| Item | Outlook Object Model (Classic) | Microsoft Graph API |
|---|---|---|
| Access method | COM interface, local | REST API, cloud |
| Works with new Outlook | No | Yes |
| Works offline | Yes | No |
| Programming language | VBA, C#, VB.NET | Any HTTP-capable language |
| Authentication | Windows integrated | OAuth 2.0 |
| Best for | Local scripts, quick automation | Cloud-first, scalable automation |
You can now replace Outlook Object Model automation with Microsoft Graph API, Power Automate, or Exchange Web Services depending on your environment. Start by auditing your existing macros or add-ins to determine which actions they perform. Then choose the alternative that matches your technical skill level and connectivity requirements. A good next step is to create a simple Graph API script that sends a test email from your mailbox. This confirms that your authentication and permissions are configured correctly before you build more complex workflows.