Pretty easy! First connect your powershell to exchange as described here

Then run this:

Foreach ($mbx in get-mailbox){

$calendar=$mbx.alias+":\Calendar"

Add-mailboxfolderpermission -identity $calendar -user USERNAME -AccessRights PERMISSION

}
  • USERNAME is the name of the user that you want to give the permissions to
  • PERMISSION is the permission level (role) you want to give that user. The options are:
    • Author   CreateItems, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems
    • Contributor   CreateItems, FolderVisible
    • Editor   CreateItems, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems
    • None   FolderVisible
    • NonEditingAuthor   CreateItems, FolderVisible, ReadItems
    • Owner   CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderContact,FolderOwner, FolderVisible, ReadItems
    • PublishingEditor   CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible,ReadItems
    • PublishingAuthor   CreateItems, CreateSubfolders, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems
    • Reviewer   FolderVisible, ReadItems

Hit enter and let ‘er rip.

NOTE: If permissions for this user have already been defined, this cmdlet will not replace those pre-existing permissions.