azureblog.co.uk
← cd ~/compare
// compare · graph permissions

Presence.Read.All vs Presence.ReadWrite.All

Two Microsoft Graph permissions that are easy to mix up, side by side.

In short: Presence.Read.All only reads. Presence.ReadWrite.All can also create, change or delete. Use the read-only one unless your app needs to write.

Permission typePresence.Read.AllPresence.ReadWrite.All
ApplicationRead presence information for all users
Allows the app to read presence information of all users in the directory without a signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.
Always needs admin consent · Medium risk
Read and write presence information for all users
Allows the app to read all presence information and write activity and availability of all users in the directory without a signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, time zone and location.
Always needs admin consent · High risk
DelegatedRead presence information of all users in your organization
Allows the app to read presence information of all users in the directory on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.
Users can consent · Low risk
Not available as a delegated permission

Spotted something out of date or wrong? Tell us and we'll fix it.