[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More


How to correctly share a Calendar from within MS Office 365

Published on
43,037 Points
8 Endorsements
Last Modified:
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:

    Display name
    Email address

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

NOTE: 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

Open in new window

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

Open in new window

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

Open in new window

You will get another warning about Execution Policy Change and prompted to accept the policy change. Enter Y to allow.

Now import the remote PS session using the following command:
PS C:\Windows\system32> Import-PSSession $Session

Open in new window

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

Open in new window

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

Open in new window

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

Open in new window

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.
Author:Ugo Mena
  • 2

Expert Comment

You guys were missing a key piece in this command:

PS C:\Windows\system32> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365 -Authentication Basic -AllowRedirection

The -Credential $O365 variable is wrong as it should have been coded $O365Cred, see very first command that you mentioned...

$O365Cred = Get-Credential

Also for some reason my LOCAL ADMIN account had permission issues with the Powershell registry entries.  I had to change your command to... Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Thank you though this has helped... My client had 759 entries in their calendar as they have been using it for some time... It seems that it will take over 1 hour to list entries of the old calendar to the new one.
LVL 13

Author Comment

by:Ugo Mena
@ RusGeek-Thanks for adding to this article. Although I don't agree that there is any information missing when setting up the remote powershell session with the following command:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365 -Authentication Basic -AllowRedirection

Open in new window

Please see the attached screenshot showing the whole session from start to finish.

FYI, the information is still relevant using the Azure Active Directory Powershell Module

Expert Comment

by:Coriron Haz
Is there a way to add sharing permissions to a group of users at the same time? (i suspect this would be a security group).

I want to share one users calendar with multiple users
LVL 13

Author Comment

by:Ugo Mena
Yes, it appears that it can be done, however the Security group must be Universal (Cannot be Domain or local).

Add users to this security group.

In Exchange, add a new distribution group and select this new Security group as the target group.

After the group has been enabled as an "email enabled security group" you can assign the permissions for the person's calender to the group using this command:

add-MailboxFolderPermission -Identity USERID:\Calendar -User Sercuritygroupname -AccessRights Owner

Open in new window

Probably will want to hide this group from the Global Address List to prevent errant emails from going to this group

Featured Post

Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

This is Part-2 of Learning to use the Power of Mailwasher Pro so if you haven't watched Part-1 yet, I urge you to do so before watching this video. Click this link to watch Part-1 (https://www.experts-exchange.com/videos/56638/Learn-to-use-the-POWER…
Watch this simple and effective video tutorial to extract attachments from Outlook 2007 and try this easy method by yourself. No need to go anywhere, just watch the video and export attachments from Outlook in few simple steps. To know more, click h…

Keep in touch with Experts Exchange

Tech news and trends delivered to your inbox every month