Wednesday , October 16 2019

Creating Shared Calendars in Office 365 and Exchange Server

Lets see how to create a common Travel calendar / Vacation Calendar / Public Calendar / Group Calendar using a shared mailbox and create security groups to map owners and reviewers. Please note you need to use PowerShell to achieve the same. It should be simple and easy.

I had to work on this requirement for a company . Where they wanted to plan their vacation on calendars and they don’t want to user resource mailboxes as they don’t want users to look vacation calendars in their resource mailboxes list. So Shared Mailboxes was the perfect option for me.

Was an interesting one. Note in Office 365 and Exchange server calendar permissions doesn’t reflect instantly on Microsoft Outlook. Outlook Web App will take minimal time to Reflect. Lets see how to go about it and achieve the same.

Lets create a Shared Mailbox. (Lets utilize the default calendar within the shared mailbox.)

image

Connect to Exchange Online PowerShell

By default, In Exchange Server and  Office 365 users can view only free busy calendar information items of other users and shared mailboxes.

  • Calendar Default {AvailabilityOnly}
image

For Example you add a shared Calendar to look into some useful information it may look by default. Which is good as default.

Opening Shared calendars via Various Channels

For Specific cases like vacation / travel calendars you need to alter the default permissions.

image

Yearly Vacation

image
New-DistributionGroup -Type Security -Name "Vacation Calendar Reviewers" -Alias "vacationCalendarreviewers"
image

Lets hide it and restrict it.

Set-DistributionGroup vacationCalendarreviewers -HiddenFromAddressListsEnabled $true -AcceptMessagesOnlyFrom vacation@azure365pro.com

image

lets create groups for Owners to manage calendars.

New-DistributionGroup -Type Security -Name "Vacation Calendar Owners" -Alias "vacationCalendarowners"

Set-DistributionGroup vacationCalendarowners -HiddenFromAddressListsEnabled $true -AcceptMessagesOnlyFrom vacation@azure365pro.com
Add-MailboxFolderPermission -identity "vacation@azure365pro.com:\Calendar" -user "vacationCalendarowners" -AccessRights Owner
image
Get-MailboxFolderPermission vacation@azure365pro.com:\calendar | Select FolderName,User,AccessRights
image

Lets Add some users to Reviewers and Owners to Check from Exchange Admin Center.

  • Vacation Calendar Owners
  • Vacation Calendar Reviewers
image

You can allow Conflicts if required. You Can disable Recurring Meeting if required.

Set-CalendarProcessing vacation@azure365pro.com -AllowConflicts $True -AllowRecurringMeetings $false
image

Just listing below for the Options Available for Example

Set-CalendarProcessing vacation@azure365pro.com –ResourceDelegates approver@azure365pro.com

Can forward Meeting Requests for Approval


PS C:\WINDOWS\system32> Get-CalendarProcessing vacation@azure365pro.com | fl

RunspaceId : c3ea4643-4c65-4bc9-ae41-1a235df05a6c
AutomateProcessing : AutoUpdate
AllowConflicts : False
BookingType : Standard
BookingWindowInDays : 180
MaximumDurationInMinutes : 1440
AllowRecurringMeetings : True
EnforceSchedulingHorizon : True
ScheduleOnlyDuringWorkHours : False
ConflictPercentageAllowed : 0
MaximumConflictInstances : 0
ForwardRequestsToDelegates : True
DeleteAttachments : True
DeleteComments : True
RemovePrivateProperty : True
DeleteSubject : True
AddOrganizerToSubject : True
DeleteNonCalendarItems : True
TentativePendingApproval : True
EnableResponseDetails : True
OrganizerInfo : True
ResourceDelegates : {}
RequestOutOfPolicy : {}
AllRequestOutOfPolicy : False
BookInPolicy : {}
AllBookInPolicy : True
RequestInPolicy : {}
AllRequestInPolicy : False
AddAdditionalResponse : False
AdditionalResponse :
RemoveOldMeetingMessages : True
AddNewRequestsTentatively : True
ProcessExternalMeetingMessages : False
RemoveForwardedMeetingNotifications : False
MailboxOwnerId : Vacation
Identity : Vacation
IsValid : True
ObjectState : Changed

Vacation Calendar Owners can Cancel / Approve / Delete / Create

The Owner role gives full control of the folder. An Owner can create, modify, delete, and read folder items; create subfolders; and change permissions on the folder.

image

Vacation Calendar Reviewers can contact Organizer but not do anything else

image

To Remove Calendar Permission

Remove-MailboxFolderPermission -identity "vacation@azure365pro.com:\Calendar" -user "vacationCalendarowners"

Good to Have

  • Owner   –  The Owner role gives full control of the folder. An Owner can create, modify, delete, and read folder items; create subfolders; and change permissions on the folder.
  • Publishing Editor  –  The Publishing Editor role has all rights granted to an Owner, except the right to change permissions. A Publishing Editor can create, modify, delete, and read folder items and create subfolders.
  • Editor  –  The Editor role has all rights granted to a Publishing Editor, except the right to create subfolders. An Editor can create, modify, delete, and read folder items.
  • Publishing Author  –  A Publishing Author can create and read folder items and create subfolders but can modify and delete only folder items that he or she creates, not items created by other users.
  • Author –   An Author has all rights granted to a Publishing Author but cannot create subfolders. An Author can create and read folder items and modify and delete items that he or she creates.
  • Nonediting Author –   A Nonediting Author can create and read folder items but cannot modify or delete any items, including those that he or she creates.
  • Reviewer   –  A Reviewer can read folder items but nothing else.
  • Contributor –   A Contributor can create only folder items and cannot read items.
  • None  –   The None role has no access to the folder.

Other Scenarios _ Please do not use if you don’t have clarity about it.

Get-Mailbox –Database DatabaseName | ForEach-Object {Set-MailboxFolderPermission $_":\calendar" -User Default -AccessRights Reviewer}
Add-MailboxFolderPermission -Identity vacation:\calendar -User Resource Calendar Owners -AccessRights Owner
Get-Mailbox -Resultsize Unlimited | ForEach-Object {Set-MailboxFolderPermission $_":\calendar" -User Default -AccessRights Reviewer}
Import-Csv users.csv | foreach {Add-MailboxFolderPermission -Identity "user@azure365pro.com:\calendar" -User $_.alias -AccessRights Owner }

About Satheshwaran Manoharan

Satheshwaran Manoharan is an Microsoft Office Server and Services MVP , Publisher of Azure365pro.com. Specialized in Office365 / Microsoft Exchange / Virtualization , Sathesh is an Messaging Expert supporting/Designing/Deploying many medium size businesses to large enterprises when it comes to Corporate messaging and Virtualization Infrastructure

Check Also

Save Public IPs using F5 LTM Policies

F5 has different modules and one of them is LTM – Local Traffic Manager . ...

Leave a Reply

Your email address will not be published.