Manage Calendar Permissions in Office 365 Using PowerShell

Manage Calendar Permissions in Office 365 Using PowerShell

As companies everywhere started working remotely, calendar sharing has become incredibly useful and vital in boosting the efficiency and productivity of the organization. It keeps you informed about users’ daily activities and know what they’re up to. Setting up calendar permissions across the organization made everything more efficient than before. But the question is, are you making the most of your calendar?

If not, you’re missing out on the major part! You’ll miss out on what everyone is doing, and meetings, and most importantly, you’ll fail to save time. So, without further ado, let me give a deep dive into what you’re looking for! Let us learn how to manage Office 365 calendar permissions with this blog.

Firstly, it is necessary to understand how Exchange calendar permission levels work before learning how to manage calendar permissions. The available Outlook permission levels are added at the bottom of the blog for reference.

How to Change Calendar Permissions in Outlook?

The default calendar permission available in Microsoft 365 is the AvailabilityOnly role. With this, you can open other users’ calendars and check whether they are free/busy. But that doesn’t mean that other work details will get displayed.

To add or change the calendar permissions, follow the below steps: 

  1. Open Outlook -> Calendar.
  2. Right-click the calendar you want to share and select Sharing Permissions.
  3. Once you click, the Calendar Properties  dialog pops up. This displays the previously assigned permissions for the calendar.
  4. Depending on your scope of work, choose any of the Outlook Permissions levels, and modify the Read, Write, and Delete Items columns accordingly.

Note: Only the respective owner of Outlook can perform this action. You cannot perform this action in others’ Outlook.

Limitations with Outlook:
There is no centralized way to manage calendar permissions in Office 365. Users must individually grant appropriate calendar permissions to other users from Outlook. Also, there is no way for admins to manage the calendar permissions from the Microsoft 365 admin center or Exchange admin center.

Manage Calendar Permissions Using PowerShell:

Herein lies the power of PowerShell! It lets the admins add, change or remove the calendar permissions in Office 365 for each user as well as multiple users.

PowerShell cmdlets are only accessible when connected to the Exchange Online module. So, make sure to initially connect to Exchange Online PowerShell. The basic cmdlets required to manage calendar permissions in Office 365 are:

  1. Add-MailboxFolderPermission → Adds folder-level permissions and calendar permissions for users in mailboxes.
  2. Set-MailboxFolderPermission → Modifies the existing permissions levels.
  3. Get-MailboxCalendarFolder → Gets the information for the specified calendar folder.
  4. Remove-MailboxFolderPermission → Removes existing calendar permissions.
  5. Get-MailboxFolderPermission → Views the existing folder-level and calendar permissions in mailboxes.

Note: Here, when you simply use –AddMailboxFolderPermission and assign permission to a user, it assigns the permission to the user mailbox folder. But to add the calendar permissions, add “:\Calendar(name of the calendar in your Outlook language) after the UserPrincipalName (eg, Emma:\Calendar).

Set Default Calendar Permissions for Office 365 Users:

What if you want to change the default calendar sharing permissions for internal users?

Note: Before stepping in to change default calendar permissions in Office 365, think twice before you act! Because changing the default calendar sharing permissions allows everyone in the organization to get critical access to your calendar. Never set risky access rights as default calendar permissions!

Change Default Calendar Permission for a User:

Use the below cmdlet to modify the default calendar sharing permissions for a specific user,

Set-MailboxFolderPermission -Identity Emma:\Calendar -User Default -AccessRights LimitedDetails 

Now, this cmdlet overrides the default AvailabilityOnly(Free/Busy) access right to LimitedDetails (Free/Busy, Subject, and Location).

Set Default Calendar Permissions for All Users:

In some cases, you have to change default calendar sharing permissions for all users. But, you cannot ask everyone to alter it as it eats up a lot of your time. Use the below code to change the default calendar permissions in one go!

foreach($user in Get-Mailbox -RecipientTypeDetails UserMailbox) {
$cal = $user.alias+”:\Calendar”
Set-MailboxFolderPermission -Identity $cal -User Default -AccessRights LimitedDetails
}

Add Calendar Permissions in Office 365 Using PowerShell:

Adding permission to a calendar only works if there is no existing permission. A user cannot have multiple permissions simultaneously. It’ll return an error if the user already has any access roles.

Use Add-MailboxFolderPermission to add calendar permission to the calendar by specifying the type of Outlook permission level.

The -AccessRights parameter defines the permission level to be added for the user.

Add-MailboxFolderPermission -Identity [email protected]:\calendar -user [email protected] -AccessRights Reviewer 

This adds Frida as a Reviewer to Emma’s Calendar.

When assigning permissions, you can also set the Office 365 shared calendar permission outside the organization. Only make sure you don’t set critical access to external users.

Note: The above cmdlet works only for users with Outlook language as English. If you use another Outlook language, the default folder name will be different. So, before running the cmdlet, check your Outlook language settings for the calendar name.

(Get-MailboxFolderStatistics Emma -FolderScope Calendar).Identity

Outlook Calendar Language Settings

Change Calendar Permissions Using PowerShell:

Changing the calendar permissions can be done by using the Set-MailboxFolderPermission. It modifies the existing Exchange calendar permission levels.

Set-MailboxFolderPermission -Identity Emma:\Calendar -User frida -AccessRights Owner 

This overrides the existing Reviewer permission to Owner access rights. Normally, calendar permissions are updated without notifications.

Modify Calendar Permissions with Notifications:

But if you want to send an invite to the recipient, you can follow the below cmdlet. A message will be sent to the recipient, and they can either accept or reject it.

Set-MailboxFolderPermission -Identity Emma:\Calendar\private -User frida -AccessRights Editor -SendNotificationToUser $true

Restrictions for the Parameter:

  • This parameter is valid only for the calendar folders.
  • And it can be only used with the following AccessRights parameter values:
    • AvailabilityOnly
    • LimitedDetails
    • Reviewer
    • Editor

calendar permission invite sample

Remove Calendar Permissions in Office 365 Using PowerShell:

Lastly, if you want to remove the calendar permissions that were previously assigned, use the Remove-MailboxFolderPermission cmdlet. This removes the existing calendar permissions.

Remove-MailboxFolderPermission -Identity [email protected]:\calendar -User [email protected] 

This will remove all the calendar permissions that Mark had over Emma’s calendar.

Get Calendar Permissions Using PowerShell:

Lastly, if you want to check calendar permissions in your Office 365 Calendar, use the below cmdlet. This views only the calendar permissions of the specified user’s calendar.

Get-MailboxFolderPermission -Identity “Emma:\Calendar” | ft FolderName,User,AccessRights

Get Calendar Permissions Using PowerShell

Export Office 365 Calendar Permissions for All Users:

Instead of viewing a particular user’s calendar permission report, you can also opt to export Office 365 calendar permissions for all users with the PowerShell script.

Sample Output:

The exported report will get all the shared calendars with delegated access rights. The ‘Access Rights’, ‘Shared To’, and ‘Sharing Permissions Flag’ columns in the report help you get the primary information of the calendar sharing.

export calendar permissions report

Script Highlights:

This script exports Office 365 calendar permissions reports across the organization. With the 6 different reports, you can obtain granular data about the calendars and access rights to other Office 365 users.

  • Allows you to track all the calendars’ permission
  • Helps to view default calendar permission for all the mailboxes
  • Displays all the mailbox calendars to which a user has access.
  • Lists calendars shared with external users.
  • Helps to find out calendar permissions for a list of mailboxes through input CSV.

Issues with Calendar Permissions:

Calendar Permissions Greyed Out – Several admins had reported this problem. But what is the underlying cause of greying out? Perhaps you have read a lot of forums and are still confused. Let me break out the answer. This issue happens mainly for two reasons.

  1. You do not own an Exchange account. i.e., Sharing a calendar is only available for Office 365 and Exchange-based Outlook accounts. It doesn’t work for Outlook standalone applications with personal POP3 or IMAP accounts.
  2. Sharing a calendar doesn’t work if your IT admin has disabled the calendar sharing for the account.

Solution for “Sharing calendar not working” issue:
Consider any of the following alternatives if you are in the urge to share the calendar.

  • Publish your calendar online.
  • Move your calendar to Outlook.com and then share.

Outlook Permission Levels:

These Outlook permission levels determine the level of access each user has to your calendar.

Roles Permissions
None No permissions to access folders and files.
AvailabilityOnly Can know only whether you’re free or busy
LimitedDetails Shows whether you’re free/busy. If so busy, shows the subject and location of the appointment/meeting.
Reviewer Can read only the folder items.

FolderVisible, ReadItems

Contributor Read and can only create items (appointments/meetings)

FolderVisible, CreateItems

Author Create, edit and read items. Also, can delete their items but cannot delete the owner’s items.

CreateItems, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems

Non-Editing Author Full read access and can create meetings but cannot edit anything. They can delete items that they have created.

CreateItems, FolderVisible, ReadItems

Publishing Author Full read access, create items and subfolders. Can only modify and delete the items they create.

CreateItems, CreateSubfolders, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems

Editor Read, create, modify and delete the items. But cannot create sub-folders.

CreateItems, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems

Publishing Editor FULL PERMISSION TO THE CALENDAR except the right to change the permissions. Full read access, create, modify, and delete items/subfolders.

CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems

Owner FULL PERMISSION TO THE CALENDAR. Read, create, modify, and delete all the items/subfolders.

CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderContact, FolderOwner, FolderVisible, ReadItems

Wrapping Up:
Using Office 365 calendar sharing permissions, everyone can easily see the schedules at a glance. It eliminates the time spent on figuring out which date and time is best for a meeting. Hereafter, you can simply check the Office 365 calendar for availability and arrange the meeting at a convenient time.

Hopefully, this blog post helped you learn how to manage calendar permissions with PowerShell. Even if you don’t typically use a calendar, start using it and let everyone access it. The time you save will be worth it!

Go ahead and experience the benefits of calendar permissions!

Manage Calendar Permissions in Office 365 Using PowerShell

by Pavithra time to read: 7 min
0