Back to Overview

Microsoft Teams Integration

Auto-create Microsoft Teams meetings for every booked appointment. Requires a Microsoft 365 account with Teams.

Luka Breitig — Technical Product Builder & AI Developer
Luka Breitig

Technical Product Builder & AI Developer

What You Will Achieve

By the end of this guide, every confirmed booking will automatically create a Microsoft Teams meeting room and include the Teams join link in confirmation emails sent to both you and the attendee.

Prerequisites

A Microsoft Azure app configured with OUTLOOK_CLIENT_ID and OUTLOOK_CLIENT_SECRET — see the Microsoft Azure App Setup guide
OnlineMeetings.ReadWrite delegated permission added to your Azure app, with admin consent granted — this permission cannot be individually consented by a regular user
A Microsoft 365 Business or Enterprise account with Teams — personal Microsoft accounts (outlook.com, hotmail.com, live.com) cannot create Teams meetings via the API

Microsoft 365 Required — Personal Accounts Will Not Work

Teams meeting creation uses the Microsoft Graph API POST /me/onlineMeetings endpoint, which is only available to Microsoft 365 Business and Enterprise accounts. Personal Microsoft accounts (outlook.com, hotmail.com, live.com) are not supported regardless of whether they have access to Teams.

How It Works

When a booking is confirmed, Tymeslot calls the Microsoft Graph API (POST /me/onlineMeetings) on behalf of your connected Microsoft 365 account. Graph creates a Teams meeting and returns a join URL. Tymeslot stores that URL and includes it in the booking confirmation email and in the meeting detail view.

1 Verify Admin Consent for OnlineMeetings.ReadWrite

OnlineMeetings.ReadWrite requires admin consent — a regular user cannot grant it during the OAuth flow. Either you are the Azure AD admin, or your IT administrator must grant consent in the Azure portal before proceeding.

  1. Sign into the Azure portal as an administrator
  2. Go to App registrations → your Tymeslot app
  3. Click API permissions in the left sidebar
  4. Confirm OnlineMeetings.ReadWrite (Delegated) is listed with a green checkmark in the Status column — this checkmark indicates admin consent has been granted
  5. If the permission is listed but the checkmark is absent, click Grant admin consent for [your organisation] at the top of the permissions list
  6. If the permission is not listed at all, click Add a permissionMicrosoft GraphDelegated permissions → search for OnlineMeetings.ReadWrite → select it → Add permissions, then grant admin consent

Admin consent is mandatory

Without admin consent on OnlineMeetings.ReadWrite, meeting creation will fail silently. The OAuth flow will succeed but the API call to create the meeting will be rejected with a 403 error.

2 Connect Your Microsoft Account in Tymeslot

If you have not already connected your Outlook Calendar:

  1. Navigate to DashboardSettingsIntegrations
  2. Find the Outlook Calendar row and click Connect
  3. Sign in with your Microsoft 365 account — use your work account, not a personal Microsoft account
  4. Review and authorize the requested permissions, including OnlineMeetings.ReadWrite

Expected result: the Integrations page shows your Microsoft account with a connected status.

Teams does not need a separate connection step

Teams meeting creation uses the same Microsoft account connection as Outlook Calendar. Once your Microsoft 365 account is connected and admin consent is in place, Teams is available as a location option immediately.

3 Enable Teams on a Meeting Type

Microsoft Teams is enabled per meeting type. Repeat for each meeting type where you want automatic Teams meetings:

  1. Navigate to DashboardMeeting Types
  2. Click Edit on the meeting type you want to update
  3. Go to the Location tab
  4. Select Microsoft Teams from the location options
  5. Click Save

Expected result: the meeting type card now shows "Microsoft Teams" as the location. New bookings for this meeting type will have a Teams meeting created automatically on confirmation.

Microsoft Teams not listed as a location option?

If Microsoft Teams does not appear, your Microsoft account is not connected. Go to SettingsIntegrationsOutlook CalendarConnect and complete the OAuth flow with a Microsoft 365 account.

Attendee Experience

The booking confirmation email sent to attendees contains:

  • A Teams join link — clicking it opens the Teams meeting lobby in the browser or the Teams desktop app
  • A meeting ID for manual dial-in if needed

