This is a handy script that will update everyone's calendar:
First, Connect-ExchangeOnline
foreach($user in Get-Mailbox -RecipientTypeDetails UserMailbox) {Set-MailboxFolderPermission -Identity ($user.alias+':\calendar’) -User Default -AccessRights Reviewer}
-AccessRights can be set to Reviewer for full details, LimitedDetails for subject and location, or AvailabilityOnly to restore the default values. Editor allows full control, but I doubt people want that.
Note that the Exchange default permissions doesn't seem to affect internal users, so this must be done via PowerShell whenever a new user is created, if you want it to keep up.
