When moving from exchange on-premise to exchange online, in an ideal world, you would also be getting rid of the dependence of public folders – and the misery that comes along with them.
As part of some work that i recently undertook, this was one of my tasks.
To be more specific, My task was to design a solution that would provide end users the same functionality as they currently have with a public calendar – with a shared calendar.
There are several ways that this could be implemented, and at the end of the day it all comes down to the requirements.
For my scenario, the requirements were simple.
- They want all the users to have full access to the calendar
- All the objects of the calendar to be visible to all users who have access to it
- Did not want this to become too much more difficult than it was with a public calendar
With the requirements in hand, i set out to complete this.
How to move from public folder calendars to shared calendars.
- First, i created the accounts that the shared mailboxes would use in Active Directory.
- Provision the mailbox for the accounts in exchange online and converted them to shared mailboxes.
- For each account/mailbox that i created, i also created a universal security group
|Name||Associated Access Group|
- The next step was to add the users who needed full access to the shared calendar to the associated access group.
- Once i added the users to the group, i needed to give that group full owner permissions on the calendar – this would mimick the same permissions that the users had on the public calendar.
To do this, i opted for powershell.
|Add owner permissions to calendar by scoping group||Command to verify changes are successful|
|Add-MailboxFolderPermission -Identity firstname.lastname@example.org:\calendar -User AG-Finance-SharedMailboxCalendar-FullAccess -AccessRights owner||get-MailboxFolderPermission -Identity email@example.com:\calendar|
|Add-MailboxFolderPermission -Identity firstname.lastname@example.org:\calendar -User AG-technology-SharedMailboxCalendar-FullAccess -AccessRights owner||get-MailboxFolderPermission -Identity email@example.com:\calendar|
|Add-MailboxFolderPermission -Identity firstname.lastname@example.org:\calendar -User AG-HR-SharedMailboxCalendar-FullAccess -AccessRights owner||get-MailboxFolderPermission -Identity HR@notbad.tech:\calendar|
Unfortunately, there is no easy way to move content over other than for the calendar owners to re-populate it.
And in case you’re thinking, how do you prevent users from getting confused and emailing this shared mailbox – i personally did not take any precautions against this, however, if i was to….
Hint: I would look into adding message delivery restrictions.
Hopefully this post can prove useful to you!
If you have any questions please feel free to comment and ill do what i can to help.
Thank you for reading.