microsoft-graph-apimicrosoft-graph-sdksmicrosoft-graph-teamsmicrosoft-graph-calendar

Create an online event using Microsoft Graph that links to an existing Teams meeting


I know it is possible to create an online event through Microsoft Graph. What I want to do is create an event, mark it as online, but point it to an existing Microsoft Teams meeting, not create a new one.

I've tried settings IsOnlineMeeting and OnlineMeetingProvider, OnlineMeetingUrl and OnlineMeeting (with ConferenceId and JoinUrl), but when the request is POSTed, the response comes back with none of those set, and the meeting appears as just a regular non-online event.

Is it possible to do this?


Solution

  • It's possible to make an event joinable in Teams using extended properties (Event.SingleValueExtendedProperties), though it's not officially supported as far as I know.

    These extended properties are the main ones involved, but there may be more:

    String {00020329-0000-0000-c000-000000000046} Name SkypeTeamsMeetingUrl
    String {00020329-0000-0000-c000-000000000046} Name OnlineMeetingConfLink
    String {00020329-0000-0000-c000-000000000046} Name SkypeTeamsMeetingETag
    String {00020329-0000-0000-c000-000000000046} Name SchedulingServiceUpdateUrl
    String {00020329-0000-0000-c000-000000000046} Name SchedulingServiceMeetingOptionsUrl
    String {00020329-0000-0000-c000-000000000046} Name SkypeTeamsProperties
    

    The value for SkypeTeamsMeetingUrl is the same as onlineMeeting.joinUrl. The remaining properties have the same information formatted differently:

    Example of what values these properties have (SkypeTeamsMeetingETag is blank):

    Tenant ID: c825445b-b4dc-48b1-9455-2756e82f4ed1
    User oid:  73a26776-6920-4f4d-8192-5b89da5868e7
    Thread ID: 19:meeting_ZWMwODM1YzYtZTA5NS00MTc2LTlkMjgtOWM3NTE4OTZiNjA1@thread.v2
    
    Id: String {00020329-0000-0000-c000-000000000046} Name SkypeTeamsMeetingUrl
    Value: https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZWMwODM1YzYtZTA5NS00MTc2LTlkMjgtOWM3NTE4OTZiNjA1%40thread.v2/0?context=%7b%22Tid%22%3a%22c825445b-b4dc-48b1-9455-2756e82f4ed1%22%2c%22Oid%22%3a%2273a26776-6920-4f4d-8192-5b89da5868e7%22%7d
    
    Id: String {00020329-0000-0000-c000-000000000046} Name OnlineMeetingConfLink
    Value: conf:sip:person@example.com;gruu;opaque=app:conf:focus:id:teams:2:0!19:meeting_ZWMwODM1YzYtZTA5NS00MTc2LTlkMjgtOWM3NTE4OTZiNjA1-thread.v2!73a2677669204f4d81925b89da5868e7!c825445bb4dc48b194552756e82f4ed1
    
    Id: String {00020329-0000-0000-c000-000000000046} Name SkypeTeamsMeetingETag
    Value: 
    
    Id: String {00020329-0000-0000-c000-000000000046} Name SchedulingServiceUpdateUrl
    Value: https://api.scheduler.teams.microsoft.com/teams/c825445b-b4dc-48b1-9455-2756e82f4ed1/73a26776-6920-4f4d-8192-5b89da5868e7/19_meeting_ZWMwODM1YzYtZTA5NS00MTc2LTlkMjgtOWM3NTE4OTZiNjA1@thread.v2/0
    
    Id: String {00020329-0000-0000-c000-000000000046} Name SchedulingServiceMeetingOptionsUrl
    Value: https://teams.microsoft.com/meetingOptions/?organizerId=73a26776-6920-4f4d-8192-5b89da5868e7&tenantId=c825445b-b4dc-48b1-9455-2756e82f4ed1&threadId=19_meeting_ZWMwODM1YzYtZTA5NS00MTc2LTlkMjgtOWM3NTE4OTZiNjA1@thread.v2&messageId=0&language=en-US
    
    Id: String {00020329-0000-0000-c000-000000000046} Name SkypeTeamsProperties
    Value: {"cid":"19:meeting_ZWMwODM1YzYtZTA5NS00MTc2LTlkMjgtOWM3NTE4OTZiNjA1@thread.v2","private":true,"type":0,"mid":0,"rid":0,"uid":null}