An API that connects multiple Microsoft services, enabling data access and automation across platforms
Microsoft Graph: Creating event with isOnlineMeeting=true via app-only token stopped creating Teams meetings
I’m experiencing an issue when creating Outlook calendar events with Microsoft Graph API where the Teams meeting is not created, even though isOnlineMeeting is set to true.
What makes this confusing is that the same implementation was working successfully until yesterday.
Environment:
- Authentication: App-only (client credentials flow)
- Token contains application roles (not delegated scopes), for example:
- Calendars.Read
- Calendars.ReadBasic.All
- Calendars.ReadWrite
- OnlineMeetings.ReadWrite.All
- Endpoint used: POST /users/{userId}/events
Request body (minimal):
{
"subject": "test",
"start": {
"dateTime": "2026-02-10T15:00:00",
"timeZone": "Asia/Tokyo"
},
"end": {
"dateTime": "2026-02-10T16:00:00",
"timeZone": "Asia/Tokyo"
},
"isOnlineMeeting": true
}
Observed behavior (starting today):
- The event is created successfully in the user’s calendar.
- However, the response now contains:
- "isOnlineMeeting": false
- "onlineMeetingProvider": "unknown"
- "onlineMeeting": null
- No Teams meeting (join URL) is generated.
Previous behavior:
- Using the same app, same permissions, and same request body, isOnlineMeeting=true successfully created a Teams meeting until yesterday.
- No changes were made to the application code or permissions.
Additional observations:
- The same app can successfully create Teams meetings using: POST /users/{userId}/onlineMeetings (Application Access Policy is configured correctly.)
- When using delegated permissions (user-signed-in context), isOnlineMeeting=true works as expected and creates a Teams meeting.
Question:
Is this a known limitation or expected behavior when using app-only tokens
with /events and isOnlineMeeting=true?
If this behavior has changed recently, was there any backend or policy update
that could explain why it stopped working without any application changes?
If app-only scenarios are not guaranteed to work with isOnlineMeeting in /events,
could this limitation be clarified in the official documentation?
Currently the docs suggest that setting isOnlineMeeting=true should create
an online meeting, but they do not clearly differentiate between delegated
and app-only behavior.