Get Office 365 Room Mailbox Usage Statistics Using PowerShell

Microsoft 365 room mailboxes serve as valuable resource mailboxes connected to physical locations! To explain more clearly, a room mailbox in Office 365 is a type of resource mailbox associated with a physical location, indicating spaces like conference rooms or shared workspaces. Moreover, it is used to manage the scheduling and booking of the room for meetings and other events. 

Monitoring and managing room mailboxes play a crucial role in ensuring smooth planning and allocation of meeting rooms within an organization. Therefore, Office 365 admins often require usage reports to gain valuable insights into the utilization of these rooms. As I have said, monitoring room mailboxes is imperative as it enhances user experience, optimizes resources, and helps to efficiently plan room capacities. In this regard, let’s delve into the process of generating comprehensive room mailbox usage statistics using PowerShell.


Ways to Check Office 365 Room Mailbox Usage Report 

Monitoring the room mailboxes in Microsoft 365 helps admins make informed decisions and implement necessary improvements that positively impact meeting room management throughout the organization. Moreover, you can get the room mailbox usage report with the help of the following methods. 

View Calendar Information of Room Mailboxes:

So, to obtain Exchange Online meeting room statistics, any user with delegate permission can access the Outlook calendar of the respective room mailbox and view the information. But it is impossible to view all the meeting room utilization reports at one time. 

View Calendar Information of Room Mailboxes Using Outlook Calendar


Get Room Mailbox Usage Using PowerShell: 

You can get the room mailbox usage statistics using the Get-MailboxStatistics and GetMgUserEvent cmdlets. But, before executing the below PowerShell cmdlets, make sure you connect to Exchange Online PowerShell and connect to the Microsoft Graph PowerShell module. 

Whereas, executing the above cmdlet in the Exchange Online PowerShell module returns only the last logon time and an item count of the mailbox with the display name.


The above cmdlet displays the meeting duration, meeting ID, start and end time, show as detail, and some miscellaneous of the respective meetings. However, multiple formatting is typically required to obtain different report formats, which can be time-consuming! 

Therefore, to overcome the limitations of Outlook calendar and PowerShell, we have prepared a PowerShell script that provides valuable insights into meeting room usage. So, let’s look into the script’s details, explore its features, and optimize your organization’s meeting room allocation like never before!

Download Script: RoomMailBoxUsageStatistics.ps1


Script Highlights 

  • Automatically installs the MS Graph PowerShell module upon your confirmation when it is not available on your machine. 
  • Also, you can execute this script with certificate-based authentication (CBA). 
  • You can execute the script with an MFA-enabled account too. 
  • Further, this script is scheduler-friendly! Therefore, you can automate the report generation easily.
  • Generates six different types of reports for meeting room statistics. 
    • Retrieves the most popular meeting rooms in your organization. 
    • Identify the Office 365 active meeting organizers from your tenant. 
    • Generates daily usage patterns across all room mailboxes. 
    • Displays daily usage patterns of individual room mailboxes
    • Retrieves individual Exchange Online room mailbox statistics
    • Obtains the overall count of meeting room events in your tenant. 


Get Exchange Online Meeting Room Statistics – Script Execution 

Using the simple execution format below, you can quickly get the Office 365 meeting room usage report. Therefore, to run this script, you can choose any of the methods below. 

Method 1: You can use the method below to run the script with both MFA & non-MFA accounts. 

Note: You need to connect with an admin account which has delegated full access to all the room mailboxes in your Office 365 tenant. This script will only generate reports associated with room mailboxes having delegate access to the connected admin account.

Method 2: Also, you can execute this script using certificate-based authentication, as mentioned below.  

 Note: But if you prefer not to invest in CA certificates, you can generate self-signed certificates for internal and testing purposes. You can refer to the “Connect MS Graph with Certificates” blog in order to register and obtain certificates for an Azure app.  


Point to Remember: Your app must have the Place.Read.All, User.Read.All and Calendars.Read permissions to execute the script.  


Microsoft 365 Room Mailbox Usage Statistics  Sample Output 

