Windows OS Hub
  • Windows
    • Windows 11
    • Windows Server 2022
    • Windows 10
    • Windows Server 2019
    • Windows Server 2016
  • Microsoft
    • Active Directory (AD DS)
    • Group Policies (GPOs)
    • Exchange Server
    • Azure and Microsoft 365
    • Microsoft Office
  • Virtualization
    • VMware
    • Hyper-V
  • PowerShell
  • Linux
  • Home
  • About

Windows OS Hub

  • Windows
    • Windows 11
    • Windows Server 2022
    • Windows 10
    • Windows Server 2019
    • Windows Server 2016
  • Microsoft
    • Active Directory (AD DS)
    • Group Policies (GPOs)
    • Exchange Server
    • Azure and Microsoft 365
    • Microsoft Office
  • Virtualization
    • VMware
    • Hyper-V
  • PowerShell
  • Linux

 Windows OS Hub / Exchange / Managing Calendar Permissions on Exchange Server and Microsoft 365

March 17, 2024 Azure and Microsoft 365ExchangeMicrosoft OfficePowerShell

Managing Calendar Permissions on Exchange Server and Microsoft 365

In this article, we’ll look at how to manage calendar permissions in on-premises Exchange Server and Microsoft 365 mailboxes using Outlook and PowerShell. We will also focus on the topic of viewing availability (free/busy info) in calendars of rooms or shared mailboxes.

Quite often, an Exchange administrator needs to grant someone access to another employee’s calendar. For example, a secretary wants to create, remove, and edit any items in the director’s calendar and meeting room mailbox; or a department head wants to see and edit employee availability in their calendars.

Contents:
  • How to Share a Calendar in Outlook and Outlook Web App?
  • Assigning Calendar Permissions in Exchange/Microsoft 365 Mailbox Using PowerShell
  • How to Show Full Free/Busy Info in Exchange/Microsoft 365 Calendar?

How to Share a Calendar in Outlook and Outlook Web App?

A user can grant access to their calendar directly from Outlook. The Exchange Calendar is essentially a common folder in a user’s inbox. You can configure calendar access on the desktop version of Outlook or through Outlook Web Access (Outlook on the web).

Select a calendar and click Sharing and permissions in its properties.

sharing user calendar in Outlook on the web

In the next window, the current list of users and groups having access to your calendar appears. In our example, any user of your organization (tenant) may view the Free/Busy information in the calendar ( Can view when I'm busy ). User Henrietta has permissions to create and edit any items in the calendar.

view current calendar permissions

A user can send an invitation to share their calendar with another user. Just enter a user email and select the access permission. In this example, I’m granting Alex permission to view events on my calendar (Can view all details).

Setting calendar permissions in outlook web access and

In desktop Outlook versions, calendar permissions are assigned in a similar way. Open your Outlook, select your Calendar, and click Calendar Permissions. In the next window, you will see who can access your calendar. Using the Add/Remove buttons, you can grant and revoke access permissions.

Share calendar/ change calendar permissions in Microsoft Outlook

Assigning Calendar Permissions in Exchange/Microsoft 365 Mailbox Using PowerShell

An organization/tenant administrator can grant access to any user calendar or a shared mailbox using PowerShell or Microsoft Graph API (for Microsoft 365/Azure). Only with PowerShell can you quickly grant access to all user calendars in the organization.

The basic principles used to manage mailbox folder permissions in Exchange Server and Microsoft 365 can be used to manage calendar permissions as well.

Open the PowerShell console and connect to your on-premises Exchange Server or Microsoft 365 (Exchange Online) tenant:

  • Using PowerShell you can remotely connect to an on-premises Exchange Server from any computer, even without the EMS (Exchange Management Shell) module installed:
    $ExchAdmCred = Get-Credential
    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mun-mx1.woshub.com/PowerShell/ -Authentication Kerberos -Credential $ExchAdmCred
    Import-PSSession $Session
  • To connect to an Exchange Online (Microsoft 365) tenant with multi-factor authentication (MFA) enabled, use the Exchange Online PowerShell module. It also supports connection using Modern Authentication:
    Connect-ExchangeOnline -UserPrincipalName [email protected]

You can list current user calendar permissions using the command below:

Get-MailboxFolderPermission -Identity maxbak:\Calendar

Get-MailboxFolderPermission list current calendar permissions with powershell

Calendar folder names may vary depending on the regional settings of your mailbox. For example, for the German mailbox, you should replace the command argument to maxbak:\Kalender.

The User column shows users and the AccessRights column displays access privileges. Exchange has several predefined roles that you can use to set folder and calendar permissions (roles with the lowest privileges come first):

  • None
  • AvailabilityOnly
  • Contributor
  • Reviewer
  • NonEditingAuthor
  • Author
  • PublishingAuthor
  • Editor
  • PublishingEditor
  • Owner

To grant another user access to a mailbox folder, use the Add-MailboxFolderPermission cmdlet. For example, to allow user A.Weber to edit the calendar items of S.Fischer, run the command:

Add-MailboxFolderPermission -Identity S.Fischer:\Calendar -User A.Weber -AccessRights Editor

If you want to grant view-only permissions:

Add-MailboxFolderPermission -Identity S.Fischer:\Calendar -User A.Weber -AccessRights Reviewer

To remove calendar permissions:

Remove-MailboxFolderPermission -Identity S.Fischer:\Calendar –user A.Weber

You can export current calendar permissions for all mailboxes in your Azure tenant (Exchange organization) to a CSV file:

$Mailboxes = Get-Mailbox -ResultSize Unlimited | Select-Object UserPrincipalName
foreach ($mailbox in $Mailboxes) {
Get-MailboxFolderPermission -Identity "$($mailbox.UserPrincipalName):\Calendar" |
Select-Object @{Name="UrerPrincipalName";E={$mailbox.UserPrincipalName}},FolderName,User,AccessRights |
Export-Csv C:\PS\Calendar_report.csv -NoTypeInformation -Append
}

Later you can analyze the CSV file with mailbox UPNs and calendar permissions in Excel.

Export Excchange/Mffice 365 calendar permissions to CSV using PowerShell

The following PowerShell script will allow a specific user to view all calendars in your organization:

Foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited)) { Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Owner -User A.Weber}

