I have participated in a number of questions regarding how to setup a shared calendar within Microsoft's Cloud based Exchange service otherwise known as Office 365.
After many trials that ended in missing calendar entries and other errors, it has been determined that most methods out there do not work as intended. What makes this even more frustrating for Exchange admins, is that many sites, including MS, have mixed up the instructions for Exchange 2003, 2007, 2010 and O365, leaving one looking for settings, check-boxes and windows that do not exist.
So based on what has worked. I have written the following information to show the correct way to set up a shared calendar within Office 365.
Part 1. Office 365 Admin
Login to the Office 365 Admin portal for your organization. To the left of your login name, you will note an ADMIN dropdown tab that gives you access to the following Admin Centers (based on your subscription/licensing model):
Office 365, Exchange, Lync, and Sharepoint.
Using the ADMIN dropdown, switch to the Exchange Admin Center. You should see "Exchange admin center" on the top left of your browser window.
Go to Recipients > Shared > and use the + icon to add a new Shared Mailbox.
Fill-in the required fields:
Within Mailbox Delegation settings, Grant Full Access permissions to any Admin users that will serve as calendar admins (if any). You can use the CTRL key to select multiple users. Grant the Send As permissions to everyone you would like to have access to the shared calendar
The Full Access permission allows a user to open the mailbox as well as create and modify items in it. The Send As permission allows anyone other than the mailbox owner to send email from this shared mailbox. Both permissions are required for successful shared mailbox operation.
Click Save to save your changes and create the shared mailbox.
Logout of the Office 365 Admin portal and open up your Active Directory module for Windows Powershell.
Part 2. Windows PowerShell
Windows PowerShell is a task-based command-line shell and scripting language designed especially for system administration. You can learn more about it here:
To get the right permissions to see and add Calendar events to your shared Calendar, you will need to dig into the specific folder permissions using Powershell. There is so much to know and learn about with Powershell, so I will only go into what is needed...
For hosted Office 365 environments the following Powershell cmdlets will get you logged into your backend/hosted Exchange servers.
From a Powershell command prompt (i.e. mine looks like this: PS C:\Windows\system32>
) You don't
type in that command prompt, just everything after :
PS C:\Windows\system32> $O365Cred = Get-Credential
You should get a standard Windows login prompt, Enter your admin credentials and you should be returned back to command prompt.
Now redirect your session to the cloud server(s) by typing the following:
PS C:\Windows\system32> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365 -Authentication Basic -AllowRedirection
You should get a warning message stating your connection has been redirected to the above ConnectionUri. Now type the following to allow the remote server's Powershell cmdlets to execute.
PS C:\Windows\system32> Set-ExecutionPolicy Unrestricted
You will get another warning about Execution Policy Change and prompted to accept the policy change. Enter Y
Now import the remote PS session using the following command:
PS C:\Windows\system32> Import-PSSession $Session
You should see the remote Powershell cmdlets importing and may get warnings about local vs. remote command overlaps.
Now your ready to start extending your shared mailbox folder permissions! I will be assuming that you are applying standard Author and/or Reviewer Access rights to your shared calendar.
Here is the PS cmdlet to grant users Author access rights. You should replace the "sharedAccount@yourOrg.com" after -Identity AND the "user@yourOrg.com" after -User with the appropriate info for your specific setup. The ":\Calendar" setting assumes you are sharing the shared mailbox account's default Calendar.
PS C:\Windows\system32> Add-MailboxFolderPermission -Identity sharedAccount@yourOrg.com:\Calendar -User user@yourOrg.com -AccessRights Author
When successfully executed the server will re-iterate the information you just assigned as an inline table (i.e FolderName, User, AccessRights).
Reviewer Access rights are setup using the following cmdlet:
PS C:\Windows\system32> Add-MailboxFolderPermission -Identity sharedAccount@yourOrg.com:\Calendar -User user@yourORg.com -AccessRights Reviewer
You will need to enter the Author/Reviewer commands for each user that you would like to extend the specific permissions to within the shared calendar.
Exit Powershell by entering exit ie:
PS C:\Windows\system32> exit
Part 3. Add Calendar to Outlook Methods to add a shared calendar into Outlook varies based on the OS and specific version of Outlook being used.
In any case, to get the shared Calendar to show up within your version of Outlook, you should be able to use the buttons at the top of the Calendar interface.
Click on Open Calendar, then either click on Name to find the person in the Global Address List or type in their email address in the box provided.
Click "OK" button to open the calendar. If you have correct permissions to view this calendar, it will appear on the left.
I hope this helps anyone having the same problems we did trying to share an Events and Out Of Office Calendar within our organization.