Skip to content

Manage calendar permissions in Office 365 with PowerShell

How to manage calendar permissions in Office 365 with PowerShell? If you have the correct PowerShell commands, you can manage calendar permissions much more efficiently. You can get, add, edit and remove calendar permissions. In this article, you will learn how to manage calendar permissions in Office 365 with PowerShell.

Manage Office 365 calendar permissions

There are different options to manage calendar permissions in Office 365 and on-premises Exchange Server. Let’s have a look at the options:

  1. Add yourself (admin) full access permissions to the mailbox you want to configure. Open the calendar in Outlook and edit the calendar permissions for the user. This will work, but it takes time.
  1. Ask the user to change the permissions. Sometimes they do it wrong, and you have to double-check with them if everything went OK.

A great way for most is to manage Office 365 calendar permissions in Office 365 Exchange admin center. Unfortunately, that’s not possible because Microsoft didn’t add such a feature in Office 365 or Exchange Server.

What do we recommend? PowerShell. It’s excellent to get, add, edit, and remove permissions with PowerShell. The user doesn’t have to do anything, and you are sure it works.

Calendar roles and permissions

The roles that are available, along with the permissions that they assign, are described in the following list:

RolesPermissions
OwnerCreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderContact, FolderOwner, FolderVisible, ReadItems
PublishingEditorCreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems
EditorCreateItems, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems
PublishingAuthorCreateItems, CreateSubfolders, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems
AuthorCreateItems, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems
NonEditingAuthorCreateItems, FolderVisible, ReadItems
ReviewerFolderVisible, ReadItems
ContributorCreateItems, FolderVisible
LimitedDetailsView availability data with subject and location (Free/Busy time, subject, location)
AvailabilityOnlyView only availability data (Free/Busy time)
NoneNo permissions to access folder and files

Below is a screen of how the Calendar Properties look in Outlook.

Manage calendar permissions in Office 365 with PowerShell permission level

How to manage calendar permissions with PowerShell

The below steps will work for both Office 365 and Exchange on-premises organizations. The only difference is that you have to:

  • Connect with Exchange Online PowerShell for Exchange Online
  • Connect with Exchange Management Shell for Exchange on-premises

In this example, we will make a connection with Exchange Online PowerShell. Run Windows PowerShell as administrator and connect to Exchange Online PowerShell.

PS C:\> Connect-ExchangeOnline -UserPrincipalName admin@exoip.com

Now that we are connected, let’s start.

Get default calendar name

Note: The default calendar might be in a different language.

The best way to find out the default calendar name is to run Get-MailboxFolderStatistics cmdlet. Run the -FolderScope parameter to filter calendar folders only.

PS C:\> Get-Mailbox -Identity "Emma Stryker" | Get-MailboxFolderStatistics -FolderScope Calendar | ft Identity,Name

Identity              Name
--------              ----
Emma Stryker\Calendar Calendar

For example, in The Netherlands, they speak Dutch. The default name calendar is Agenda. The below output is how it looks if it’s a Dutch mailbox calendar.

PS C:\> Get-Mailbox -Identity "Emma Stryker" | Get-MailboxFolderStatistics -FolderScope Calendar | ft Identity,Name

Identity            Name
--------            ----
Emma Stryker\Agenda Agenda

Now that we have the default calendar name, we can proceed further.

Get calendar permissions

View the access right on John’s calendar. Use Get-MailboxFolderPermission cmdlet.

Note: By default, Office 365 users can’t view messages or calendar items of other users. The only permission provided to all users by default is the ability to view free/busy information in the calendar of other users (AvailabilityOnly role).

PS C:\> Get-MailboxFolderPermission -Identity "Emma Stryker:\Calendar" | ft Identity,FolderName,User,AccessRights

Identity               FolderName User      AccessRights
--------               ---------- ----      ------------
Emma Stryker:\Calendar Calendar   Default   {AvailabilityOnly}
Emma Stryker:\Calendar Calendar   Anonymous {None}

Add calendar permissions

Add the user John with reviewer access rights to Emma’s calendar. Run the Add-MailboxFolderPermission cmdlet.

PS C:\> Add-MailboxFolderPermission -Identity "Emma Stryker:\Calendar" -User "John Walker" -AccessRights Reviewer


RunspaceId             : 0c0d2c7c-3aca-4c6c-8215-b52a2fdbc5b9
Identity               : Emma Stryker:\Calendar
FolderName             : Calendar
User                   : John Walker
AccessRights           : {Reviewer}
SharingPermissionFlags : 
IsValid                : True
ObjectState            : New

Do you have a distribution group or security group that you want to add? Add the group with access rights permissions.

PS C:\> Add-MailboxFolderPermission -Identity "Emma Stryker:\Calendar" -User "Calendar Group" -AccessRights Reviewer

