A simple snippet that’ll allow you to give a certain group PublishingAuthor rights to all calendars in your organization:
$mailboxes = get-mailbox -Resultsize Unlimited foreach ($mailbox in $mailboxes){ try{ Remove-MailboxFolderPermission -Identity "$($mailbox.alias):\Calendar" -User INSERTUSERORGROUPNAMEHERE -Confirm:$False -ErrorAction Stop | Out-Null Add-MailboxFolderPermission -Identity "$($mailbox.alias):\Calendar" -User INSERTUSERORGROUPNAMEHERE -AccessRights PublishingEditor -ErrorAction Stop | Out-Null Write-Host "$($mailbox.alias) processed" -ForeGroundColor Green }catch{ Write-Host "$($mailbox.alias) failed" -ForeGroundColor Red } }
A warning though, calendar permissions in Exchange Online can easily become corrupted. I’ve been in touch with support several times, but their only fix is to tell the user to remove and reapply the permissions, which is a sure way to annoy your users during migration.
So, communicate this in advance!
thx!