Knowledge base Rise Up

Migrating Your Outlook Integration from EWS to Microsoft Graph

  • Updated

 

Prerequisites

This guide is for administrators who already have a Microsoft Entra (Azure AD) app registration and a working Rise Up calendar sync running over Exchange Web Services (EWS). Nothing new needs to be created — you are migrating that same app registration to Microsoft Graph.

Before you start, you need:

  •  A Microsoft Entra ID account holding the Global Administrator or Privileged Role Administrator role. A regular user or a lesser admin role (e.g. Helpdesk Administrator) will not see the consent button.
  •  Access to Exchange Online PowerShell.
  •  The Client ID of the app registration you originally gave Rise Up during calendar sync setup (visible in your Rise Up calendar synchronisation settings).

Setting up for the first time? If you have nothing configured on the Azure side yet, this article is not for you — follow "Outlook Integration: Setup & Room Management" instead, which configures Microsoft Graph directly from scratch.

Overview

Microsoft is retiring Exchange Web Services (EWS) for Exchange Online. If your Rise Up calendar sync currently runs over EWS, it must be migrated to Microsoft Graph using the same app registration, Tenant ID, Client ID, client secret, and service-account mailbox you already gave Rise Up.

Date What happens
1 October 2026 EWS enforcement begins — EWS access is blocked by default unless your tenant has explicitly allow-listed the application.
1 April 2027 EWS is fully removed. No allow-list or workaround will keep an EWS integration running.

 One-way transition: once migrated to Graph, you do not switch back to EWS.

 

Key elements
  • App registration: the same Microsoft Entra app you already gave Rise Up — reused for Graph, never recreated.
  • EWS allow list: a tenant-level setting that keeps a specific app authorised to use EWS after enforcement begins.
  • Graph application permissions: Calendars.ReadWrite, Place.Read.All, and User.Read.All, added and consented on the app registration.
  • Admin consent: the approval step, performable only by a Global Administrator or Privileged Role Administrator, that activates the declared Graph permissions.
  • Application Access Policy: an Exchange Online PowerShell policy that restricts the Graph app permission to the Rise Up service-account mailbox only.
  • Event ID translation: the process the Rise Up Care team runs to let events created under EWS continue to be updated and cancelled under Graph.

 

I — Part A: Keep EWS alive until you migrate

Complete this section only if you will not finish the Graph migration before 1 October 2026. If you are migrating to Graph now, skip directly to Section II.

Locate the existing app registration

Go to: Azure Portal > Microsoft Entra ID > App registrations.

Find the app matching the Client ID you already gave Rise Up during calendar sync setup. This is the same app — nothing new to create, and your existing secret stays valid.

Add the Rise Up app to the EWS allow list

Action: Run the following in Exchange Online PowerShell:

# Read the current allow list first (this is a full REPLACE, not an add)
$current = (Get-OrganizationConfig -RetrieveEwsOperationAccessPolicy | Select-Object -ExpandProperty EwsAllowedAppIDs)

# Add the Rise Up Client ID to the existing list
$updated = @($current, "<YOUR_CLIENT_ID>")

# Write the combined list back
Set-OrganizationConfig -EwsAllowedAppIDs ($updated -join ",")

# Enable EWS
Set-OrganizationConfig -EwsEnabled $true

Replace <YOUR_CLIENT_ID> with the Client ID you originally gave Rise Up.

This command replaces the full list
Set-OrganizationConfig -EwsAllowedAppIDs replaces the entire list. If you have other EWS apps already listed, they must be included too — reading $current first, as shown above, does this for you.

Result: Confirm the change took effect:

Get-OrganizationConfig -RetrieveEwsOperationAccessPolicy | Format-List EwsAllowedAppIDs

Verify EwsEnabled is True, not Null

Leaving EwsEnabled set to Null means Microsoft will eventually auto-disable EWS for your tenant on a rolling schedule you don't control. Explicitly setting it to True, with the allow list populated, puts you in control of the timeline.

 

II — Part B: Migrate to Microsoft Graph

Perform these steps in the same app registration used in Section I.

Add the Microsoft Graph permissions

Go to: Azure Portal > Microsoft Entra ID > App registrations > open the app matching the Client ID on file with Rise Up > API permissions.

  1. Click Add a permission > Microsoft Graph > Application permissions.
  2. Search for and check each permission listed below.
  3. Click Add permissions.
Permission Why it is needed
 Calendars.ReadWrite Create, update, read, and cancel calendar events.
Place.Read.All Room-list lookups (only if you use the room management feature).
User.Read.All Event ID translation during migration — temporary.
Good to know
Place.Read.All — room-list sync delay: Microsoft Graph does not return newly created or updated room lists in real time. Allow up to 48 hours for a room list change to propagate before it appears in calendar sync.

User.Read.All — temporary: only needed for event ID translation during migration. It can be removed once configuration is complete and Graph mode is fully available.

