Setting up Zoom Rooms with Office 365


When a calendar resource is integrated with a Zoom Room, the room’s TV display, controller, and Scheduling Display can show the meetings scheduled for the room. Conference rooms are assigned as a calendar resource through a calendar service. Members of your organization can then schedule a meeting in a Zoom Room by inviting the room's calendar resource to the meeting. Authorizing Zoom to have access to calendar resources enables users to start and join meetings in the room using one touch.

Before you can add a calendar service for Zoom Rooms, an Office 365 administrator must create a dedicated service account user in Office 365 for the integration, create or locate a calendar resource for each Zoom Room, and then configure the dedicated service account user and the calendar resources for either impersonation or delegate access.

After the Office 365 administrator completes all steps in each section, they will then use the credentials of the dedicated user to provide authorization for the Zoom Rooms in your account to use the calendar service and all of its calendar resources.

This article covers:

Prerequisites for setting up Zoom Rooms with Office 365

How to create a dedicated service account user for Zoom to access Office 365 calendars

  1. Sign in to Office 365 as an admin.
  2. Add a user in your Office 365 account. See the Microsoft documentation Add users to Office 365 for instructions.
    Note: the dedicated service account user must be a licensed user in Office 365 with a mailbox. 
  3. Make note of the email address and password of the dedicated service account user.
  4. Proceed to the next section to create or locate a calendar resource for each room.

How to create or locate a calendar resource for each room

  1. Sign in to the Microsoft Exchange admin center (EAC) as an admin.
  2. In the navigation menu, click Recipients then Resources.
  3. Click on the plus (+) sign if you need to add a room.
    Zoom recommends that you use a prefix (such as ZR) for each room, or choose your own method to allow users to easily search for Zoom Rooms-enabled conference rooms.
  4. Make note of the display name and email address of each calendar resource.
  5. Proceed to the next section to link the user and resources to Zoom, via App-Level Impersonation or using Full Delegate Access

Note: Creating a room list for all Zoom Room calendar resources is recommended. If calendar resources need to be synced later, this option will only work for resources added to a room list. 

How to set up access permissions

Install the Microsoft Exchange Online Powershell Module

These instructions use the Microsoft Exchange Online Powershell Module (AKA “EXO”). They are an abbreviated extract of the instructions found in Microsoft’s Install and maintain the EXO module page. 

  1. Start Windows PowerShell using the Run as administrator option.
    Note: This option is available when you right-click the Windows PowerShell app without launching it.
  2. Prepare to install the EXO module by executing this command:
    Set-ExecutionPolicy RemoteSigned
  3. Press Y to accept the change
  4. Install the EXO module by executing this command:
    Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
    Note: If necessary, enter Y to accept installation of the Microsoft NuGet provider to facilitate installation of the EXO module.
  5. If you receive an “untrusted repository” message and PowerShell prompts you to permit installation of the EXO module the Microsoft PowerShell Gallery (“PSGallery”) repository, enter Y to accept.
  6. Keep the PowerShell window open for further commands.

Choose between App-level Impersonation and Full Delegate Access

In general, Zoom recommends using Exchange Web Services (EWS) integration with the App-level Impersonation Account Permission Type, as this manner of configuration requires significantly less effort to setup and maintain on the part of the administrator, especially at scale. Application Impersonation is Microsoft’s recommended approach for Enterprise applications accessing many calendars. Full Delegate Access remains an option, but requires more effort for initial setup and maintenance. Be advised that the Zoom Rooms calendar integration using Microsoft Graph API integration only supports Full Delegate Access.

Update role management and assignments 

