Skip to content

Instantly share code, notes, and snippets.

@Fortyseven
Created August 14, 2025 01:30
Show Gist options
  • Save Fortyseven/9f50cd3c3d851c5651e55bd9ed447264 to your computer and use it in GitHub Desktop.
Save Fortyseven/9f50cd3c3d851c5651e55bd9ed447264 to your computer and use it in GitHub Desktop.

Microsoft Teams API: Programmatically Creating Meetings (2025)

Overview

This document summarizes the latest, authoritative information about programmatically creating Microsoft Teams meetings via API, including limitations and code samples.1


1. Microsoft Graph APIs for Teams Meetings

Microsoft offers two main API sets for creating/joining Teams meetings:

A. Calendar API (event resource)

  • Creates an Outlook calendar event with a Teams meeting link.2
  • Use the /me/events endpoint with properties:
    • "isOnlineMeeting": true
    • "onlineMeetingProvider": "teamsForBusiness"
  • Best for: When you want a meeting that appears in the user's Outlook calendar and provides a Teams join link.2
  • Limitations: For personal Microsoft accounts, this does NOT create a Teams meeting link (see below).3

B. Cloud Communications API (onlineMeeting resource)

  • Creates a Teams meeting directly (not tied to a calendar event).[^^4]
  • Use the /me/onlineMeetings endpoint.4
  • Best for: Richer integration, more control, not tied to Outlook calendar.4
  • Limitations: Only works for work/school (Azure AD) accounts, NOT personal Microsoft accounts.5

2. Personal vs. Work/School Accounts

Work/School (Azure AD) accounts:

  • Both APIs work as described above.6
  • You can create, update, and delete Teams meetings programmatically.6

Personal Microsoft accounts:

  • You CANNOT create Teams meetings programmatically via public APIs.35
  • The Calendar API will create an event, but the onlineMeeting field will be null and no Teams link is generated.3
  • The Cloud Communications API does not support personal accounts at all.5
  • There is currently no workaround and no plans to support this (as of 2025).7
  • There is currently no workaround and no plans to support this (as of 2025).

3. Key API Endpoints and Docs


4. Other Notes

  • For work/school accounts, you can use either API depending on your needs (calendar integration vs. direct meeting creation).[^^8]
  • For personal accounts, the only online meeting provider available is skypeForConsumer, and Skype is being retired, so there may be no online meeting links at all for personal accounts soon.9
  • The Teams app itself can create meetings for personal accounts, but this is not exposed via public APIs.7

5. Example: Create a Teams Meeting via Microsoft Graph (Work/School Account)

Using the Calendar API2

POST https://graph.microsoft.com/v1.0/me/events
Content-Type: application/json
Authorization: Bearer {token}

{
  "subject": "API Created Teams Meeting",
  "start": {
    "dateTime": "2025-08-13T14:00:00",
    "timeZone": "Pacific Standard Time"
  },
  "end": {
    "dateTime": "2025-08-13T15:00:00",
    "timeZone": "Pacific Standard Time"
  },
  "isOnlineMeeting": true,
  "onlineMeetingProvider": "teamsForBusiness",
  "attendees": [
    {
      "emailAddress": {
        "address": "[email protected]",
        "name": "User Name"
      },
      "type": "required"
    }
  ]
}

Using the Cloud Communications API

POST https://graph.microsoft.com/v1.0/me/onlineMeetings
Content-Type: application/json
Authorization: Bearer {token}

{
  "startDateTime": "2025-08-13T14:00:00Z",
  "endDateTime": "2025-08-13T15:00:00Z",
  "subject": "API Created Teams Meeting"
}

4


6. References


7. Summary

  • Work/school accounts: Full API support for creating Teams meetings.6
  • Personal accounts: No API support for Teams meetings; only Skype (being retired) is available.359
  • No public API workaround for personal accounts.7
  • Always check the latest Microsoft documentation for updates.8

Footnotes

Footnotes

  1. Microsoft Graph documentation overview: https://learn.microsoft.com/en-us/graph/overview

  2. Calendar API for Teams meetings: https://learn.microsoft.com/en-us/graph/api/user-post-events#example-4-create-and-enable-an-event-as-an-online-meeting 2 3 4 5

  3. Microsoft Graph API limitations for personal accounts: https://learn.microsoft.com/en-us/graph/api/resources/event?tabs=http#online-meeting-properties 2 3 4

  4. Cloud Communications API for Teams meetings: https://learn.microsoft.com/en-us/graph/api/application-post-onlinemeetings 2 3 4 5

  5. Cloud Communications API account requirements: https://learn.microsoft.com/en-us/graph/api/resources/onlinemeeting?tabs=http#permissions 2 3 4

  6. Microsoft Graph: Online meeting API support for work/school accounts: https://learn.microsoft.com/en-us/graph/choose-online-meeting-api 2 3

  7. Microsoft Teams API limitations for personal accounts (Microsoft Q&A, official responses): https://learn.microsoft.com/en-us/answers/questions/1189822/how-to-create-microsoft-teams-meeting-using-graph 2 3

  8. API comparison and decision guide: https://learn.microsoft.com/en-us/graph/choose-online-meeting-api 2

  9. Skype for Consumer deprecation: https://learn.microsoft.com/en-us/skypeforbusiness/deprecation 2

  10. Microsoft Graph permissions reference: https://learn.microsoft.com/en-us/graph/permissions-reference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment