Effortlessly Share Your Office 365 Room Calendar with Brisk-IT

Automatically Accepting Meeting Requests and Publishing Calendar Information for a Room Mailbox in Office 365

As an administrator, I often receive questions from customers about how to configure their room mailboxes to automatically accept meeting requests from external parties and publish the calendar information publicly. In this blog post, we will explore how to achieve these requirements using PowerShell commands in Office 365.

Default Behavior of Resource Mailboxes

By default, resource mailboxes only accept requests from internal senders. This behavior cannot be changed through the Graphical User Interface (GUI), and PowerShell is the only way to modify it.

Calendar cmdlets are our friends!

To start, we need to connect to the Office 365 PowerShell environment. Once connected, we can run the following command to list all available calendar cmdlets:

Get-Command -Module Microsoft.Office.Tools.Calendar

As you can see, there are several cmdlets related to calendars, and we will be using a few of them to achieve our goals.

Changing the Behavior for Accepting Meeting Requests

We want to change the behavior of the room mailbox so that it automatically accepts meeting requests from external parties. To do this, we can use the Get-CalendarProcessing cmdlet:

Get-Mailbox “test room” | Get-CalendarProcessing

As you can see on the highlighted line, this is exactly the property we were looking for. We want to set it to $true so that the room mailbox accepts all meeting requests, regardless of the sender’s internal or external status.

To make this change, we can use the Set-CalendarProcessing cmdlet:

Get-Mailbox “test room” | Set-CalendarProcessing -ProcessExternalMeetingMessages $true

This change will only affect new meeting requests; requests that have already been refused won’t be automatically accepted.

Publishing the Calendar Information

Now that we have changed the behavior of the room mailbox to accept meeting requests from external parties, we need to publish the calendar information publicly. To do this, we can use the Get-MailboxCalendarFolder cmdlet:

Get-Mailbox “test room” | Get-MailboxCalendarFolder

As you can see, the calendar is just a folder inside of a mailbox object. We can query this folder directly to get the information we need.

To publish the calendar, we can use the Set-MailboxCalendarFolder cmdlet:

Get-Mailbox “test room” | Set-MailboxCalendarFolder -PublishEnabled $true

As you can see on the highlighted line, we have set the PublishEnabled attribute to $true. This means that the calendar information will be published publicly.

We can also choose the detail level and set how far back and forth the published calendar needs to go by using the Set-MailboxCalendarFolder cmdlet:

Get-Mailbox “test room” | Set-MailboxCalendarFolder -PublishEnabled $true -DetailLevel High -RecurrenceRange StartEnd

Now that we have made these changes, we can browse to the URL of the published calendar to verify everything is being displayed as expected.

Conclusion

In this blog post, we have explored how to automatically accept meeting requests and publish calendar information for a room mailbox in Office 365 using PowerShell commands. By default, resource mailboxes only accept requests from internal senders, but we can change this behavior using the Get-CalendarProcessing cmdlet. We can also publish the calendar information publicly using the Set-MailboxCalendarFolder cmdlet. These changes will help our customers improve their meeting scheduling experience and make it easier for external parties to request meetings with them.