Upon executing the script, first, it scans all the room mailboxes and the events. And then it lists detailed statistics on all Office 365 room mailbox utilization. From tracking conference room availability & occupancy rates to analyzing patterns of shared workspace usage, these reports provide essential data for optimizing resource allocation and improving meeting room planning. Therefore, get ready to explore the simplicity and effectiveness of our solution! Below are the multiple reports generated by this script: 


Get Exchange Online Meeting Room Usage Statistics 

This report provides insights into the total number of events held in all Office 365 meeting rooms. Also, this report shows the percentage of meetings conducted via online Teams meetings in the last 30 days.   

  • Moreover, the meeting room statistics report is highly useful for calculating the percentage of online meetings out of the total meetings. Therefore, this information provides insights into the extent of virtual collaboration & the overall utilization of online meeting platforms.

Get Exchange Online Meeting Room Usage Statistics Using PowerShell


In this report, meeting rooms are prioritized according to their higher meeting count, making it easier to understand and assess their usage. Hence, it starts with meeting rooms that have a higher number of meetings & concludes with those that have a lower number of meetings. 

  • Analyzing this report in a large corporate office allows for data-driven decision-making by identifying consistently booked rooms with high demand for various meetings. 
  • Armed with this information, they can allocate resources more effectively by considering factors such as room capacity and technology equipment when planning future office expansions. 

Get Popular Meeting Rooms in Office 365: Find Out Which Rooms Using PowerShell


Identify Active Meeting Organizers in Office 365   

Next, the above report reveals top meeting organizers by their activity, displaying users who have scheduled the highest number of meetings in 30 days. 

  • Therefore, this report definitely aids in recognition and collaboration among coworkers by identifying highly active meeting organizers within the company. 

Identify Active Meeting Organizers in Office 365 Using PowerShell


Analyze Daily Usage Patterns for All Exchange Meeting Rooms      

The meeting room utilization percentages in this report help to understand how many meeting rooms were used during the week. Therefore, it helps organizations visualize the utilization patterns, see when the meeting rooms have been the busiest, and optimize scheduling accordingly. 

Note: Here the “ooooo” pattern represents the percentage of meetings. Thus, the weekday with the higher number of bookings is displayed with a higher amount of the respective pattern. 

For example: In the screenshot below, Wednesday has the highest number of bookings compared to other weekdays. Therefore, Wednesday is visually represented with a larger amount of the “ooooo” pattern, indicating its higher percentage of meetings. 

Analyze Daily Usage Patterns for All Exchange Meeting Rooms Using PowerShell


Exchange Online Individual Room Mailbox Statistics      

The ‘Individual Room Statistics report provides a detailed overview of specific room mailboxes, including the following key attributes for the last 30 days. Summing up, this report aims to provide insights into the usage and performance of individual room mailboxes within your Microsoft 365 environment. 

Exchange Online Individual Room Mailbox Statistics 

Room: This shows the display name of the specific room mailbox. 

Events: It reflects the total count of events held in the specific room. 

Average Events Per Day: This column displays the average number of events conducted per day in a specific meeting room. 

Total Minutes: This attribute indicates the total duration of meetings held in minutes in a specific room. 

Average Event Duration: It displays the average duration of meetings conducted in a specific room. 

Total Attendees: This attribute represents the total count of attendees in all meetings held in a specific room. 

Average Attendees: It provides the average count of attendees at each meeting held in a specific room. 

  • Therefore, admins can use this report to assess the popularity and demand for different meeting rooms. By analyzing these attributes, they can identify the most utilized rooms and average meeting sizes.


Analyze Daily Usage Pattern for Individual Room Mailbox in Office 365

In this ‘daily usage pattern for each meeting room’, you will find an overview of the usage patterns & trends for each meeting room mailbox within an organization on a daily basis. Thus, this report offers insights into the distribution of meetings and bookings for every room for the last 30 days. 

  • In brief, this report helps to identify peak days for the respective mailbox, enabling effective resource allocation and scheduling adjustments.  
  • Also, this assists in making data-driven decisions to identify peak weekdays and maximize meeting room efficiency.
  • As a result, with this report, admins can plan to improve every user’s productivity and satisfaction.

Analyze Daily Usage Pattern for Individual Room Mailbox in Office 365


To conclude, we hope this blog has given you a comprehensive understanding of obtaining Room mailbox usage statistics using a PowerShell script. Please feel free to ask any questions in the comments section.