No Microsoft account required for attendees

Attendees join as guests — they do not need a Microsoft account or a Teams subscription. They open the join link in their browser and enter the meeting lobby.

Troubleshooting

Teams meeting creation fails silently — no join link in the email

The most common cause is missing admin consent on OnlineMeetings.ReadWrite. In the Azure portal, go to App registrations → your app → API permissions and confirm the green checkmark appears next to OnlineMeetings.ReadWrite. If it is absent, click Grant admin consent.

Error: "Meeting created but no join URL returned"

This occurs when the Microsoft 365 account does not have a Teams licence. Some Microsoft 365 plans include Exchange and OneDrive but not Teams. Confirm your account has a Teams licence assigned in the Microsoft 365 admin centre under UsersActive users → select the user → Licences and apps.

OAuth succeeds but Teams location option never appears

Disconnect and reconnect the Microsoft integration. During the OAuth flow, confirm you are signing in with a Microsoft 365 work account — not an outlook.com, hotmail.com, or live.com personal address. Personal accounts authenticate successfully but cannot use the online meetings endpoint.

Frequently Asked Questions

Teams meeting links aren't being generated — why?

The most common cause is a missing or unconsented OnlineMeetings.ReadWrite Microsoft Graph permission. Even though the OAuth flow completes successfully, the API call to create the meeting is rejected with a 403 error if admin consent has not been granted.

In the Azure portal go to App registrations → your app → API permissions and confirm a green checkmark appears next to OnlineMeetings.ReadWrite. If the checkmark is absent, click Grant admin consent for [your organisation].

I have a Microsoft 365 Business Basic plan — will Teams integration work?

Microsoft 365 Business Basic includes Teams, and the POST /me/onlineMeetings Graph API endpoint is available on Business Basic. However, some Microsoft 365 plans include Exchange and OneDrive but omit Teams entirely — if your account has no Teams licence assigned, meeting creation will succeed but return no join URL.

To check, go to the Microsoft 365 admin centre → UsersActive users → select your account → Licences and apps and confirm a Teams-enabled licence is assigned.

Do attendees need a Microsoft account to join the Teams meeting?

No. Teams allows guests to join without a Microsoft account. Attendees open the join link in any modern browser and enter the meeting lobby as a guest — no sign-in, no Teams subscription, and no app installation required (though the desktop app can be used if preferred).

Can I use Teams integration without Microsoft Outlook Calendar sync?

Yes. Teams meeting creation and Outlook Calendar sync are independent features that share the same Microsoft account connection. You can enable Teams as a meeting location without syncing your Outlook Calendar, and vice versa. Both features require the Microsoft OAuth connection to be completed with a Microsoft 365 work account, but neither depends on the other being active.

The Teams meeting link shows in the confirmation email but joining says 'meeting not found' — why?

This typically means the meeting was created under a Microsoft 365 account that is no longer active, or the connected account in Tymeslot has been disconnected and reconnected as a different Microsoft account. Teams meetings are tied to the specific account that created them — if that account changes, existing meeting links become invalid.

Confirm that the Microsoft account shown in Settings → Integrations is the same work account that will host the meetings. If you recently reconnected the integration with a different account, existing booking links will not work; only newly created bookings will generate valid links under the new account.

Verification Checklist

Book a test appointment using a meeting type with Microsoft Teams as the location, then confirm each of the following:
  • A Teams join URL appears under Location in DashboardMeetings → meeting detail
  • The booking confirmation email contains the same Teams join link
  • Opening the join URL in a browser loads the Teams meeting lobby

🔗 Related Articles

Read Google Meet Integration

Google Meet Integration

Auto-create Google Meet rooms for every booked meeting. Attendees receive the meeting link in their confirmation email.

Read MiroTalk Self-Hosted Video

MiroTalk Self-Hosted Video

Run fully self-hosted video meetings with MiroTalk P2P. No accounts, no subscriptions, no third-party video infrastructure.

Read Google Calendar Integration

Google Calendar Integration

Sync Tymeslot with Google Calendar. Availability checks, booking creation, and conflict detection — all automatic.