Microsoft Outlook & Microsoft Teams
LockMyCal natively supports synchronization with Microsoft 365 / Office 365 calendars, Exchange Online business accounts and personal Outlook.com accounts. The integration also includes the option to generate video conference rooms for Microsoft Teams automatically.
1. Registering the application in the Microsoft Entra ID (Azure) portal
- Sign in to Microsoft Entra ID (Azure Portal).
- In the left menu, find Microsoft Entra ID -> App registrations -> click + New registration.
- Fill in the form:
- Name:
LockMyCal Calendar Integration - Supported account types: Choose Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox) to support both business M365 and personal Outlook.com accounts.
- Redirect URI (optional): Choose Web as the platform and enter:
https://calendar.yourdomain.com/auth/outlook/calendar/callback
- Name:
- After registration, add further redirect URIs under Authentication:
https://calendar.yourdomain.com/auth/teams/video/callback(Microsoft Teams video calls)https://calendar.yourdomain.com/auth/microsoft/callback(optional – signing in with a Microsoft account)
- Click Register.
2. Creating a Client Secret
- In the detail of the newly created application, go to Certificates & secrets in the left menu.
- In the Client secrets tab, click + New client secret.
- Enter a description (e.g.
LockMyCal Production) and choose a validity (e.g. 24 months). - Important: Copy the value in the Value column immediately (not the Secret ID). Once you leave the page, the value is no longer shown.
3. Setting API permissions (Microsoft Graph)
- In the left menu, go to API permissions -> + Add a permission -> Microsoft Graph -> Delegated permissions.
- Search for and tick the following permissions:
Calendars.ReadWrite(reading and writing calendar events)User.Read(reading the user's basic profile)offline_access(obtaining a refresh token for background operation)openid,profile,email
- Click Add permissions.
4. Configuration in LockMyCal
Add the obtained ID and Secret to your .env file:
OUTLOOK_CLIENT_ID=insert_application_client_id_from_the_azure_overview
OUTLOOK_CLIENT_SECRET=insert_the_copied_client_secret_value
OUTLOOK_STATE_SECRET=random_string # openssl rand -base64 32
# Optionally sign in with a Microsoft account (uses the same application):
ENABLE_MICROSOFT_AUTH=true
Restart the application (docker compose up -d). Now sign in to the LockMyCal dashboard, go to Integrations → Calendars → Connect calendar and choose Outlook.
Tip
Do you have a company Exchange server (on-premise) instead of Microsoft 365? Use the guide Microsoft Exchange (EWS).