Change a meeting's conference options after it was created.¶
allowMeetingChat, allowTranscription, lobbyBypassSettings and
friends are read-only in this client — there is no Python setter — so they
are written with set_property and PATCHed. update() sends only the
properties you touched.
Two quirks worth knowing:
lobbyBypassSettingsis normalized tounknownFutureValuewhen it is sent half-empty (always includeisDialInBypassEnabled) or batched with other properties — set it on creation instead, seecreate.py.- an empty string is not "unset":
Noneremoves a property from the payload.
Permissions
Requires the delegated permission OnlineMeetings.ReadWrite.
Reference¶
import argparse
from datetime import datetime, timedelta, timezone
from office365.graph_client import GraphClient
from tests.settings import client_id, password, tenant, username
def main():
parser = argparse.ArgumentParser(description="Update meeting options")
parser.add_argument("--chat", default="disabled", choices=["enabled", "disabled"])
parser.add_argument("--transcription", default="enabled", choices=["enabled", "disabled"])
args = parser.parse_args()
client = GraphClient(tenant=tenant).with_username_and_password(client_id, username, password)
start = datetime.now(timezone.utc) + timedelta(hours=3)
meeting = client.me.online_meetings.create(
subject="Update demo",
start_datetime=start,
end_datetime=start + timedelta(minutes=30),
).execute_query()
meeting.set_property("allowMeetingChat", args.chat)
meeting.set_property("allowTranscription", args.transcription == "enabled")
meeting.update().execute_query()
print(f"PATCHed meeting {meeting.id}")
refreshed = client.me.online_meetings[meeting.id].get().execute_query()
print(f" allowMeetingChat : {refreshed.allow_meeting_chat}")
print(f" allowTranscription : {refreshed.allow_transcription}")
refreshed.delete_object().execute_query()
print("Cleaned up.")
if __name__ == "__main__":
main()