Skip to main content

Meeting, Teams, and Graph

Using Graph

The Graph API offers many features and a wide range of endpoints that can provide all kinds of data about your organization.

Graph Explorer lets you make calls directly from the browser:

Graph Explorer | Try Microsoft Graph APIs - Microsoft Graph

To obtain your organization's presence data, you first need to know the Microsoft IDs of the people in your organization.

Microsoft IDs are in UUID format, for example: 438f6dae-509e-4da2-bbb1-dc5a1697147f

To obtain user presence data, we can call the Graph /users/ endpoint to retrieve user data, and then use their UUIDs with the Presence endpoint.

Presence

The Presence endpoint to retrieve the presence of a single user is:

GET: GRAPH_URL/beta/users/{user-id}/presence

{user-id} = Microsoft UUID

GET: GRAPH_URL/beta/users/cb4bff89-8832-4c5f-a1ad-15efc6e8f203/presence will therefore return:

{
"id": "cb4bff89-8832-4c5f-a1ad-15efc6e8f203",
"availability": "Available",
"activity": "Available",
"statusMessage": null,
"outOfOfficeSettings": {
"message": null,
"isOutOfOffice": false
}
}

The user is online (Available) and has not configured an absence message.

Multiple users

To retrieve the presence of multiple users, there is no need to loop through users and call the endpoint each time (performance degrades quickly).

There is a special endpoint:

POST: GRAPH_URL/beta/communications/getPresencesByUserId

You can simply post a JSON containing the Microsoft UUIDs of your users; the response will look like this:

....
{
"id": "7bc1614e-f552-4167-91c2-7fe83a783b64",
"availability": "Offline",
"activity": "Offline",
"statusMessage": null,
"outOfOfficeSettings": {
"message": null,
"isOutOfOffice": false
}
},
{
"id": "0b4f2b85-4788-42a3-98bf-2ea289e66ed5",
"availability": "Offline",
"activity": "Offline",
"statusMessage": null,
"outOfOfficeSettings": {
"message": null,
"isOutOfOffice": false
}
},
....