Add Calendar Permissions With PowerShell in Exchange Online

Manage Exchange Online calendar permissions with PowerShell

With Microsoft standard tools, you must use PowerShell to configure calendar permissions.

As a result of this, senior-level admins often need to get involved. This is more costly than using the first-level supporters and also increases the time to solution.

However, with third-party tools like Easy365Manager, first-level supporters can easily view and modify calendar permissions.

Manage Exchange Online Calendar Permissions Without PowerShell

Easy365Manager is a snap-in to AD Users & Computers that makes calendar permission management available to any skill level:

With Easy365Manager, you can even set complex calendar-sharing permissions like SharingPermissionsFlag.

You can install Easy365Manager on any server or client PC running AD Users & Computers, and Easy365Manager requires no changes to your infrastructure.

Download the fully functional 30-day trial here.

Manage Exchange Online Calendar Permissions With PowerShell

You need the Exchange Online Management PowerShell module to manage calendar access management with PowerShell.

Install the module by running the following command:

Install-Module ExchangeOnlineManagement

If your user base has mixed regional settings, you need to identify the path to the user’s calendar.

(if users are UK/US-based, it will simply be “/Calendar.”)

Use the following command to get the localized calendar path:

(Get-MailboxFolderStatistics lene.hau -FolderScope calendar | ? {$_.FolderType -eq 'Calendar'}).FolderPath

(replace the user name with the user you’re trying to configure)

Now that the calendar folder path has been identified, you can focus on four different PowerShell CmdLets:

  • Get-MailboxFolderPermission
  • Add-MailboxFolderPermission
  • Set-MailboxFolderPermission
  • Remove-MailboxFolderPermission

Use the Get-MailboxFolderPermission to view existing calendar permissions:

PS C:\> Get-MailboxFolderPermission lene.hau:\Calendar | ft -AutoSize
FolderName User                  AccessRights       SharingPermissionFlags
---------- ----                  ------------       ----------------------
Calendar   Default               {AvailabilityOnly}
Calendar   Anonymous             {None}
Calendar   Niels Bohr            {Owner}
Calendar   Hans Christian Orsted {Editor}

Use the Add-MailboxFolderPermission to add new permissions to the calendar:

PS C:\> Add-MailboxFolderPermission lene.hau:\Calendar -User ole.romer -AccessRights Owner
FolderName   User        AccessRightsSharingPermissionFlags
----------   ----        ----------------------------------
Calendar     Ole Romer   {Owner}

Use the Set-MailboxFolderPermission to modify existing permissions to the calendar:

PS C:\> Set-MailboxFolderPermission lene.hau:\Calendar -User niels.bohr -AccessRights Editor

After running the above commands, the calendar permissions now look like this:

Get-MailboxFolderPermission lene.hau:\Calendar | ft -AutoSize
FolderName User                  AccessRights       SharingPermissionFlags
---------- ----                  ------------       ----------------------
Calendar   Default               {AvailabilityOnly}
Calendar   Anonymous             {None}
Calendar   Ole Romer             {Owner}
Calendar   Niels Bohr            {Editor}
Calendar   Hans Christian Orsted {Editor}

Finally, you can remove assigned access rights using the Remove-MailboxFolderPermission CmdLet:

PS C:\> Remove-MailboxFolderPermission lene.hau:\Calendar -User hans.c.orsted

Summary

The PowerShell CmdLets supporting Exchange Online calendar permission configuration can be a little bit tricky:

You need one command to add new permissions and another to change existing ones.

In localized environments you need to identify the calendar path first.

For seasoned admins, this is completely fine. However, if you want to utilize senior admins more efficiently, you should consider using a third-party tool like Easy365Manager to delegate these tasks to first-level supporters.

Get the answer to the most common questions related to Easy365Manager here: