Inconsistent joinUrl when creating Microsoft Teams meetings via Graph API for personal accounts

Harsh Raj 0 Reputation points
2026-01-21T10:21:46.3066667+00:00

I am using Microsoft Graph API to create Microsoft Teams online meetings from my application.

I am observing inconsistent behavior with personal (free) Microsoft accounts:

  • For some personal accounts (e.g. @outlook.com), the meeting is created successfully and the response includes a valid joinUrl.
  • For other personal accounts, the API call succeeds but the joinUrl is missing or not generated.
  • Both accounts are personal/free Microsoft accounts (not Microsoft 365 work or school accounts).
  • Same API endpoint, same permissions, same code path.

This makes the behavior unpredictable and difficult to rely on in production.

My questions:

  1. Is creating Microsoft Teams meetings via Microsoft Graph API officially supported for personal Microsoft accounts?
  2. If not supported, is this inconsistent behavior expected?
  3. Is there any documented limitation or recommendation regarding personal vs work/school accounts for online meeting creation?

I would appreciate an official clarification so I can decide whether to restrict this feature to Microsoft 365 work/school accounts only.

Microsoft Teams | Development
Microsoft Teams | Development
Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Kudos-Ng 13,770 Reputation points Microsoft External Staff Moderator
    2026-01-21T11:53:30.5866667+00:00

    Hi Harsh Raj,

    Thank you for posting your question in the Microsoft Q&A forum. 

    Based on your observations and my follow‑up testing, there are two Microsoft Graph approaches related to creating meetings, and each has different support characteristics for account types:

    1) Create an online meeting directly (Cloud communications API)

    Personal Microsoft accounts are not supported for creating online meetings through this API. This is explicitly documented in the permissions/support matrix on the page above.

    2) Create a calendar event that has an online meeting associated

    Delegated access for personal accounts is supported for creating events, but per my observation turning the event into an online meeting is generally not supported for personal accounts. In practice, Graph often ignores isOnlineMeeting/onlineMeetingProvider for consumer calendars.

    But there is an undocumented behavior discussed in this thread: https://learn.microsoft.com/en-us/answers/questions/5645130/why-do-personal-microsoft-accounts-generate-a-team

    • If you omit onlineMeetingProvider while setting "isOnlineMeeting": true for a personal account, the backend may sometimes generate a Teams join URL for the created event.
    • I reproduced the same scenario with Graph Explorer and confirmed that the resulting event displayed a valid online meeting in the consumer (personal) Teams calendar.

    However, I could not find any official documentation that commits to or explains this behavior for personal accounts. Therefore, it should be treated as non‑contractual and subject to change without notice.

    I hope this clarifies the current state and helps you move forward.


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment". 

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    1 person found this answer helpful.

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.