Exchange Online: Set default calendar sharing permissions for all users
In a new Exchange (Online) environment you might want to change the default calendar sharing permissions for all users. By default the sharing permissions for the entire organization are set to “Can view when I’m busy”.
Some companies have a different wish on the default calendar settings of their users. The preferred setting might be “Limited details”. This will show just the headlines and location of the calendar.
If you try to open an invite, it will notify that you do not have access.
So, what options do we have? From the Outlook app you can see that there are 5 options to choose from. (See screenshot below)
From PowerShell we have the following options for the default permissions:
- AvailabilityOnly: View only availability data
- LimitedDetails: View availability data with subject and location
PowerShell
With just a few steps we will set the permissions for the default permissions on all folders.
STEP 1: Connect to Exchange Online
$UserCredential = Get-Credential $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection Import-PSSession $Session
STEP 2: Run the following command to change the permissions for all users to LimitedDetails. Note: if you have a different language, you will need to change “Agenda” to your own language.
foreach($user in Get-Mailbox -RecipientTypeDetails UserMailbox) {
$cal = $user.alias+":\calendar"
write-host $cal
Set-MailboxFolderPermission -Identity $cal -User Default -AccessRights LimitedDetails
}
Great script!
Q: How can I set change this permanently? We don’t want user to be able to change their settings in Outlook.
Also new users should get this by default.