Back to Overview

Microsoft Teams Integration

Auto-create Microsoft Teams meetings for every booked appointment, on the Microsoft account you connect.

Luka Breitig, Software Engineer & AI Developer
Luka Breitig

Updated 23 September 2026

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
  • The Microsoft Graph permissions Tymeslot requests when you connect Teams, all delegated: Calendars.ReadWrite and User.Read , plus offline_access so the connection survives without you signing in again. Nothing else is requested
  • A Microsoft account that can host a Teams meeting. Tymeslot asks Microsoft to attach one to every booking it creates; an account that cannot host meetings still takes bookings, only without a join link

Why OnlineMeetings.ReadWrite is not on that list

Tymeslot creates a Teams meeting as a calendar event with online meeting turned on, not through Microsoft's POST /me/onlineMeetings endpoint. That endpoint is the one that needs OnlineMeetings.ReadWrite and, in most tenants, an administrator to consent to it. Tymeslot never calls it, so the permission is neither requested nor required: adding it to your Azure app only grants access that goes unused.

How It Works

When a booking is confirmed, Tymeslot creates a calendar event on the connected Microsoft account (POST /me/events) with isOnlineMeeting turned on. Microsoft attaches a Teams meeting to that event and returns its join URL, which Tymeslot stores and includes in the booking confirmation email and in the meeting detail view. For a work or school account, Tymeslot names teamsForBusiness as the meeting provider; for a personal Microsoft account it leaves the provider unset and takes whatever Microsoft attaches.

The Teams meeting is that calendar event, so the meeting also appears in the connected account's own calendar. If Microsoft creates the event but attaches no Teams meeting, which is what happens when the account cannot host one, Tymeslot deletes the event again rather than leaving an empty placeholder behind. The booking itself is unaffected: it stays confirmed, and the confirmation email goes out without a join link.

1 Check Whether Your Tenant Requires Admin Consent

Every permission Tymeslot requests can be granted by the person signing in, so in most tenants no administrator is involved: you approve them on Microsoft's consent screen in step 2. Consent becomes an administrator's job only where the organisation has turned off user consent for third-party apps, and you will know because sign-in stops on a "Need admin approval" screen.

If that happens, your IT administrator grants consent once, for everyone:

  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 Calendars.ReadWrite and User.Read are listed as Delegated permissions
  5. Click Grant admin consent for [your organisation] at the top of the permissions list. A green tick appears next to each permission

Personal Microsoft accounts skip this step

An outlook.com, hotmail.com or live.com account belongs to no tenant and has no administrator, so the consent is yours to give on the sign-in screen.

2 Connect Microsoft Teams in Tymeslot

Microsoft Teams is connected as a video integration of its own, separate from any Outlook Calendar connection:

  1. Go to Dashboard → Integrations → Video.
  2. Click Connect a video provider and choose Microsoft Teams under Hosted services.
  3. Sign in with the Microsoft account that should host the meetings.
  4. Review and approve the permissions Microsoft lists: access to your calendars, your basic profile, and staying signed in.

Expected result: Microsoft Teams appears in your list of video integrations, showing your Microsoft account.

Teams and Outlook Calendar are two connections, one Azure app

Microsoft Teams and Outlook Calendar sign in separately and appear as separate integrations, on the Video tab and the Calendars tab respectively. They do share the Azure app your operator registers, which is why both are configured from the same OUTLOOK_CLIENT_ID and OUTLOOK_CLIENT_SECRET.

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. Go to Dashboard → Meeting Types and pick a meeting type.
  2. On the Location & Calendar tab, click Add location, or Edit on an existing one, and set Type to Video call.
  3. Under Video providers, tick your Microsoft Teams integration.
  4. Click Save location.

Expected result: new bookings that use this location have a Teams meeting created automatically on confirmation.

You can tick several providers on the same location, for example Microsoft Teams alongside Google Meet or Zoom. The person booking then chooses which one the room is created on. See Meeting Locations for everything a meeting type's locations can do.