Note: App-level Impersonation requires the use of Exchange Web Services (EWS) - it is not supported with Microsoft Graph API.

  1. Start Windows PowerShell using the “Run as administrator” option.
    Note: This option is available when you right-click the Windows PowerShell app without launching it.
  2. Enter the following command:
    Connect-ExchangeOnline -UserPrincipalName <UPN>
    Note: Change the value of <UPN> to the Office 365 administrator's user principal name (usually appears in the form of an email address).
  3. Enter the Office 365 administrator username/password in the dialog box.
    Make sure that this account has permissions for both “Organization Management” and “Recipient Management”.
  4. Execute the following command to create a new Management Scope restricted to calendar resources (of the types “RoomMailbox” and “EquipmentMailbox”):
    New-ManagementScope -Name "ResourceMailboxes" -RecipientRestrictionFilter {RecipientTypeDetails -eq "RoomMailbox" -or RecipientTypeDetails -eq "EquipmentMailbox" -or UserPrincipalName -eq 'DedicatedUser'}
    Note: Replace the text DedicatedUser with the User Principal Name of the Dedicated Service Account User (this usually matches the Dedicated Service Account User's email address).
  5. Run the following command to create a relationship between the new Management role, the dedicated service account user, the and the new Management scope:
    New-ManagementRoleAssignment -Name "ResourceImpersonation" -Role ApplicationImpersonation -User "DedicatedUser" -CustomRecipientWriteScope "ResourceMailboxes"
    Note: Replace the text DedicatedUser with the email address of the Dedicated Service Account User.

Delegate rooms to the dedicated service account user

  1. Start a Windows PowerShell using the “Run as administrator” option.
    Note: This option is available when you right-click the Windows PowerShell app without launching it.
  2. Enter the following command:
    Connect-ExchangeOnline -UserPrincipalName <UPN>
    Note: Change the value of <UPN> to the Office 365 administrator's user principal name (usually appears in the form of an email address).
  3. Enter the Office 365 administrator username/password in the dialog box.
    Make sure that this account has permissions for both “Organization Management” and “Recipient Management”.
  4. Execute the following command to grant the dedicated service account user full delegate access to the calendar of a calendar resource:
    Add-MailboxPermission -Identity CalendarResource -User DedicatedUser -AccessRights FullAccess
    Note: Replace the text DedicatedUser, enter  with the email address of the Dedicated Service Account User.  Replace the text CalendarResource with the email address of a calendar resource.
  5. Execute the following command to grant the dedicated service account user full delegate access to the calendar of a calendar resource:
    Add-MailboxFolderPermission -Identity CalendarResource:\Calendar -User DedicatedUser -AccessRights Editor
    Note: Replace the text DedicatedUser with the email address of the Dedicated Service Account User.  Replace the text CalendarResource with the email address of a calendar resource (but leave the “:\Calendar” text in place; example: conferenceroom@contoso.com:\Calendar).
  6. Repeat steps 4-5 for each room’s calendar resource.
  7. Proceed to the next section to update the calendar resource settings using Windows PowerShell.

How to update the calendar resource settings using Windows PowerShell

For Zoom Rooms to display the calendar information and generate a one touch join button for Zoom meetings, you must update some calendar resource settings.

  1. Start a Windows PowerShell using the “Run as administrator” option.
    Note: This option is available when you right-click the Windows PowerShell app without launching it.
  2. Enter the following command:
    Connect-ExchangeOnline -UserPrincipalName <UPN>
    Note: Change the value of <UPN> to the Office 365 administrator's user principal name (usually appears in the form of an email address).
  3. Enter the Office 365 administrator username/password in the dialog box.
    Make sure that this account has permissions for both “Organization Management” and “Recipient Management”.
  4. Check the settings for the calendar resource by executing the following command:
    Get-CalendarProcessing -Identity CalendarResource | Format-List Identity,DeleteComments,DeleteSubject,AddOrganizerToSubject,RemovePrivateProperty,DeleteAttachments
    Note: Replace the text CalendarResource with the email address of a calendar resource.
  5. Note the data returned for the following values:
    "DeleteSubject", "AddOrganizerToSubject", "DeleteComments", and "RemovePrivateProperty"
    In most cases, these values are set to True.
    Identity : [domain].com/Users/CalendarResource
    DeleteSubject : True
    AddOrganizerToSubject : True
    DeleteComments : True
    RemovePrivateProperty : True
    DeleteAttachments : True
  6. Change the settings for the room with the following command:
    Set-CalendarProcessing -Identity CalendarResource -AddOrganizerToSubject $false -OrganizerInfo $true -DeleteComments $false -DeleteSubject $false -RemovePrivateProperty $false
    Notes: Replace the text CalendarResource with the email address of a calendar resource.
    • If you do not want to show the Calendar topic, change DeleteSubject $false to DeleteSubject $true
    • If you see an error such as “The operation couldn't be performed because object 'Room' couldn't be found on '[domain].onmicrosoft.com'.”, that means the scope of the role group that grants you permission to run the cmdlet does not include the user/room. Make sure you are logged in with an admin account, as required in Step 3.
    • If you see an error such as “Set-CalendarProcessing command not found”, make sure the administrator account you used to log in to PowerShell has permissions in “Organization Management” and “Recipient Management”.
  7. Validate the settings for the room after the change by executing the following command:
    Get-CalendarProcessing -Identity CalendarResource | Format-List identity,deletesubject,addorganizertosubject,DeleteComments,RemovePrivateProperty
    Note: Replace the text CalendarResource with the email address of a calendar resource.
    The following settings will be set:
    Identity : [domain].com/Users/CalendarResource
    DeleteSubject : False
    AddOrganizerToSubject : False
    DeleteComments : False
    RemovePrivateProperty : False
  8. Repeat Steps 4-7 for each calendar, changing only the CalendarResource in each command.
  9. Disconnect the session with the following command:
    Disconnect-ExchangeOnline
  10. Close Windows PowerShell.

How to add the Calendar Service to Zoom

Zoom recommends using a web browser in incognito or private browsing mode when integrating Zoom Calendars to Office 365. This will help prevent configuring the integration with an already signed-in Office 365 user.

  1. Sign in to the Zoom web portal as a Zoom Rooms administrator.
  2. In the navigation menu, click Room Management then Calendar Integration.
  3. Click Add Calendar Service.
    The Add a Calendar Service dialog will appear.
  4. Click Office 365.
  5. Configure the type of Office 365 service.
  6. Ensure that Authorize with OAuth 2.0 is checked. 
  7. By default, the calendar integration will use Microsoft Exchange Web Services (EWS). If all Zoom Rooms in the account are version 5.9.0 or higher, you may instead opt for Microsoft Graph API, but be advised that this precludes the use of App-level Impersonation; if you wish to use Graph API, you must use Full Delegate Access. If you would like to know more about these options see this documentation from Microsoft.
    Note: If necessary, enter a non-default EWS URL.

  8. Under Account Permission Type, select App-level Impersonation or Full Access Delegate depending on which permission setup you used above.
  9. Click Authorize.
    Note: If Office 365 users can consent to enterprise applications accessing company data on their behalf is disabled in Account Settings, this option will need to be enabled in the settings, or enabled for the Zoom app in Azure.
  10. At the Microsoft sign-in portal, login as the dedicated service account user to complete the calendar integration. Do not login as yourself or another administrator or end user.
  11. The Calendar Integration page shows the calendar service that you added.

Note: See Add a Zoom Room for information on configuring a calendar resource with a Zoom Room.