It’s often handy to have all users in a Office 365 tenancy to be able to view all details in everyone else’s calendars. While each user can set these permissions on their individual calendar, it’s often quicker and easier to set them on all mailboxes via PowerShell.
First connect to MS365 via PowerShell. On macOS, it’s done like this (note that this doesn’t support modern authentication)
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
On Windows, it’s easier with
Connect-ExchangeOnline with the Exchange Online PowerShell V2 module (which does support modern auth)
Once connected to Office 365 / ExO, then use the following script:
$Users = Get-Mailbox -Resultsize Unlimited
ForEach ($User in $Users)
Write-Host "Setting Permission for $($User.Alias)..."
Set-MailboxFolderPermission -Identity $($User.Alias):\Calendar -User Default -AccessRights Reviewer
This will loop through all mailboxes in your tenancy and set the default sharing permissions to Reviewer on everyone’s calendar.