Office 365 – How to Publish a Room Calendar

posted by Phi-lac Nguyen
on Nov 06, 2018
The purpose of this article is to explain how to publish a room calendar using Microsoft Exchange Online with PowerShell. Following these instructions and making room calendars available for everyone to view on the intranet can make it easier to book a meeting room.
By default, a room calendar is not published. A user can get access to it by adding it from Outlook:
It is not convenient to manage room calendars the “classic” way, as it makes it difficult to tell when a room is available. If a company has 10 meeting rooms to manage, it is preferable to have a view for all of the room calendars.
Here are the steps to follow to publish a room calendar:
1. Connect to Exchange Online:
In order to connect to Exchange Online with Powershell, the following script needs to be run:
$UserCredential = Get-Credential
$Session = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic –AllowRedirection
Import-PSSession $Session –DisableNameChecking
2. Publish The Room Calendar:
Set-MailboxCalendarFolder -Identity [email protected]:\calendar -PublishEnabled $true
You can verify if the command works by executing this command:
Get-MailboxCalendarFolder -Identity [email protected]:\calendar
3. Enable More Details:
This step is required to get the URL of the calendar:
Get-MailboxCalendarFolder -Identity [email protected]:\calendar -DetailLevel Full
4. Get The URL of The Room Calendar:
Get-MailboxCalendarFolder -Identity [email protected]:\calendar
The URL should appear as in the below screenshot:

***
[Read more: All You Need to Know about Site-to-Site VPN]
NIFTIT is a development and design agency in New York, Vietnam, and Hong Kong. We are dedicated to empowering businesses of all sizes and non-profit organizations through nifty solutions. Our team develops customized solutions according to the best business practices in the industry. In our weekly blog, we provide the latest news and useful technical information about SharePoint, Office 365, and Power BI. We welcome you to subscribe to our newsletter!
it is a great post.
Great
quick question @PhiLac:
– After public, everyone have permission access Sharepoint can access Room Calendar ? even user have no permission of Exchange online ?
– is it readonly calendar right ?
The calendar becomes public and accessible for everyone in read only.
Thanks so much for these instructions! This was a big help. There is one small mistake in Step 3. It should say “Set-MailboxCalendarFolder” instead of “Get-…”
Also it maybe helpful to show the other options instead of just FullDetails – they’re listed here:
https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/set-mailboxcalendarfolder?view=exchange-ps
The options are AvailabilityOnly, LimitedDetails or FullDetails.
Plus we can use Powershell to change how far in advance the calendar items are published. It defaults to just ThreeMonths. I changed this to OneYear.
Your article definitely pointed me in the right direction. Thanks!
Hello, thanks for the info. However I get HTTP ERROR 403 when I try to access to public URL. What have I missed? I have done all the above steps.
Hi Kalle,
Thank you for leaving a comment on this blog
The link needs to have the value:
-PublishEnabled $true
You can check by using the following command:
Get-MailboxCalendarFolder -Identity [email protected]:\calendar
– NIFTIT Team
Hello, Thanks very much for the article it’s quite helpfull. I am trying to get a way to do a Rooms reservation from outside of the organization. Is there any way to that I don’t know may be with sharepoint, could it be?
Thanks again for some help
Regards Julian
Great instructions, thanks!
When I access the published calendar in a web browser, all appointments are showing as UTC, rather than PDT as in Outlook. Is there a setting I can change in powershell to resolve this? Thanks, Richard
Thanks very much for the article it’s quite helpful.
1. Connect to Exchange Online:
2. Publish The Room Calendar:
3. Enable More Details:
4. Get The URL of The Room Calendar: