How to adjust calendar permissions on Microsoft 365 Exchange Online with PowerShell

PowerShell Window Showing Calendar Permissions

Intro

Adjusting calendar permissions using PowerShell is the most common thing people administrating Microsoft 365 Exchange Online will use, and in my case, it is the first function I’ve used PowerShell for professionally.

I find the command can be confusing despite using it countless times due to the ambiguity in the syntax; I’ll frequently refer back to help documents online for this reason.

 

Disambiguation:
I describe the calendar you are adding permissions to as ‘calendar@example.com’ and the user you are providing access to as ‘delegate@example.com’.

Method

Step 1:
Connect to Exchange Online (click here for detailed steps)

Step 2:

Identify the level of permission you wish to grant to the calendar. There are a range of options:

  • Author: CreateItems, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems
  • Contributor: CreateItems, FolderVisible
  • Editor: CreateItems, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems
  • NonEditingAuthor: CreateItems, DeleteOwnedItems, FolderVisible, ReadItems
  • Owner: CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderContact, FolderOwner, FolderVisible, ReadItems
  • PublishingAuthor: CreateItems, CreateSubfolders, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems
  • PublishingEditor: CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems
  • Reviewer: FolderVisible, ReadItems
  • AvailabilityOnly: View only availability data
  • LimitedDetails: View availability data with subject and location

Source: Microsoft.com

Step 3:

You now need to determine if the delegate has any outstanding permissions to the calendar, as this will determine what command you use.
Enter the following command to retrieve the permissions currently set on the calendar:

Get-MailboxFolderPermission -Identity calendar@example.com:\calendar

Step 4:

Once you know if there are any outstanding permissions for the delegate, you can enter in one of the following commands:

If there are permissions already set, and you need to change them:

Set-MailboxFolderPermission -Identity calendar@example.com:\calendar -User delegate@example.com -Accessrights {permission-level}

If you find the delegate doesn’t already have any permissions set to the calendar, you need to use this command:

Add-MailboxFolderPermission -Identity calendar@example.com:\calendar -User delegate@example.com -Accessrights {permission-level}

That’s it!

If you need to change the permission for all current and future users, you can set the ‘Default’ permission:

Set-MailboxFolderPermission -Identity calendar@example.com:\calendar -User default -Accessrights {permission-level}

Leave a Comment

Your email address will not be published. Required fields are marked *