It's not that complicated to do, unfortunately there is no way to enable this by default for newly created mailboxes. In other words, you will have to periodically rerun this. Here's what you can use:
$calendars = Get-Mailbox -RecipientTypeDetails UserMailbox | Get-MailboxFolderStatistics -FolderScope Calendar | ? {$_.FolderType -eq "Calendar"} | select @{n="Identity"; e={$_.Identity.ToString().Replace("\",":\")}}
$calendars | % {Set-MailboxFolderPermission -Identity $_.Identity -User Default -AccessRights LimitedDetails}
Some notes on the above. The snippet is using the Get-MailboxFolderStatistics
cmdlet to get the default Calendar folder for each user, as the name of the folder will vary depending on the localization (i.e. "Kalender" in German). Thus, you should not hardcode it to "Calendar", even though the script will run much faster if you do so.
Another point to make is that the permission level is set to LimitedDetails
. This will ensure that all details of the calendar items are shown, but feel free to replace it with Reviewer, if you think that works best for your needs.