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, include only the properties that need updating, 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 cannot be updated. The organizer of the meeting cannot 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.
Specifies which participants can bypass the meeting lobby.
Yes
allowedPresenters
onlineMeetingPresenters
Specifies who can be a presenter in a meeting.
Yes
allowAttendeeToEnableCamera
Boolean
Indicates whether attendees can turn on their camera.
Yes
allowAttendeeToEnableMic
Boolean
Indicates whether attendees can turn on their microphone.
Yes
allowMeetingChat
meetingChatMode
Specifies the mode of meeting chat.
Yes
allowTeamworkReactions
Boolean
Indicates whether Teams reactions are enabled for the meeting.
Yes
recordAutomatically
Boolean
Indicates whether to record the meeting automatically.
No
Note
For the list of possible values for allowedPresenters 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)