Can Microsoft Graph create online meetings using moderated meeting templates?

Maria Pequeno Camarero 0 Reputation points
2026-07-09T08:37:43.5033333+00:00

I’m trying to create online meetings with moderation using Microsoft Graph.

I can see that Microsoft Graph provides a meetingTemplateId value that can be used for a template. However, the documentation I’m finding mainly describes custom meeting templates, and I’m unsure whether built-in/non-custom templates support moderated meetings.

  • Is it possible to create a moderated online meeting using non-custom meeting templates with Graph?
  • If yes, once the template is applied, how are moderators specified/assigned? I don’t see a clear moderator-related role or field in the meetingParticipants object.
  • If Microsoft Graph does not support this scenario, which other Microsoft API should be used to create moderated meetings?

Any guidance or examples would be appreciated.

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

1 answer

Sort by: Most helpful
  1. Michelle-N 19,965 Reputation points Microsoft External Staff Moderator
    2026-07-09T09:33:58.46+00:00

    Hi @Maria Pequeno Camarero

    Based on the details you provided, I understand that you want to create moderated online meetings using Microsoft Graph. You are exploring the use of meetingTemplateId and trying to determine if built-in, non-custom templates natively support moderated meetings, how moderators are assigned given the lack of an explicit "moderator" role in the meetingParticipants object, and whether alternative Microsoft APIs should be used if this scenario isn't directly supported.

    Here is a comprehensive breakdown answering your questions based on the current Microsoft Graph implementation.

    1. Availability of "Moderated Meetings" in Built-In Templates

    While the onlineMeeting resource includes a meetingTemplateId property, the official documentation does not describe a dedicated flow or a standard, built-in template designed specifically for creating a "moderated meeting."

    As noted in the Microsoft Graph documentation, custom meeting templates allow organizations to predefine and lock specific meeting options, but utilizing these custom templates requires a Teams Premium license. If a template locks certain settings, they cannot be overwritten later via an onlineMeeting update. However, for standard/built-in templates, Microsoft Graph does not provide an out-of-the-box template that explicitly introduces a "moderator" concept.

    1. Role Assignment and Controlling Privileges via Microsoft Graph

    For standard Microsoft Teams meetings, Microsoft Graph operates on a participant model consisting of the organizer, attendees, and specific participant roles. The meetingParticipants resource only breaks down into organizer and attendees, and the permissions are strictly defined via the meetingParticipantInfo.role property.

    The officially documented and supported values for a user's role are:

    • attendee
    • presenter
    • producer
    • coorganizer

    There is no explicit "moderator" value supported or documented. Furthermore, it is important to note that you currently cannot assign the presenter or coorganizer roles to users who are not registered within Microsoft Entra ID.

    If your goal is to create a controlled, "moderated-style" environment within a standard Teams meeting, the closest equivalents to a moderator are achieved by combining these parameters:

    • role: "presenter": For users allowed to present or manage aspects of the meeting.
    • role: "coorganizer": For trusted users helping manage the meeting.
    • allowedPresenters: "roleIsPresenter": To restrict presentation and management privileges exclusively to your designated presenters.

    Example of a Controlled, "Moderated-Style" Meeting Payload:

    POST https://graph.microsoft.com/v1.0/me/onlineMeetings
    Content-Type: application/json
    Prefer: include-unknown-enum-members
    {
     "startDateTime": "2026-07-15T09:00:00Z",
     "endDateTime": "2026-07-15T10:00:00Z",
     "subject": "Moderated-style Teams meeting",
     "meetingTemplateId": "05b9ed5f-2ac3-4470-aae9-f4a0c30b1a4b",
     "allowedPresenters": "roleIsPresenter",
     "participants": {
     "attendees": [
     {
     "identity": {
     "user": {
     "id": "USER_OBJECT_ID_1"
     }
     },
     "upn": "******@contoso.com",
     "role": "presenter"
     },
     {
     "identity": {
     "user": {
     "id": "USER_OBJECT_ID_2"
     }
     },
     "upn": "******@contoso.com",
     "role": "attendee"
     }
     ]
     }
    }
    

    While this locks down the meeting tightly, it simply limits who can present and manage attendees; it does not introduce a standalone, specialized "moderator" role.

    Please refer:

    Create onlineMeeting
    meetingParticipantInfo resource type

    1. Alternative APIs for Highly Structured Virtual Events

    If the goal is to create a standard Teams meeting with restricted control, the closest Graph-supported approach is to configure meeting options such as allowedPresenters: "roleIsPresenter" and assign selected participants as presenter or coorganizer. This is not the same as assigning moderators, but it can cover some moderation-like scenarios.

    Choose an API in Microsoft Graph to create and join online meetings

    If the requirement is for a structured moderated event, such as a webinar or town hall, the better API is Microsoft Graph Virtual Events API. Webinars and town halls expose resources such as virtualEventPresenter, and are designed around organizer/presenter/attendee event roles rather than regular meeting participant roles.

    Virtual events webinar API use cases

    Virtual events town hall API use cases

    I hope this information help.


    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.

    Was 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.