When working with Exchange Online, sometimes you'll come across issues in sharing calendars with others. As an administrator, you can use the following steps to check calendar permissions and to update them as you need.

To get current calendar permissions for a user

  1. Run Powershell as Administrator
  2. Get Office 365 credentials: $LiveCred = Get-Credential
  3. If MFA is not turned on for your account:
    1. Start a session with the Office 365 tenant - $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic –AllowRedirection
      1. You may have to execute the above command a second time if you get a connection error – note that you may also get an authentication error if the login account has MFA turned on and EXO V2 is not installed on the PC you are using. Check this out to fix this. Then follow the instructions If MFA is enabled for your account.
    2. Import Powershell session: Import-PSSession $Session
  4. If MFA is enabled for your account:
    1. Connect-ExchangeOnline -UserPrincipalName [user-name] -ShowProgress $true
  5. Get calendar permission details: Get-MailboxFolderPermission [user-account]:\calendar

This will then list out all of the accounts that have been granted access, including groups.

To add or update calendar permissions

We normally have a group called All Staff of which all staff are a member. Then default permissions for calendars are defined for this group (normally Reviewer - so that anyone can see calendar items of others but can't change them). Elevated permissions (if needed) can be granted specifically for people or groups on top of this default.

If say user-A doesn't have access to user-B's calendar and needs Reviewer access, run the command: Add-MailboxFolderPermission -Identity [user-B]:\Calendar -User [user-A] -AccessRights Reviewer

Alternatively, if say user-A had AvailabilityOnly access to user-B's calendar and needs Reviewer access then run: Set-MailboxFolderPermission -Identity [user-B]:\Calendar -User [user-A] -AccessRights Reviewer

To remove permissions one-by-one, you can use: Remove-MailboxFolderPermission -Identity [user-B]:\Calendar -User [user-A] -AccessRights Reviewer

Alternatively, use the following to remove permissions in bulk for a specific user calendar (and leaving Default or Anonymous permissions):

Get-MailboxFolderPermission [user-B]:\Calendar ` 
| ? {$_.User -notmatch "^(Default|Anonymous)$"} `
| % { Remove-MailboxFolderPermission -Identity $_.Identity -User $_.User.DisplayName -Confirm:$false }

More details can be found at: https://www.michev.info/Blog/Post/2500/how-to-reset-mailbox-folder-permissions

Other references

"A change in perspective is worth 80 IQ Points" 
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram