Configure Exchange Settings for Calendar Interoperability
Zoho Calendar users can look up the availability status of the Exchange users once the setup is done in the Exchange server. You can configure the setup using the Exchange Web Services (EWS) and Exchange Role Account.
Set up Exchange users
While setting up the availability of Exchange users for Zoho Calendar users, the following points have to be noted:
- The Exchange users should have an Exchange account with a dedicated mailbox.
- The Exchange users should not have a Zoho account. If they own a Zoho account, Zoho Calendar for the account should be disabled.
- If the Exchange user owns a Zoho account, the domain name of the Zoho account should not match the domain name of your organization.
Note:
- By default, your calendar interoperability will be enabled for looking up the free/busy status of the users.
- After configuring the Exchange role account, execute the PowerShell command in Exchange Management Shell to set up org-wide Free/Busy for the role account in Exchange.
Authorize Internet Connectivity for Exchange
An Internet connection should be established so that Zoho Calendar can communicate with the Exchange server. This connection requires an SSL certificate.
For more details on SSL certificates, check the Microsoft website:
No changes are required if you're using Exchange Online (Microsoft 365), as it can accept connections from the internet by default.
Create an Exchange role account
After establishing the internet connection, you need to create an Exchange role account. Using this account, Zoho Calendar will communicate with the Exchange server and get the availability status.
The following conditions should be checked for while creating an Exchange role account:
- The Exchange role account should be a low-key account without a dedicated mailbox.
- For Zoho Calendar users to view the availability of Exchange users, the events should be shared with the Exchange role account. If not shared, it will not show up in the availability status.
You can create an Exchange role account by following these steps:
If you have an existing Exchange Account being used for availability lookups, you can use the same account to set up availability address space in the Exchange server.
Note:
It is recommended to turn off password expiration for the role account to avoid service disruption.
Setup OAuth 2.0 Authentication
You need to set up OAuth 2.0 authentication if you're using Exchange Online (Microsoft 365). Skip this step if you're using other versions of Exchange.
Set up Microsoft Azure portal
- Register Calendar Interoperability in the Azure portal. Know more about Microsoft's Register an Application option.
- The values of Supported account types and Redirect URI fields can be set to default when you register an application.
- Copy and Save the Client ID as you'll need it when you set up OAuth 2.0 Authentication in Zoho.
- The client ID will not be visible once you leave this page.
- You need to provide a Client Secret to set up the application credentials. Know more about adding a client secret.
- You need to periodically reconfigure the client secret as the free/ busy lookup from Zoho Calendar to Exchange will stop working if the client secret expires.
- Click API permissions > APIs my organization uses and search for Office 365 Exchange Online, in the search box.
- Click Office 365 Exchange Online > Application permissions and check the full_access_as_app box. Learn more about Microsoft's Add Permissions to access your web API option.
- To include the resource availability for the interop users,
In addition to the permissions already added, Click on +Add a permission in the API permissions and choose Microsoft Graph > Application permissions. Enable the below permissions by selecting the respective checkboxes.- User.Read.All
- Calendars.ReadWrite
- Place.Read.All
- Click Grant admin consent.
Find and Save the OAuth 2.0 token endpoint
- You can follow the steps given in this link to discover endpoints.
- Save the endpoint as it would be required to set up OAuth 2.0 authentication in Zoho.
Configure Exchange settings in Admin Console
Once you have created your Exchange role account, you need to configure your setup in Zoho Mail Admin Console for Zoho Calendar users to check the availability of Exchange users.
- Log in to Zoho Mail Admin Console using your primary domain.
- Navigate to Other App Settings > Calendar > Interoperability.
- Go to the Exchange Settings tab.
- In the Exchange settings tab, enter the Exchange Web Services (EWS) URL for your Exchange server. Check here to know more about Exchange Web Services (EWS) URL.
- Enter your Exchange role account address and password under the Exchange user credential.
- Choose Basic authentication (for on-premise Exchange server) or OAuth 2.0 (for Exchange Online/ Microsoft 365) from the Authentication Type drop-down.
- If you choose the Basic Authentication (on-premises Exchange Server) option, you need to provide the Exchange Password.
- If you choose the OAuth 2.0 client credentials (Exchange Online or Microsoft 365) option, follow the step given below:
- In the Token endpoint URL field, provide the endpoint URL fetched from the Azure portal. Learn more.
- In the Application ID field, provide the application ID fetched during application registration.
- In the Client Secret field, provide the client secret assigned to your application during registration.
If you want to include resources availability- enable the check box 'Include Rooms'
If a new room is added, ensure it is also added to a Rooms List. The room will not be listed unless it is added to a Rooms List in Office365. To learn more about adding new rooms to the rooms list in Office 365, click here.
- Click Update
How to find your EWS URL?
The EWS URL is the same as the URL for the Exchange server where you created the role accounts.
Examples:
- https://Exchange server hostname/ews/exchange.asmx (EWS server)
- https://outlook.office365.com/ews/exchange.asmx (Exchange Online/ Microsoft 365)
Open Exchange PowerShell and provide the following command to verify the URL for an on-premises Exchange server:
Get-WebServicesVirtualDirectory | Select name, *url* | fl
If multiple URLs are returned as result, use the result returned for ExternalUrl.
When you have multiple Exchange servers for the same domain in case of a hybrid Exchange environment and you want to view the free/ busy details of Exchange users in your entire environment, use the URL from a server that can access free/ busy details for all Exchange users.