Assign full permissions for a user to another users calendar

Cannot assign folder permissions in mixed hybrid environment i.e. cannot grant a M365 user calendar permissions to an On-Prem 2016 mailbox or vice versa.

john@contoso.com is the calendar being shared
scahill@xyz or dirk@contoso.de is the person who is being granted permission

Get Existing Permissions

Get-MailboxFolderPermission -Identity john@contoso.com:\Calendar

If user is not English speaking get calendar or other folder local name using
Get-MailboxFolderStatistics -Identity dirk@contoso.de -FolderScope Calendar

Get the existing permissions using the local calendar name
Get-MailboxFolderPermission -Identity dirk@contoso.de\Kalendar

Grant Edit Permissions

Set-MailboxFolderPermission -Identity john@contoso.com:\Calendar-User <alias> -AccessRights Editor

Grant Manage Permissions

Add-MailboxFolderPermission -Identity john@contoso.com:\Calendar -User scahill@xyz -AccessRights Editor -SharingPermissionFlags Delegate,CanViewPrivateItems

Note -SharingPermissionFlags is cloud only

Grant Free/Busy Permissions Only

Add-MailboxFolderPermission -Identity john@contoso.com:\Calendar -AccessRights AvailabilityOnly -User scahill@xyz.com

Grant Read-Only Permissions

Add-MailboxFolderPermission -Identity john@contoso.com:\Calendar -AccessRights Reviewer -User scahill@xyz.com

Grant Limited Details Permissions

Set-MailboxFolderPermission -Identity john@contoso.com:\Calendar -User normilg -AccessRights Editor – scahill@xyz.com -SharingPermissionFlags Delegate,CanViewPrivateItems

Remove Permissions

Remove-MailboxFolderPermission -Identity john@contoso.com:\Calendar -User scahill@xyz.com

Calendar Sharing Rights aka Access Rights

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

Set “Out of Office” on Mailbox with PowerShell

Dates are 6th April 2021 to 7th April 2021 and are always in American format (mm/dd/yyyy)

Uses email address

Set-MailboxAutoReplyConfiguration -identity mary.raymond@XYZ.com -AutoReplyState scheduled -starttime “04/06/2021” -endtime “04/07/2021 08:00:00” -ExternalAudience all -InternalMessage $message -ExternalMessage $message

Set-MailboxAutoReplyConfiguration -identity Emma.johnson@xyz.co.uk -AutoReplyState scheduled -starttime “04/06/2021” -endtime “04/07/2021” -ExternalAudience all -InternalMessage “I am currently out the office and will be returning on 7th April 2021.” -ExternalMessage “I am currently out the office and will be returning on 7th April 2021.”

Uses mail alias

Set-MailboxAutoReplyConfiguration <alias> -AutoReplyState enabled -ExternalAudience all -InternalMessage “This email address is no longer in use. Please email jimmy.parker@XYZ.com, Thanks” -ExternalMessage “This email address is no longer in use. Please email jimmy.parker@XYZ.com, Thanks”

Set-MailboxAutoReplyConfiguration <alias> -AutoReplyState scheduled -starttime “04/06/2021” -endtime “04/07/2021” -ExternalAudience all -InternalMessage “I’m currently out of the office and this mailbox is not being monitored. If you have any queries which need responding to please contact my manager Mark Mende by email mark.mende@xyz.co.uk” -ExternalMessage “I’m currently out of the office and this mailbox is not being monitored. If you have any queries which need responding to please contact my manager Mark Bloggs by email mark.bloggs@xyz.co.uk

If part of the message has a $ sign – Use single quotes instead of double quotes

Set-MailboxAutoReplyConfiguration -identity risk@xyz.com -AutoReplyState enabled -ExternalAudience all -InternalMessage  ‘Thank you for your mail. Please note that this is an unmonitored mail box. Please redirect your mail to $Risk@xyz.com‘ -ExternalMessage ‘Thank you for your mail. Please note that this is an unmonitored mail box. Please redirect your mail to $Risk@xyz.com

To check your results afterwards: 

Get-MailboxAutoReplyConfiguration –Identity  servicing@xyz.co.uk

To turn off auto-replies

Set-MailboxAutoReplyConfiguration -Identity <alias or email> -AutoReplyState disabled

To turn off auto-replies and clear the reply text

Set-MailboxAutoReplyConfiguration <alias or email> –AutoReplyState Disabled –ExternalMessage $null –InternalMessage $null

HTML Multiline Message, use <br> tags for line breaks

Set-MailboxAutoReplyConfiguration -identity <alias or email> -AutoReplyState enabled -ExternalAudience all -InternalMessage “This mailbox is currently closed and is not monitored.<br><br>Please contact the Service Desk using your company’s number below..<br><br>XYZ Europe: +01 123 456 7890 <br><br>Alternatively  please log your issue on Service Desk Online through your company Intranet.” -ExternalMessage “”This mailbox is currently closed and is not monitored.<br><br>Please contact the Service Desk using your company’s number below..<br><br>XYZ Europe: +01 123 456 7890 <br><br>Alternatively  please log your issue on Service Desk Online through your company Intranet.”