Building custom solutions that extend, automate, and integrate Microsoft 365 apps.
Thank you for posting your inquiry on Microsoft Q&A forum
I dug into this issue, and unfortunately, it's a known limitation of the Microsoft Graph API for personal Outlook.com accounts (consumer Microsoft accounts). The API does not support creating online meetings (Skype or Teams) directly as part of calendar events for these accounts, even when you correctly set isOnlineMeeting: true and specify a valid onlineMeetingProvider. This results in the properties being silently ignored, with the response showing isOnlineMeeting: false and onlineMeeting: null. Why This Happens:
- Account Type Restriction: Personal accounts have limited Graph API support for online meetings compared to work/school accounts (e.g., Microsoft 365 business/enterprise). While the docs list providers like "skypeForConsumer" and "teamsForBusiness", they don't actually initialize for personal accounts.
- Provider Check: You can verify this by querying GET /me/calendar and looking at allowedOnlineMeetingProviders—personal accounts typically only show "skypeForConsumer" (if anything), but even that doesn't work for event creation.
- Historical Note: If it "worked before," it might've been a temporary gap or enforcement change. Microsoft has been deprecating Skype for Business in favor of Teams, with API updates in early 2025 (e.g., Teams live events endpoints). Community reports confirm this behavior since at least 2022.
For work/school accounts, this works fine, onlineMeeting populates with the join URL.
Quick Troubleshooting
- Inspect Providers: Run GET /me/calendar?$select=allowedOnlineMeetingProviders,defaultOnlineMeetingProvider to confirm what's available.
- Omit Provider: Try your payload without onlineMeetingProvider (let it default)—still won't work for personal accounts.
- Beta Endpoint: Test POST /beta/me/events just in case, but expect the same result.
- Permissions: Calendars.ReadWrite is fine; no additional scopes needed (or available) for this.
Workarounds
- Switch Account Types: Use a Microsoft 365 work/school account, if possible, this fully supports the feature.
- Standalone Meetings: Create meetings separately via POST /communications/onlineMeetings (requires OnlineMeetings.ReadWrite), then link the URL manually to your event. But heads up: This endpoint also isn't supported for personal accounts.
- Manual Fallback: For now, create events via API and add online meetings manually in the Outlook/Teams/Skype app.
Hope this information help you clarify the situation, if you have any additional concern, feel free to comment below. I be more than happy to assist.
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.