1
votes

When I use this API to get events

GET https://graph.microsoft.com/v1.0/me/calendarview?startdatetime=2018-04-11T00:00:00.000Z&enddatetime=2018-04-18T00:00:00.000Z

If it is a Skype meeting, there will be a onlineMeetingUrl field and have the meeting url.

However, if it is a Microsoft Teams meeting, onlineMeetingUrl is null. Is there another special field for the meeting url? Thanks

Below is a Microsoft Teams meeting:

    {
        "@odata.etag": "W/\"oCWUK/b/Ok2lJzxdSR2E9QABXMy2tg==\"",
        "id": "AQMkADAwATM0MDAAMS1hZjgyLTczYjAtMDACLTAwCgBGAAADgXLIICAAoo9AoyFmP0_4_YQHAKAllCv2-zpNpSc8XUkdhPUAAAIBDQAAAKAllCv2-zpNpSc8XUkdhPUAAVypLdQAAAA=",
        "createdDateTime": "2018-04-11T02:58:26.9190336Z",
        "lastModifiedDateTime": "2018-04-11T02:58:26.9971595Z",
        "changeKey": "oCWUK/b/Ok2lJzxdSR2E9QABXMy2tg==",
        "categories": [],
        "originalStartTimeZone": "Pacific Standard Time",
        "originalEndTimeZone": "Pacific Standard Time",
        "iCalUId": "040000008200E00074C5B7101A82E00800000000F1F424ED40D1D301000000000000000010000000F51FB6A3836CAB4985F44D2D45E3AC0F",
        "reminderMinutesBeforeStart": 15,
        "isReminderOn": true,
        "hasAttachments": false,
        "subject": "Hi",
        "bodyPreview": "Hello",
        "importance": "normal",
        "sensitivity": "normal",
        "isAllDay": false,
        "isCancelled": false,
        "isOrganizer": false,
        "responseRequested": true,
        "seriesMasterId": null,
        "showAs": "tentative",
        "type": "singleInstance",
        "webLink": "https://outlook.live.com/owa/?itemid=AQMkADAwATM0MDAAMS1hZjgyLTczYjAtMDACLTAwCgBGAAADgXLIICAAoo9AoyFmP0%2B4%2BYQHAKAllCv2%2FzpNpSc8XUkdhPUAAAIBDQAAAKAllCv2%2FzpNpSc8XUkdhPUAAVypLdQAAAA%3D&exvsurl=1&path=/calendar/item",
        "onlineMeetingUrl": null,
        "responseStatus": {
            "response": "notResponded",
            "time": "0001-01-01T00:00:00Z"
        },
        "body": {
            "contentType": "html",
            "content": "Hello"
        },
        "start": {
            "dateTime": "2018-04-12T03:00:00.0000000",
            "timeZone": "UTC"
        },
        "end": {
            "dateTime": "2018-04-12T03:30:00.0000000",
            "timeZone": "UTC"
        },
        "location": {
            "displayName": "Here",
            "locationType": "default",
            "uniqueId": "Here",
            "uniqueIdType": "private"
        },
        "locations": [
            {
                "displayName": "Here",
                "locationType": "default",
                "uniqueId": "Here",
                "uniqueIdType": "private"
            }
        ],
        "recurrence": null,
        "attendees": [
            {
                "type": "required",
                "status": {
                    "response": "none",
                    "time": "0001-01-01T00:00:00Z"
                },
                "emailAddress": {
                    "name": "Jack",
                    "address": "Jack@example.com"
                }
            },
            {
                "type": "required",
                "status": {
                    "response": "none",
                    "time": "0001-01-01T00:00:00Z"
                },
                "emailAddress": {
                    "name": "Rose",
                    "address": "Rose@example.com"
                }
            }
        ],
        "organizer": {
            "emailAddress": {
                "name": "Jack",
                "address": "Jack@example.com"
            }
        }
    }
1

1 Answers

1
votes

We are working with the Microsoft Graph team on this, both to filter on online meetings, and to distinguish between Teams and Skype for Business meetings (as you have discovered, they use different properties).

I don't know the exact schedule, but you should see this in the beta endpoint of Microsoft Graph in the next few months.

Update: there is an undocumented way to get to it in the meantime, before it's officially exposed:

https://graph.microsoft.com/v1.0/me/events?$expand=singleValueExtendedProperties($filter=id eq 'String {00020329-0000-0000-C000-000000000046} Name SkypeTeamsMeetingUrl')