I'm struggling with a similar problem. I did not find a way to get meetingIDs directly. However there appear to be 4 unique properties for the onlineMeeting object. They are the ones listed in https://learn.microsoft.com/en-us/graph/api/onlinemeeting-get[GET onlineMeeting documentation]1. The filters are listed as examples, but AFAICT are a definitive list:
- videoTeleconferenceId
- meeting ID
- joinWebURL
- joinMeetingId
Add the error message I get from the delegated endpoint:
"message": "Filter expression expected - /onlineMeetings?$filter={ParameterName} eq '{id}'.",
in particular eq '{id}'
suggests the API endpoint can only return a single record.
So the question becomes how to get one of those 4 unique identifiers. When I use outlook to a create an event with an online meeting, the graphAPI returns an event with {"onlineMeeting": {"joinWebURL": "https://teams.microsoft.com/..."}}
embedded. Other methods of creating calendar events which include a link to an online meeting likely also populate this field.
One solution is to search for all events with joinWebURL set, then loop through each event with a separate call to https://graph.microsoft.com/v1.0/me /onlineMeeting$filter=joinWebURL eq <joinWebURL>
.
This is super inefficient, and I would not want to do this with a large number of events. I may not have a choice.
I hoped to use the graphAPI's $expand
query string ($expand=onlineMeeting
), but that returns an error that the property is not navigable, meaning it does not designate a relationship for the data. This is disappointing hole in the graphAPI's implementation, IMO.
CAVEAT: I personally have only been able to get results from /onlineMeeting
using the delegated API endpoint. The application endpoint always returns "unknown error". Hopefully this can be r