Skip to content

Teams on a personal Microsoft account saves the event without a link

Updated

TL;DR

When we asked Microsoft Graph for a Teams meeting on a personal Microsoft account (Outlook.com), the event was created without a meeting and without any error, so the person saw an invitation with no way to join. Check the calendar's allowedOnlineMeetingProviders before asking for Teams, and offer another meeting link on calendars that do not list teamsForBusiness.

What we saw

Creating an Outlook event with a Teams meeting takes two fields on the event: isOnlineMeeting: true and onlineMeetingProvider: "teamsForBusiness".

Observed on Outlook.com, 2026-10-26

On a personal Microsoft account, Graph accepted the request and created the event. It had no Teams meeting and no join link, and the response gave no error or warning.

On a Microsoft 365 work account, the same request creates the event with a Teams meeting and its join link.

Why it happens

Teams meetings created from a calendar belong to Teams for work or school. Microsoft's own guidance is to check what a calendar supports first: "Look for the allowedOnlineMeetingProviders and defaultOnlineMeetingProvider properties to verify if an Outlook calendar supports any online meeting providers" (Microsoft Graph). A personal account's calendar does not list teamsForBusiness, and Graph does not turn that into an error when you ask for it anyway.

What to do

  • Read the calendar first. GET /me/calendars/{id} (or /me/calendar) returns allowedOnlineMeetingProviders. Ask for Teams only when it includes teamsForBusiness.
  • Offer something else on calendars that do not: a Zoom meeting created on the host's Zoom account, with its link in the event.
  • Check the response anyway. After creating, read onlineMeeting.joinUrl. If it is missing when you asked for a meeting, treat the request as failed rather than sending an invitation nobody can join.

How Pyas handles it

Pyas checks that the calendar allows Teams before it sends anything. On a personal Microsoft account, a request for a Teams link is refused with an error that says why, so you can offer Zoom instead, rather than answering 201 with an event that has no link.

How to add a Google Meet, Teams or Zoom link to a calendar event with an APIOutlook.com changes an event's change key seconds after creating it