How to Show Full Free/Busy Info in Exchange/Microsoft 365 Calendar?

Users in the same organization can view the availability information of other users or resource mailboxes. By default, only Free/Busy information is available.

view AvailabilityOnly info in outlook calendar

Subjects, descriptions, and locations are not visible on other users’ calendars. The Default= AvailabilityOnly permission causes this behavior. The AvailabilityOnly permission type allows viewing the availability information (Free/Busy) only.

Default permissions to view Free/Busy info in calendar

You may want users to view both the availability and subjects or locations in a calendar (for example, a shared resource calendar). The following command allows all users to view events in the calendars of all room mailboxes:

Foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited) | Where {$_.ResourceType -eq "Room") { Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights AvailabilityOnly -User Default }

By default, the owner’s name is shown instead of the meeting title. This behavior is set by the AddOrganizerToSubject = $true attribute. To allow viewing subjects and their contents in a room calendar, use the command below:

Set-CalendarProcessing room123 -DeleteComments $false -DeleteSubject $false -AddOrganizerToSubject $false

In Exchange Online, you can configure whether users are allowed to publish their calendars for external users (organizations). Open the Exchange Admin Center and navigate to Organization -> Sharing.

By default, the Default Sharing Policy is used that allows to share only the Free/Busy information with external users. Here you can set a list of email domains you can share calendars with and/or edit a set of calendar information to be shared (subjects, location, organizer).

Exchange admin center - allow to share calendar outside the organization

2 comments
2
Facebook Twitter Google + Pinterest
previous post
Check Wi-Fi Signal Strength on Windows with PowerShell
next post
How to Enable Wireless (Wi-Fi) on Windows Server 2019/2016

Related Reading

View Windows Update History with PowerShell (CMD)

April 30, 2025

Remove ‘Your License isn’t Genuine’ Banner in MS...

April 21, 2025

Uninstalling Windows Updates via CMD/PowerShell

April 18, 2025

Allowing Ping (ICMP Echo) Responses in Windows Firewall

April 15, 2025

How to Pause (Delay) Update Installation on Windows...

April 11, 2025

2 comments

serg October 2, 2023 - 8:05 am

You can grant calendar permissions only to m365 unified group or mail-enable security groups.

Reply
serg October 2, 2023 - 8:21 am

Send invitation: -SendNotificationToUser $true
Make a user delegate: -SharingPermissionFlags Delegate,CanViewPrivateItems

Reply

Leave a Comment Cancel Reply

join us telegram channel https://t.me/woshub
Join WindowsHub Telegram channel to get the latest updates!

Categories

  • Active Directory
  • Group Policies
  • Exchange Server
  • Microsoft 365
  • Azure
  • Windows 11
  • Windows 10
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • PowerShell
  • VMware
  • Hyper-V
  • Linux
  • MS Office

Recent Posts

  • Cannot Install Network Adapter Drivers on Windows Server

    April 29, 2025
  • Change BIOS from Legacy to UEFI without Reinstalling Windows

    April 21, 2025
  • How to Prefer IPv4 over IPv6 in Windows Networks

    April 9, 2025
  • Load Drivers from WinPE or Recovery CMD

    March 26, 2025
  • How to Block Common (Weak) Passwords in Active Directory

    March 25, 2025
  • Fix: The referenced assembly could not be found error (0x80073701) on Windows

    March 17, 2025
  • Exclude a Specific User or Computer from Group Policy

    March 12, 2025
  • AD Domain Join: Computer Account Re-use Blocked

    March 11, 2025
  • How to Write Logs to the Windows Event Viewer from PowerShell/CMD

    March 3, 2025
  • How to Hide (Block) a Specific Windows Update

    February 25, 2025

Follow us

  • Facebook
  • Twitter
  • Telegram
Popular Posts
  • Outlook Keeps Asking for Password on Windows
  • Checking User Sign-in Logs in Entra ID (Microsoft 365)
  • How to Manually Configure Exchange or Microsoft 365 Account in Outlook 365/2019/2016
  • Search and Delete Emails from User Mailboxes on Exchange Server (Microsoft 365) with PowerShell
  • Fix: Microsoft Outlook Search Not Working on Windows 10/11
  • Blank Sign-in Screen in Office 365 Apps (Outlook, Teams, etc.)
  • Removing Built-in Teams Chat in Windows 11
Footer Logo

@2014 - 2024 - Windows OS Hub. All about operating systems for sysadmins


Back To Top