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 EasyEntra, first-level supporters can easily view and modify calendar permissions.

Manage Exchange Online Calendar Permissions Without PowerShell

EasyEntra is a standalone application that consolidates all the various consoles and applications needed for M365 management into one application. Including calendar permission management:

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

You can install EasyEntra in less than one minute on any server or client PC, and EasyEntra requires no changes to your infrastructure.

EasyEntra supports both hybrid and cloud-only management and is free to use for any tenant with less than 25 licensed users.

EasyEntra mimics the well-known interface of AD Users & Computers and is very intuitive and responsive to use, guaranteed to save you tons of time.

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 EasyEntra to delegate these tasks to first-level supporters.

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