Tymeslot’s Microsoft integration uses one Azure AD app registration to cover both Outlook Calendar sync and Microsoft Teams video room creation. You register the app once, configure two redirect URIs, and both integrations become available to your users. The sameDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Tymeslot/tymeslot/llms.txt
Use this file to discover all available pages before exploring further.
OUTLOOK_CLIENT_ID and OUTLOOK_CLIENT_SECRET environment variables power both features.
What this integration provides
- Outlook Calendar two-way sync — Tymeslot reads your Outlook/Office 365 calendar to calculate availability and writes confirmed bookings back as calendar events with
.icsattachments. - Microsoft Teams meeting rooms — When a booking is confirmed on an event type configured for Teams, Tymeslot creates a Teams meeting and embeds the join URL in the calendar event and confirmation email.
- Microsoft Graph real-time subscriptions — With
WEBHOOK_BASE_URLconfigured, Tymeslot registers Graph change notifications so calendar changes appear immediately rather than on a 15-minute polling cycle.
Prerequisites
- A Microsoft Azure account (personal or organisational)
- Access to Microsoft Entra ID (formerly Azure Active Directory) in the Azure Portal
- A domain with HTTPS (required for the OAuth redirect URIs and webhook subscriptions)
Register the Azure AD app
Open App registrations
In the Azure Portal, navigate to Microsoft Entra ID → App registrations and click New registration.
Configure the application
Fill in the registration form:
- Name:
Tymeslot(or any label you prefer) - Supported account types: Accounts in any organizational directory (Any Microsoft Entra ID tenant – Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)
Add both redirect URIs
In your new app registration, go to Authentication → Add a platform → Web.Add both of the following redirect URIs. Both are required — the first is for Outlook Calendar, the second for Teams video:Replace
your-domain.com with your actual Tymeslot hostname. The URIs must be exact matches — no trailing slashes.Under Implicit grant and hybrid flows, ensure ID tokens is checked.Click Save.Add Microsoft Graph API permissions
Go to API permissions → Add a permission → Microsoft Graph → Delegated permissions.Add all of the following:
Click Add permissions.If you are deploying for an organisation and have the required Azure AD admin role, click Grant admin consent for [your tenant] to pre-approve the permissions for all users in the directory. This step is optional for personal Microsoft accounts.
| Permission | Purpose |
|---|---|
Calendars.ReadWrite | Read and write to user calendars |
User.Read | Sign in and read user profile |
offline_access | Maintain access when the user is not present |
openid | Sign users in |
profile | View users’ basic profile |
Create a client secret
Go to Certificates & secrets → Client secrets → New client secret.
- Description:
Tymeslot Production(or any label) - Expires: 24 months is a reasonable choice — set a calendar reminder to rotate it before expiry
Copy the client secret value immediately
The Value column in the secrets table shows the secret in full only once. Copy it now before navigating away — this is your
OUTLOOK_CLIENT_SECRET. After leaving this page, Azure only shows a masked version.Copy the Application (client) ID
Go to Overview. Copy the Application (client) ID — this is your
OUTLOOK_CLIENT_ID.Environment variable reference
| Variable | Required | Description |
|---|---|---|
OUTLOOK_CLIENT_ID | Yes | Application (client) ID from Azure App Registration |
OUTLOOK_CLIENT_SECRET | Yes | Client secret Value from Azure App Registration |
OUTLOOK_STATE_SECRET | Yes | Self-generated random string for CSRF protection |
WEBHOOK_BASE_URL | No | Public HTTPS base URL for Microsoft Graph real-time subscriptions |
Real-time calendar push notifications
WithoutWEBHOOK_BASE_URL, Tymeslot polls Outlook Calendar every 15 minutes via a fallback sweep. For real-time sync, set WEBHOOK_BASE_URL to your Tymeslot instance’s public HTTPS base URL:
WEBHOOK_BASE_URL unset on localhost or private network deployments.
Connecting the integration
Once the environment variables are in place, users connect Outlook Calendar and Microsoft Teams from Dashboard → Integrations. Each user authorises their own Microsoft account independently — the app credentials are shared across all users of the instance, but each user’s tokens are stored and encrypted separately.Client secret rotation
Azure client secrets expire. When a secret expires, all users’ Outlook Calendar and Teams integrations will fail with authentication errors. Before the expiry date:- Generate a new client secret under Certificates & secrets → New client secret.
- Copy the new Value immediately.
- Update
OUTLOOK_CLIENT_SECRETin your.envand restart Tymeslot. - Delete the old secret from the Azure portal.