Velocity – Microsoft Room Scheduling (Graph API)
Step-by-step guide to connecting Velocity room scheduling with Microsoft Office 365 using the Microsoft Graph API. This is the current supported method as of Velocity v2.10.2.
Overview
This guide walks through connecting Velocity to Microsoft 365 using the Microsoft Graph API. Setup happens in two parts: first in Microsoft Azure, then in Velocity.
Requirements
Before starting, make sure you have all of the following available:
- Velocity v2.10.2 or later on an AT-VGW-HW, AT-VGW-SW, or AT-VTPG-1000VL
- A Velocity touch panel — AT-VTP-550, AT-VSP-800, AT-VTP-800, AT-VTP-700VL AT-VTP-1000VL, or AT-VTPG-1000VL
- Microsoft 365 with Exchange Online enabled
- Access to the Microsoft Azure portal at portal.azure.com with Global Administrator or Application Administrator permissions
- The room resource email addresses for each meeting room in your Microsoft 365 tenant — your IT admin can provide these
Azure Setup – Step 1: Register the Application
You'll create a new app registration in Azure — this is how Velocity gets secure access to your room calendars.
- Open a browser and go to portal.azure.com. Sign in with your Microsoft 365 admin account.
- In the search bar at the top of the page, type App registrations and select it from the results.
- Click + New registration near the top of the page.
- In the Name field, enter a name for this app — for example: VelocityCalendar. This is just a label so you can find it later.
- Under Supported account types, leave the default selection: Single tenant only.
- Leave the Redirect URI field blank for now — you will set that up in the next step.
- Click Register. The app overview page will open.
-
On the app overview page,
copy and save the following — you will
need it when setting up Velocity:
- Application (client) ID
Azure Setup – Step 2: Add Redirect URIs
Redirect URIs tell Microsoft where to send the authentication response after signing in. Two are required for Velocity — enter both exactly as shown below.
- From the app overview page, select Authentication from the left-side menu.
- Under Platform configurations, click + Add a platform.
- Select Mobile and desktop applications.
-
In the list of pre-built URIs, check the box next to:
https://login.microsoftonline.com/common/oauth2/nativeclient
-
In the empty text field below the checkboxes, type the following
exactly:
https://atlona.com
- Click Configure to save. Both URIs will now appear in the list.
Azure Setup – Step 3: Add Calendar Permission & Grant Consent
Now you'll tell Azure what Velocity is allowed to access — specifically, the ability to read and write room calendar data. An administrator must approve this permission before it will work.
Add the permission:- Select API permissions from the left-side menu.
- Click + Add a permission.
- Select Microsoft Graph from the panel that opens.
- Select Application permissions. (Not "Delegated permissions" — that will not work.)
-
In the search box, type
Calendars.ReadWrite. - Expand the Calendars section and check the box next to Calendars.ReadWrite.
- Click Add permissions.
- Back on the API permissions page, click Grant admin consent for [Your Organization].
- Click Yes to confirm.
- The Calendars.ReadWrite permission should now show a green checkmark and the word Granted in the Status column.
Azure Setup – Step 4: Create a Client Secret
A client secret acts as a password that Velocity uses to authenticate with Microsoft. You'll create one here and paste it into Velocity during setup.
- Select Certificates & secrets from the left-side menu.
- Under Client secrets, click + New client secret.
- In the Description field, enter a name such as VelocityAuth.
- Under Expires, choose how long this secret should last. The default is 6 months. A longer duration can be selected if preferred.
- Click Add.
- A new entry will appear. Copy the value in the "Value" column immediately — store it somewhere safe like a notepad.
- ✅ Application (client) ID — from Step 1
- ✅ Client Secret Value — from this step
gif
Velocity Setup – Create the Calendar Integration
This section covers only the Microsoft Graph API integration steps. For full Velocity setup instructions including adding sites, buildings, rooms, and touch panels, refer to the Velocity Microsoft Room Scheduling Integration Guide.
Part A – Create the Integration
- Open a browser and navigate to the Velocity IP address on your network. Log in.
- Click the ≡ menu icon in the top left corner.
- Select Scheduling, then select Manage.
- Click the + button in the bottom right corner to add a new integration.
- The Type field will already be set to Office 365 (Microsoft Graph) — leave it as is.
- In the Alias field, enter a friendly name for this integration, e.g. Office 365 Rooms (optional but recommended).
- In the Client ID field, paste the Application (client) ID you copied from Azure.
- Click Create Calendar Integration. The page will expand with additional fields.
Part B – Complete the Integration Setup
- In the Client Secret field, paste the client secret value you copied from Azure.
- Leave the Use certificate and Scope to specific mailboxes toggles off — these are not needed for most setups.
- Leave Permission Level set to Read/Write (Calendars.ReadWrite).
- In the Tenant Domain or ID (GUID) field, enter your organization's Microsoft domain (e.g. yourcompany.com).
-
Click Admin Consent. A new browser page will
open asking for admin approval.
- If you are the Microsoft 365 admin, approve the consent on that page.
- If you are not the admin, copy the URL of the page that opens and send it to your Microsoft 365 admin to approve. You may need to click Admin Consent a second time if the page does not open on the first click.
- Once consent has been approved, click Check Consent to verify. The status should update to confirmed.
-
Under Calendar Resources, click the
+ button and enter the Microsoft 365 email address
for each room (e.g.
conferenceroom1@yourcompany.com). Select the matching Velocity room from the dropdown next to it. Repeat for all rooms. - Click Save Changes. Velocity will begin syncing with the room calendars.
Troubleshooting
- Calendars not syncing / "Waiting for Approval": Admin consent has not been granted. Go to API permissions in your Azure app and confirm a green checkmark and "Granted" status is showing for Calendars.ReadWrite.
- Sync suddenly stopped working: The client secret has likely expired. Create a new one in Certificates & secrets in Azure, then update the value in Velocity under Scheduling → Manage.
- Room not showing correct data: Verify the resource email in Velocity exactly matches the Microsoft 365 room email — even a small typo will prevent sync.
- "Insufficient privileges" error in Azure: Your account doesn't have the required admin rights. Contact your Microsoft 365 Global Administrator.
- Wrong permission type: Confirm Application permissions was selected (not Delegated) when adding Calendars.ReadWrite.
-
Redirect URI / authentication error: Confirm
both URIs are present under
Mobile and desktop applications in Azure Authentication:
-
https://login.microsoftonline.com/common/oauth2/nativeclient -
https://atlona.com
-