Set calendar permissions

If you want to edit the calendar permission access rights, you want to run Set-MailboxFolderPermission. Change John’s access rights to Owner.

PS C:\> Set-MailboxFolderPermission -Identity "Emma Stryker:\Calendar" -User "John Walker" -AccessRights Owner

Read more: Set default calendar permissions for all users with PowerShell »

Remove calendar permissions

As of last, let’s run Remove-MailboxFolderPermission cmdlet to delete John’s access.

PS C:\> Remove-MailboxFolderPermission -Identity "Emma Stryker:\Calendar" -User "John Walker" -Confirm:$false

That’s it!

Keep reading: Export mailbox permissions with PowerShell »

Conclusion

You learned how to manage calendar permissions in Office 365 with PowerShell. Make sure you connect to Exchange Online PowerShell first. After that, run the commands that you need. This can be checking, adding, editing, or removing calendar permissions.

Remember to run the:

  • Get-MailboxFolderPermission cmdlet to view existing calendar permissions
  • Add-MailboxFolderPermission cmdlet to add new calendar permissions
  • Set-MailboxFolderPermission cmdlet to modify calendar permissions
  • Remove-MailboxFolderPermission cmdlet to remove existing calendar permissions

Did you enjoy this article? You may also like Show week number in Outlook calendar. Don’t forget to follow us and share this article.

ALI TAJRAN

ALI TAJRAN

ALI TAJRAN is a passionate IT Architect, IT Consultant, and Microsoft Certified Trainer. He started Information Technology at a very young age, and his goal is to teach and inspire others. Read more »

This Post Has 11 Comments

  1. Hi Ali,

    Great article!

    One issue I have come across, I have over 100 room resources and I need to add one user to have editor rights on all those calendars. Any ideas please?

  2. How can we setup calendar permission by that user who shared a calendar don’t get notified for meeting acceptance/declines etc.

    All meetings sent out of UserA’s calendar notifications and acceptances, declines etc should go directly to UserB’s email box, and not User A

  3. Your article, combined with this Microsoft Blog, helped me solve my problems!
    https://techcommunity.microsoft.com/t5/exchange-team-blog/demystifying-hybrid-free-busy-what-are-the-moving-parts/ba-p/607704

    I found out that we were not using IOC but an Organisation Relationship, and some parameters were missing.
    In our case the ‘TargetAutodiscoverEpr’ and ‘TargetApplicationUri’ were blank on the On-Premises side.

    On the Exchange Online side the ‘FreeBusyAccessLevel’ was not set to the required level.

  4. Thanks for the post, its been very handy. I would like add permissions to all users in a group to view each others calendars. I’m guessing I’d need to loop through the group. Any ideas? Thanks again!

  5. Hi Ali

    Thanks for the great article. I ran into an issue. I shared Editor rights, with some meeting rooms (ressources) with a serviceuser. But they don’t show up in the serviceusers’ calendars.
    I then logged into a meeting room on Outlook.com and I did see that the serviceuser indeed was set to “Edit” permission. But re-sharing through Outlook.com made the trick. It seems to send an e-mail and the serviceuser has to “Accept” this new shared Calendar. This e-mail never comes when sharing through PowerShell.

    Any ideas?

  6. Hoi Ali,

    Ik zit met een probleem mbt rechten geven op een agenda.
    Vraag ik via Get-mailboxfolderpermission -identity a@b.com:\agenda rechten op, dan zie ik wie welke rechten op de Agenda heeft.

    Wil ik via set-mailboxfolderpermission -identity a@b.com:\agenda -user Default -accessrights Review de standaard rechten aanpassen, dan krijg ik onderstaande foutmelding:

    The specified mailbox Identity:"a@b.com" doesn't exist.
        + CategoryInfo          : NotSpecified: (:) [Set-MailboxFolderPermission], ManagementObjectNotFoundException
        + FullyQualifiedErrorId : [Server=DB8P189MB0887,RequestId=a6b842de-8a41-4b0c-901c-c79d6b20279f,TimeStamp=5-5-2022 10:59:26] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] 80 
       C7C5A8,Microsoft.Exchange.Management.StoreTasks.SetMailboxFolderPermission
        + PSComputerName        : outlook.office365.com

    Heb jij enig idee?

  7. Hi Ali,
    Hoe is het? 🙂

    Ik ben meestal bezig met Exchange Online bij mijn nieuwe baan en ik gebruik je website heel vaak.

    Ik heb net gemerkt dat als ik een PS script wil kopieren via de copy knop rechtboven, kopieer het hele text binnen de area dus met het resultaat van de script ook.

    Ik denk het kan beter zijn als we alleen de script zelf kunnen kopieren.

    Bedant voor deze waardevolle source for allemaal.

    Met vriendelijke groet,

    Muhammed Ari

Leave a Reply

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