Result: The permissions appear with status "Not granted for [Tenant]" — declared, but not yet approved.

  1. Click Grant admin consent for [Company Name] at the top of the API permissions list.
  2. In the confirmation dialog, click Yes.

Result:  The Status column shows a green checkmark reading "Granted for [Company Name]" next to each permission.

Note
Your existing full_access_as_app permission is an Exchange Online EWS permission. It does not grant any Microsoft Graph permission and must not be used for Graph access — EWS and Graph are separate authorization boundaries. Leave it in place for as long as your sync still runs over EWS.

Restrict the app to the correct mailbox

Under EWS, impersonation already limited Rise Up to the service-account mailbox. Under Graph, Calendars.ReadWrite as an application permission defaults to every mailbox in the tenant unless scoped down.

Action: Run the following in Exchange Online PowerShell (not the portal):

Connect-ExchangeOnline
New-ApplicationAccessPolicy -AppId <ClientID> -PolicyScopeGroupId <ServiceAccountEmail> -AccessRight RestrictAccess -Description "Restrict to booking mailbox"

Replace <ClientID> and <ServiceAccountEmail> with the same values already on file with Rise Up. This ensures Rise Up can access only the dedicated service mailbox — never employee or unrelated mailboxes.

Result: Verify the policy applies:

Test-ApplicationAccessPolicy -Identity <ServiceAccountEmail> -AppId <ClientID>
Test-ApplicationAccessPolicy -Identity <SomeOtherMailbox> -AppId <ClientID>

 The first command should return Granted, the second Denied.

 

III — Part C: Switch over in Rise Up

  1. Choose Graph mode: in the Rise Up Microsoft Office calendar sync settings, select Graph as your connection mode. Your existing Tenant ID, Client ID, secret, and service account stay the same.
  2. Test session creation: create a real training session and confirm it syncs to Outlook under the new Graph configuration.
  3. Validate the result: check that the session appears correctly in Outlook.
  4. Contact the Care team: if the test works, reach out via Zendesk to request migration of your existing (EWS-created) calendar events to Graph.
  5. Migration completed by the team: once requested, Rise Up runs the event ID translation for your account, after which you are fully switched to Graph.

Result:  Calendar sync runs entirely over Microsoft Graph, including events originally created under EWS.

One-way transition
This is a one-way transition — once migrated to Graph, you do not switch back to EWS. After the Care team confirms the event migration is complete, the temporary User.Read.All permission can be removed from the app registration.

FAQ & Troubleshooting

  • Issue: The "Grant admin consent" button is missing or greyed out.
    Solution: The signed-in account is not a Global Administrator or Privileged Role Administrator. Sign in with an account holding one of these roles, or ask your tenant's Global Administrator to complete the consent step.

    Issue: A newly created or updated room list does not appear in calendar sync.
    Solution: This is expected — Microsoft Graph can take up to 48 hours to propagate room-list changes. Wait, then check again.

    Issue: Test-ApplicationAccessPolicy returns Granted for a mailbox other than the service account.
    Solution: The Application Access Policy was not created, or was scoped to the wrong group or mailbox. Re-run New-ApplicationAccessPolicy with the correct AppId and PolicyScopeGroupId, then re-test.

    Issue: Other EWS applications stopped working after updating the allow list.
    Solution: Set-OrganizationConfig -EwsAllowedAppIDs replaces the entire list rather than appending to it. Re-run the command including all previously allow-listed app IDs alongside the Rise Up Client ID.
     
  • Do I need a new app registration, secret, or service account?
    — No. You migrate the same app registration you already use — your existing Tenant ID, Client ID, client secret, and service-account mailbox all stay the same.

    What happens to calendar events created before the migration?
    — Events created over EWS keep working, but they carry EWS event IDs. After you validate Graph mode and contact the Care team via Zendesk, Rise Up runs an event ID translation so those existing events can continue to be updated and cancelled under Graph.

    Can I switch back to EWS afterwards?
    — No. The migration is a one-way transition.

    What happens if I do nothing?
    — From 1 October 2026, Microsoft blocks EWS by default unless your tenant has allow-listed the application. From 1 April 2027, EWS is fully removed and your calendar sync will stop working. The allow-list is a bridge, not a solution — plan the Graph migration before then.

    Who can perform the consent steps?
    — Only a Global Administrator or Privileged Role Administrator in your Microsoft Entra ID. Lesser admin roles will not see the "Grant admin consent" button.

    When can I remove the User.Read.All permission?
    — Once the configuration is complete and Graph mode is fully available. It is only needed for the event ID translation during migration.

    Is there any downtime during the migration?
    — Switching the connection mode to Graph takes effect immediately, and your existing Tenant ID, Client ID, secret, and service account keep working. If you have questions about the timing for your account, mention them in your Zendesk request.
  • Contact Support
    Outlook Integration: Setup & Room Management
    Managing Room Lists for Calendar Sync
    Understanding Application Access Policies in Exchange Online
     

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request