Skip to main content

Microsoft Entra ID App Registration

For Dime.Scheduler to reach your Microsoft 365 calendar data, the administrator grants it access through an application registration in Microsoft Entra ID. A registration defines exactly what an application may do, so grant the least-permissive set that works and nothing more.

You can create the registration two ways: by hand in the Azure portal, or with a PowerShell script. Either way, you'll end up with three values to paste into the Exchange setup page:

  • the Entra ID tenant id
  • the app registration client id
  • the app registration client secret
TL;DR

Create an Entra ID app registration with the required API application permissions, then copy the tenant id, client id, and client secret into Dime.Scheduler's Exchange configuration page.

Required API application permissions:

  • Calendars.Read/Write
  • MailBoxSettings.Read/Write
  • User.Read.All

A common mistake is creating delegated permissions instead of application permissions. Create application permissions, and grant admin consent.

Option 1: create the app manually

Register a new application

Sign in to the Azure portal, making sure you're on the right account and subscription. Go to the Microsoft Entra ID service, open the Manage submenu, and click App registrations.

Microsoft Entra ID

Click New registration and fill in:

  • Name: e.g. Dime.Scheduler
  • Supported account types: Accounts in this organizational directory only
  • Redirect URI: select Web, then enter https://app.dimescheduler.com/signin-microsoft

Add permissions

  • On the app's Overview page, select API permissions.
  • Click Add a permission and add:
    • Calendars.Read/Write
    • MailBoxSettings.Read/Write
    • User.Read.All
  • Grant admin consent.

Get the client id and secret

The client id is on the app's Overview page:

Microsoft Entra ID Client ID

Create the client secret under Certificates & secrets:

Microsoft Entra ID Client ID

Secrets expire, so either pick a far-off expiry date or update the value in Dime.Scheduler before it lapses.

Option 2: create the app with a script

Open PowerShell as administrator and install the script from the PowerShell Gallery:

Install-Script -Name DimeScheduler.InstallExchangeApp

Move into the script's folder:

cd (Get-InstalledScript -Name "DimeScheduler.InstallExchangeApp").InstalledLocation

You'll need your Azure tenant ID and tenant name (Microsoft's guide to finding them). Then run:

.\DimeScheduler.InstallExchangeApp.ps1 -tenantId MyAzureTenantId -tenantName 'MyAzureTenantName'

The script creates the app registration and a client secret, adds the required permissions (Calendars.Read/Write, MailBoxSettings.Read/Write, User.Read.All), and grants admin consent. It prints the client id and client secret at the end - copy the secret right away, or you'll have to generate a new one.