The following tables show the least privileged permission or permissions required to call this API on each supported resource type. Follow best practices to request least privileged permissions. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
Permissions for the following HTTP request:
PATCH /me/onlineMeetings/{meetingId}
Permission type
Least privileged permissions
Higher privileged permissions
Delegated (work or school account)
OnlineMeetings.ReadWrite
Not available.
Delegated (personal Microsoft account)
Not supported.
Not supported.
Application
Not supported.
Not supported.
Permissions for the following HTTP request:
DELETE /users/{userId}/onlineMeetings/{meetingId}
Permission type
Least privileged permissions
Higher privileged permissions
Delegated (work or school account)
OnlineMeetings.ReadWrite
Not available.
Delegated (personal Microsoft account)
Not supported.
Not supported.
Application
OnlineMeetings.ReadWrite.All
Not available.
Note
To use application permission for this API, tenant administrators must create an application access policy and grant it to a user to authorize the app configured in the policy to update online meetings on behalf of that user (with user ID specified in the request path).
HTTP request
To update the specified onlineMeeting using meeting ID with delegated (/me) and app (/users/{userId}/) permission:
The following table lists the properties that can be updated. In the request body, supply only the values for properties that should be updated, with the following exceptions:
Adjusting the start or end date/time of an online meeting always requires both startDateTime and endDateTime properties in the request body.
The organizer field of the participants property can't be updated. The organizer of the meeting can't be modified after the meeting is created.
Adjusting the attendees field of the participants property, such as adding or removing an attendee to the meeting, always requires the full list of attendees in the request body.
The last column indicates whether updating this property will take effect for an in-progress meeting.
Property
Type
Description
Applies to in-progress meetings?
allowAttendeeToEnableCamera
Boolean
Indicates whether attendees can turn on their camera.
Yes
allowAttendeeToEnableMic
Boolean
Indicates whether attendees can turn on their microphone.
Yes
allowBreakoutRooms
Boolean
Indicates whether breakout rooms are enabled for the meeting.
No
allowedPresenters
onlineMeetingPresenters
Specifies who can be a presenter in a meeting.
Yes
allowLiveShare
meetingLiveShareOptions
Indicates whether live share is enabled for the meeting.
No
allowMeetingChat
meetingChatMode
Specifies the mode of meeting chat.
Yes
allowPowerPointSharing
Boolean
Indicates whether PowerPoint live is enabled for the meeting.
No
allowTeamworkReactions
Boolean
Indicates whether Teams reactions are enabled for the meeting.
Specifies the users who can admit from the lobby. Possible values are: organizerAndCoOrganizersAndPresenters, organizerAndCoOrganizers, unknownFutureValue.
Yes
allowWhiteboard
Boolean
Indicates whether whiteboard is enabled for the meeting. Inherited from onlineMeetingBase.
endDateTime
DateTime
The meeting end time in UTC.
No
isEntryExitAnnounced
Boolean
Whether or not to announce when callers join or leave.
The participants associated with the online meeting. Only attendees can be updated.
No
recordAutomatically
Boolean
Indicates whether to record the meeting automatically.
No
startDateTime
DateTime
The meeting start time in UTC.
No
subject
String
The subject of the online meeting.
No
Note
For the list of possible values for allowedPresenters, allowLiveShare, and allowMeetingChat, see onlineMeeting.
When updating the value of allowedPresenters to roleIsPresenter, include a full list of attendees with specified attendees' role set to presenter in the request body.
Response
If successful, this method returns a 200 OK response code and an updated onlineMeeting object in the response body.
Examples
Example 1: Update the startDateTime, endDateTime and subject
Request
Note: The meeting ID has been shortened for readability.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new OnlineMeeting
{
StartDateTime = DateTimeOffset.Parse("2020-09-09T14:33:30.8546353-07:00"),
EndDateTime = DateTimeOffset.Parse("2020-09-09T15:03:30.8566356-07:00"),
Subject = "Patch Meeting Subject",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.OnlineMeetings["{onlineMeeting-id}"].PatchAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
"time"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewOnlineMeeting()
startDateTime , err := time.Parse(time.RFC3339, "2020-09-09T14:33:30.8546353-07:00")
requestBody.SetStartDateTime(&startDateTime)
endDateTime , err := time.Parse(time.RFC3339, "2020-09-09T15:03:30.8566356-07:00")
requestBody.SetEndDateTime(&endDateTime)
subject := "Patch Meeting Subject"
requestBody.SetSubject(&subject)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
onlineMeetings, err := graphClient.Me().OnlineMeetings().ByOnlineMeetingId("onlineMeeting-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
OnlineMeeting onlineMeeting = new OnlineMeeting();
OffsetDateTime startDateTime = OffsetDateTime.parse("2020-09-09T14:33:30.8546353-07:00");
onlineMeeting.setStartDateTime(startDateTime);
OffsetDateTime endDateTime = OffsetDateTime.parse("2020-09-09T15:03:30.8566356-07:00");
onlineMeeting.setEndDateTime(endDateTime);
onlineMeeting.setSubject("Patch Meeting Subject");
OnlineMeeting result = graphClient.me().onlineMeetings().byOnlineMeetingId("{onlineMeeting-id}").patch(onlineMeeting);
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.online_meeting import OnlineMeeting
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = OnlineMeeting(
start_date_time = "2020-09-09T14:33:30.8546353-07:00",
end_date_time = "2020-09-09T15:03:30.8566356-07:00",
subject = "Patch Meeting Subject",
)
result = await graph_client.me.online_meetings.by_online_meeting_id('onlineMeeting-id').patch(request_body)
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new OnlineMeeting
{
LobbyBypassSettings = new LobbyBypassSettings
{
IsDialInBypassEnabled = true,
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.OnlineMeetings["{onlineMeeting-id}"].PatchAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewOnlineMeeting()
lobbyBypassSettings := graphmodels.NewLobbyBypassSettings()
isDialInBypassEnabled := true
lobbyBypassSettings.SetIsDialInBypassEnabled(&isDialInBypassEnabled)
requestBody.SetLobbyBypassSettings(lobbyBypassSettings)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
onlineMeetings, err := graphClient.Me().OnlineMeetings().ByOnlineMeetingId("onlineMeeting-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
OnlineMeeting onlineMeeting = new OnlineMeeting();
LobbyBypassSettings lobbyBypassSettings = new LobbyBypassSettings();
lobbyBypassSettings.setIsDialInBypassEnabled(true);
onlineMeeting.setLobbyBypassSettings(lobbyBypassSettings);
OnlineMeeting result = graphClient.me().onlineMeetings().byOnlineMeetingId("{onlineMeeting-id}").patch(onlineMeeting);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\OnlineMeeting;
use Microsoft\Graph\Generated\Models\LobbyBypassSettings;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new OnlineMeeting();
$lobbyBypassSettings = new LobbyBypassSettings();
$lobbyBypassSettings->setIsDialInBypassEnabled(true);
$requestBody->setLobbyBypassSettings($lobbyBypassSettings);
$result = $graphServiceClient->me()->onlineMeetings()->byOnlineMeetingId('onlineMeeting-id')->patch($requestBody)->wait();
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
lobbyBypassSettings = @{
isDialInBypassEnabled = $true
}
}
# A UPN can also be used as -UserId.
Update-MgUserOnlineMeeting -UserId $userId -OnlineMeetingId $onlineMeetingId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.online_meeting import OnlineMeeting
from msgraph.generated.models.lobby_bypass_settings import LobbyBypassSettings
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = OnlineMeeting(
lobby_bypass_settings = LobbyBypassSettings(
is_dial_in_bypass_enabled = True,
),
)
result = await graph_client.me.online_meetings.by_online_meeting_id('onlineMeeting-id').patch(request_body)