Calendar Permissions
Exchange Online β Calendar Permissions & Processing
This page provides a consolidated reference for managing
π Connecting to Exchange Online
Before running any calendar commands, connect to the Exchange Online PowerShell module:
Connect-ExchangeOnline -UserPrincipalName π View Calendar Permissions
List current permissions for a userβs primary calendar:
Get-MailboxFolderPermission "UserName:\Calendar"View calendar permissions for
Get-Mailbox -RecipientTypeDetails UserMailbox | ForEach-Object {}
β Add Calendar Permissions
| Permission Type | Command Example | Description |
|---|---|---|
| Reviewer | Add-MailboxFolderPermission "UserName:\Calendar" -User [email protected] -AccessRights |
Can view full details of calendar items |
| Editor | Add-MailboxFolderPermission "UserName:\Calendar" -User [email protected] -AccessRights |
Full read/write control |
| AvailabilityOnly | Add-MailboxFolderPermission "UserName:\Calendar" -User [email protected] -AccessRights |
Shows free/busy info only |
| LimitedDetails | Add-MailboxFolderPermission "UserName:\Calendar" -User [email protected] -AccessRights |
Shows time, subject, and location |
β Remove Calendar Permissions
Remove-MailboxFolderPermission "UserName:\Calendar" -User Remove
Get-MailboxFolderPermission "UserName:\Calendar" | Where-Object {$_.User -ne "Default" -and $_.User -ne "Anonymous"} | ForEach-Object {}
π Modify Existing Permissions
Change a userβs calendar access level:
Set-MailboxFolderPermission "UserName:\Calendar" -User π₯ Default & Anonymous Permissions
Set what all internal users or external users see:
Set-MailboxFolderPermission "UserName:\Calendar" -User Default -AccessRights AvailabilityOnlySet-MailboxFolderPermission "UserName:\Calendar" -User Anonymous -AccessRights None
Check existing defaults:
Get-MailboxFolderPermission "UserName:\Calendar" | Where-Object {$_.User -eq "Default" -or $_.User -eq "Anonymous"}π§© Delegate Access (Send on Behalf / Manage Meeting Requests)
Add Delegate
Add-MailboxFolderPermission "Manager:\Calendar" -User Set-Mailbox -Identity "Manager" -GrantSendOnBehalfTo delegate@domain.delegate@domain.com
Remove Delegate
Remove-MailboxFolderPermission "Manager:\Calendar" -User Set-Mailbox -Identity "Manager" -GrantSendOnBehalfTo $null
βοΈ Calendar Processing Settings
Control automatic meeting request processing:
View Current Settings
Get-CalendarProcessing "UserName"Enable Auto-Accept and Decline Conflicts
Set-CalendarProcessing "UserName" -AutomateProcessing AutoAccept -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false -AddAdditionalResponse $trueDisable Auto-Processing (Manual)
Set-CalendarProcessing "UserName" -AutomateProcessing NoneResource Mailboxes (Rooms/Equipment)
Set-CalendarProcessing "Room Name" -AutomateProcessing AutoAccept -AllowConflicts $false -BookingWindowInDays 180 -EnforceSchedulingHorizon $trueπ Quick Reference Summary
| Task | Command | Notes |
|---|---|---|
| View calendar permissions | Get-MailboxFolderPermission "User:\Calendar" |
Lists all assigned permissions |
| Add Reviewer | Add-MailboxFolderPermission "User:\Calendar" -User [email protected] -AccessRights |
Grant read-only view |
| Remove Access | Remove-MailboxFolderPermission "User:\Calendar" -User someone@domain. |
Removes user access |
| Default Availability | Set-MailboxFolderPermission "User:\Calendar" -User Default -AccessRights |
Default org-wide setting |
| Auto Accept Meetings | Set-CalendarProcessing "User" -AutomateProcessing |
Enables auto-acceptance |
| View Calendar Processing | Get-CalendarProcessing "User" |
Check resource or user mailbox rules |
π§° Tips
- To apply settings across multiple mailboxes:
- Always verify changes with:
Get-Mailbox -RecipientTypeDetails UserMailbox | ForEach-Object {}
}
Get-MailboxFolderPermission "User:\Calendar"Updated:**