Can AI agents automate Microsoft Outlook?
Microsoft · hybrid · emailcalendarproductivity
Outlook mailbox data is broadly automatable through Microsoft Graph. Agents can read, draft, send, reply to, forward, move, categorize, and delete mail; manage calendars, events, contacts, folders, settings, and rules; synchronize changes; and subscribe to change notifications. The API works with personal and organization accounts and supports delegated and application access, but archive mailboxes are excluded and tenant permissions remain a material control. Outlook web add-ins and the first-party Power Automate connector add event and workflow paths across clients. Classic Outlook desktop automation remains available but is not compatible with the new Outlook for Windows. MCP and computer-use paths remain unassessed.
Best path today: api · Overall automatability: 8/10
Modalities
| Modality | Status | Detail |
|---|---|---|
| API | yes | restmicrosoft-identity-platform coverage: partial · docs |
| SDK | yes | javascript official: yes |
| MCP | unknown | verdict: unknown |
| Integrations | yes | power_automate |
| CLI | unknown | |
| Extensibility | yes | outlook-js-addinscomvsto webhooks: True |
| Data access | export: graph-outlook-json, mime, eml · import: graph-outlook-json | |
| RPA / UI automation | workable | outlook-desktop-actionspower-automate-desktop Power Automate for desktop can launch classic Outlook, retrieve and send messages, process or save messages, and handle attachments without raw coordinate automation. Those actions do not support the new Outlook for Windows and cover fewer resources than Microsoft Graph.
|
| Computer use | unknown | measured verdicts only — "unknown" means not yet probed by us |
Scores
| api | mcp | integrations | cli | rpa | computer use | overall |
|---|---|---|---|---|---|---|
| 8 | — | 7 | — | 5 | — | 8 |
Evidence
| Fact | Tier | Source | Date |
|---|---|---|---|
homepage | declared | source | 2026-08-16 |
platforms | declared | source | 2026-08-16 |
license | declared | source | 2026-08-16 |
modalities.api.exists | declared | source | 2026-08-16 |
modalities.api.kinds[0] | declared | source | 2026-08-16 |
modalities.api.auth[0] | declared | source | 2026-08-16 |
modalities.api.coverage | declared | source | 2026-08-16 |
modalities.sdk.exists | declared | source | 2026-08-16 |
modalities.sdk.languages[0] | declared | source | 2026-08-16 |
modalities.sdk.official | declared | source | 2026-08-16 |
modalities.integrations.power_automate | declared | source | 2026-08-16 |
modalities.extensibility.scripting[0] | declared | source | 2026-08-16 |
modalities.extensibility.scripting[1] | declared | source | 2026-08-16 |
modalities.extensibility.scripting[2] | declared | source | 2026-08-16 |
modalities.extensibility.webhooks | declared | source | 2026-08-16 |
modalities.data_access.export[0] | declared | source | 2026-08-16 |
modalities.data_access.export[1] | declared | source | 2026-08-16 |
modalities.data_access.export[2] | declared | source | 2026-08-16 |
modalities.data_access.import[0] | declared | source | 2026-08-16 |
modalities.rpa.ui_stack[0] | declared | source | 2026-08-16 |
modalities.rpa.drivability | declared | source | 2026-08-16 |
modalities.rpa.vendor_support[0] | declared | source | 2026-08-16 |
verdict.scores.api | declared | source | 2026-08-16 |
verdict.scores.integrations | declared | source | 2026-08-16 |
verdict.scores.rpa | declared | source | 2026-08-16 |
freshness.watch[0].url | declared | source | 2026-08-16 |
freshness.watch[1].url | declared | source | 2026-08-16 |
freshness.watch[2].url | declared | source | 2026-08-16 |
Last verified 2026-08-16 · volatility high · JSON record