Overview
This article walks you through registering a Microsoft 365 app in Azure and entering its credentials in Horizon so that Horizon can read your technicians' Exchange calendar events for scheduling purposes.
Prerequisites
- Global Administrator or Application Administrator access to your Microsoft Azure portal
- A Microsoft 365 tenant with Exchange Online
- Administrator access to Horizon
Steps
Part 1: Register an Application in Azure
- Sign in to the Azure portal.
- Navigate to Azure Active Directory > App registrations and click New registration.
- Enter a name (e.g., Horizon Calendar Integration), leave the default account type, and click Register.
- On the app overview page, copy the Application (client) ID and the Directory (tenant) ID — you will need both.
Part 2: Add API Permissions
- In your app registration, go to API permissions > Add a permission.
- Select Microsoft Graph, then choose Application permissions (not Delegated).
- Search for and add User.Read.All and
Calendars.Read - Click Add permissions.
- Click Grant admin consent for [your organization] and confirm. The status should change to a green checkmark.
Part 3: Create a Client Secret
- In your app registration, go to Certificates & secrets > Client secrets and click New client secret.
- Enter a description (e.g., Horizon) and choose an expiry period.
- Click Add and immediately copy the Value — it is only shown once.
Confusingly, in the Azure App Registration, the actual "secret" is known as Value and is not the same as Secret ID. Secret ID is not relevant.
Part 4: Enter Credentials in Horizon
- In Horizon, go to Admin > Calendars > Configuration.
- Click Edit and set the provider to Microsoft 365.
- Enter the Application (Client) ID, Client Secret, and Directory (Tenant) ID from the steps above.
- Click Test Connection to verify, then Save.
Result
Once saved, Horizon will begin syncing your technicians' Exchange calendar events every 15 minutes. These events are used in scheduling to avoid booking conflicts with existing appointments.