Microsoft Teams not listed under Video providers?

If Microsoft Teams does not appear under Video providers, Microsoft Teams is not connected or not active. Go to Dashboard → Integrations → Video, click Connect a video provider, choose Microsoft Teams and complete the sign-in.

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

Tymeslot keeps the join link Microsoft returns for the event and nothing else, so the email carries no dial-in number and no conference ID. Anyone who needs to dial in can open the meeting in Teams, which shows whatever dial-in details the hosting account has.

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

The booking is confirmed but there is no Teams link in the email

Microsoft created the calendar event without attaching a Teams meeting, so Tymeslot removed the event again and announced the booking without a link. This is an account problem rather than a permissions one: confirm the connected account has a Teams licence in the Microsoft 365 admin centre under Users → Active users → select the user → Licences and apps, and that your organisation has not blocked Teams meeting creation for it. Once that is sorted, new bookings get a link; bookings already confirmed without one stay as they are.

Sign-in stops on a "Need admin approval" screen

Your organisation requires an administrator to consent to third-party apps. Ask your IT administrator to grant consent for Calendars.ReadWrite and User.Read as described in step 1, then connect again.

Sign-in succeeds but Microsoft Teams never appears as a video provider

The integration is not showing as connected. Disconnect the Microsoft Teams video integration, connect it again, and confirm it reports a connected status before you edit the meeting type. If the dashboard shows a "Reconnect required" badge, Microsoft has rejected the stored credentials and reconnecting is what clears it.

❓ Frequently Asked Questions

Teams meeting links aren't being generated — why?

Tymeslot records a join link only if Microsoft attaches a Teams meeting to the calendar event it creates. Where it does not, the booking is still confirmed, just without a link. The usual cause is the connected account itself: check that it has a Teams licence in the Microsoft 365 admin centre under Users → Active users → select the user → Licences and apps.

A missing OnlineMeetings.ReadWrite grant is not the cause. Tymeslot neither requests that permission nor calls the endpoint that needs it.

Do I need to add OnlineMeetings.ReadWrite to my Azure app?

No. That permission covers Microsoft's online meetings endpoint, which Tymeslot does not use: it creates Teams meetings as calendar events, so Calendars.ReadWrite is the permission that matters. Adding OnlineMeetings.ReadWrite changes nothing about how Tymeslot behaves, and in most tenants it drags an administrator into a connection that would otherwise need nobody.

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

Yes, provided the account has both a mailbox and a Teams licence. Tymeslot creates the Teams meeting as an event on the account's calendar, so it needs the mailbox to hold the event and Teams to attach the meeting to it. Business Basic includes both.

Some Microsoft 365 plans include Exchange and OneDrive but omit Teams. On one of those, the event is created with no Teams meeting attached, Tymeslot removes it again, and the booking is confirmed without a join link. To check, go to the Microsoft 365 admin centre → Users → Active 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. Microsoft Teams is connected on the Video tab and Outlook Calendar on the Calendars tab, and each is its own connection, signed in separately and stored separately. You can use Teams as a meeting location without syncing your Outlook Calendar, and vice versa; 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 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 Dashboard → Integrations → Video is the same 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 on a meeting type with a Microsoft Teams video call location (choosing Microsoft Teams if you are offered a choice), then confirm each of the following:
  • On Dashboard → Meetings, the booking shows a Join Meeting button that links to the Teams meeting
  • 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 confirmed booking via the Calendar API. Attendees receive the link by email and can join without a Google account.

Read Zoom Integration

Zoom Integration

Auto-create Zoom meetings for every confirmed booking. Works with Zoom Pro, Business, and Enterprise accounts via OAuth — free Zoom accounts cannot create meetings programmatically.

Read MiroTalk Self-Hosted Video

MiroTalk Self-Hosted Video

Host video meetings with MiroTalk P2P — fully self-hosted, no subscriptions, peer-to-peer bandwidth. Covers Docker setup, reverse proxy, and TURN server config.