How to Export Microsoft 365 Calendar Permissions Using PowerShell

In Microsoft 365 (formerly Office 365), managing calendar permissions efficiently is crucial for organizational productivity and security. While the Microsoft 365 admin center provides basic tools for managing permissions, PowerShell offers more flexibility and automation, especially when dealing with multiple calendars or complex permission structures.

Why Export Calendar Permissions?

Exporting calendar permissions via PowerShell can be beneficial for several reasons:

  • Audit and Compliance: Maintain records of who has access to specific calendars for auditing and compliance purposes.
  • Backup and Recovery: Create backups of permissions configurations to facilitate quick recovery in case of accidental changes or deletions.
  • Automation: Streamline the management of calendar permissions across your organization by scripting repetitive tasks.

Prerequisites

Before you begin exporting calendar permissions using PowerShell, ensure you have the following:

  • Microsoft 365 Global Admin or Exchange Admin Role: Permissions to access and manage calendars via PowerShell.
  • Windows PowerShell or PowerShell Core: Installed on your local computer or server.
  • Exchange Online PowerShell Module: Installed and connected to your Microsoft 365 environment.

Understanding Calendar Permissions

When managing calendar permissions via PowerShell, the -AccessRights parameter defines the level of access a user has to a specific mailbox folder.

The following table outlines the available roles and their corresponding permissions:

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

Steps to Export Calendar Permissions Using PowerShell:

Step 1: Connect to Exchange Online PowerShell

First, you need to connect to Exchange Online PowerShell using your admin credentials. Open PowerShell and run the following commands:

# Install Exchange Online PowerShell Module (if not already installed)

Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber

# Connect to Exchange Online

Connect-ExchangeOnline

Step 2: Export Calendar Permissions

Once connected, you can use PowerShell cmdlets to export calendar permissions. Here’s a basic example to export permissions for a specific calendar:

# Define the calendar and export permissions

$CalendarName = “JohnDoe@contoso.com”

$ExportPath = “C:\Temp\CalendarPermissions.csv”

Get-MailboxFolderPermission -Identity $CalendarName -ErrorAction Stop | Select-Object Identity, User, AccessRights |Export-Csv -Path $ExportPath -NoTypeInformation

This script retrieves permissions for the calendar specified (JohnDoe@contoso.com) and exports them to a CSV file (CalendarPermissions.csv) located in C:\Temp\. Adjust the $CalendarName variable and $ExportPath as per your requirements.

Step 3: Review and Use the Exported Data

After exporting, review the CSV file to ensure all necessary permissions are captured accurately. You can use this data for auditing, reporting, or even for importing permissions back into Exchange if needed.

IdentityUserAccessRights
UserDefaultNone
User2AnonymousFullAccess

Conclusion

Exporting Microsoft 365 calendar permissions using PowerShell provides administrators with a powerful tool to manage and monitor permissions efficiently. By following these steps, you can maintain better control over who has access to what calendars within your organization, ensuring security and compliance standards are met.

Whether you’re auditing permissions, creating backups, or automating tasks, PowerShell empowers you to streamline calendar management in Microsoft 365 effectively.

Start leveraging PowerShell today to enhance your calendar management workflows and simplify administrative tasks in Microsoft 365.

!!! THANKS FOR READING !!!


Regards,
HARISH KUMAR

Knowledge is not a finite resource to hoard; it’s a boundless treasure that grows when shared.