Quantcast
Viewing all articles
Browse latest Browse all 375

How to Show Microsoft 365 Room Mailbox Meeting Details

In Microsoft 365, you only see the availability status on every room mailbox by default. However, many organizations want users to see more details of the room mailbox, such as the organizer, subject, and location. In this article, you will learn how to show the Microsoft 365 room mailbox meeting details.

Room mailbox calendar settings

Users should always add the room mailbox to their calendar to see the room bookings. Once added, they will see the room mailbox calendar, which only shows if the room is busy or free (this is by default).

There are two different roles to show the Calendar folder:

  • AvailabilityOnly: View only availability data (default)
  • LimitedDetails: View availability data with subject and location

The screenshot below shows the default room mailbox calendar set to Availability Only. It will only show whether the room is Free or Busy.

Image may be NSFW.
Clik here to view.
Show Microsoft 365 room mailbox meeting details busy

Step 1. Connect to Exchange Online PowerShell

To run the PowerShell commands specified in the current article, you will need to Connect to Exchange Online PowerShell.

Start Windows PowerShell as administrator and run the cmdlet Connect-ExchangeOnline.

Connect-ExchangeOnline

Step 2. Set Microsoft 365 room mailbox meeting details

Change the room mailbox meeting details for a single room mailbox following these steps:

  1. Specify the room mailbox in line 1
  2. Run the PowerShell script
$mailbox = "Room03@m365info.com"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Calendar" }).Name
Set-MailBoxFolderPermission "$($mailbox):\$($folder)" -AccessRights LimitedDetails -User "Default"
Set-CalendarProcessing "$mailbox" -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false

Note: Only when you create a new room event or edit an event will you see the subject of the room.

If you want to roll back the changes to the default settings for a single mailbox, follow these steps:

  1. Specify the room mailbox in line 1
  2. Run the PowerShell script
$mailbox = "Room03@m365info.com"
$folder = (Get-MailboxFolderStatistics -Identity "$($mailbox)" | Where-Object { $_.FolderType -eq "Calendar" }).Name
Set-MailBoxFolderPermission "$($mailbox):\$($folder)" -AccessRights AvailabilityOnly -User "Default"
Set-CalendarProcessing "$mailbox" -AddOrganizerToSubject $true -DeleteComments $true -DeleteSubject $true

Change the room mailbox meeting details for all room mailboxes using the PowerShell script below.

# Retrieve all room mailboxes
$mailboxes = Get-Mailbox -Filter '(RecipientTypeDetails -eq "RoomMailbox")' -ResultSize Unlimited

# Loop through each room mailbox
foreach ($mailbox in $mailboxes) {
    # Get the Calendar folder for the current mailbox
    $folder = (Get-MailboxFolderStatistics -Identity $mailbox.Identity | Where-Object { $_.FolderType -eq "Calendar" }).Name
    
    # If the Calendar folder exists, set the permissions
    if ($folder) {
        # Set permissions for the Calendar folder
        Set-MailboxFolderPermission -Identity "$($mailbox.Identity):\$folder" -User "Default" -AccessRights LimitedDetails
        Set-CalendarProcessing -Identity $mailbox.Identity -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false
        Write-Host "Set permissions for $($mailbox.UserPrincipalName)" -ForegroundColor Green
    }
    else {
        Write-Host "Calendar folder not found for $($mailbox.UserPrincipalName)" -ForegroundColor Red
    }
}

If you want to roll back the changes to the default settings for all the room mailboxes, run the PowerShell script below.

# Retrieve all room mailboxes
$mailboxes = Get-Mailbox -Filter '(RecipientTypeDetails -eq "RoomMailbox")' -ResultSize Unlimited

# Loop through each room mailbox
foreach ($mailbox in $mailboxes) {
    # Get the Calendar folder for the current mailbox
    $folder = (Get-MailboxFolderStatistics -Identity $mailbox.Identity | Where-Object { $_.FolderType -eq "Calendar" }).Name
    
    # If the Calendar folder exists, set the permissions
    if ($folder) {
        # Set permissions for the Calendar folder
        Set-MailboxFolderPermission -Identity "$($mailbox.Identity):\$folder" -User "Default" -AccessRights AvailabilityOnly
        Set-CalendarProcessing -Identity $mailbox.Identity -AddOrganizerToSubject $true -DeleteComments $true -DeleteSubject $true
        Write-Host "Set permissions for $($mailbox.UserPrincipalName)" -ForegroundColor Green
    }
    else {
        Write-Host "Calendar folder not found for $($mailbox.UserPrincipalName)" -ForegroundColor Red
    }
}

It will set the default settings for all the room mailboxes.

Set permissions for Room01@m365info.com
Set permissions for Room02@m365info.com
Set permissions for Room03@m365info.com
Set permissions for Room04@m365info.com

Step 3. Verify Microsoft 365 room mailbox meeting details

To export the room mailbox calendar permissions, you must run the PowerShell script, following these steps:

  1. Create the folders Temp and Scripts in the (C:) drive if you don’t have them already
  2. Download the Export-RoomCalPerms.ps1 PowerShell script
  3. Or copy the script below into Notepad and save it as Export-RoomCalPerms.ps1 file
# CSV file export path
$Csvfile = "C:\temp\RoomMailboxCalendarPerms.csv"

# Get all mailboxes
$mailboxes = Get-Mailbox -Filter '(RecipientTypeDetails -eq "RoomMailbox")' -ResultSize Unlimited | Select-Object UserPrincipalName, DisplayName

# Count the total number of mailboxes
$totalMailboxes = $mailboxes.Count
$currentMailboxIndex = 0

# Initialize a List to store the results
$Report = [System.Collections.Generic.List[Object]]::new()

foreach ($mailbox in $mailboxes) {
    $currentMailboxIndex++

    # Update the progress bar
    $progressParams = @{
        Activity        = "Processing Mailboxes"
        Status          = "Processing mailbox $currentMailboxIndex of $totalMailboxes ($($mailbox.UserPrincipalName))"
        PercentComplete = ($currentMailboxIndex / $totalMailboxes) * 100
    }

    Write-Progress @progressParams

    # Get Calendar Processing settings for the current mailbox
    $calendarProcessing = Get-CalendarProcessing -Identity $mailbox.UserPrincipalName | Select-Object AddOrganizerToSubject, DeleteComments, DeleteSubject

    # Get the Calendar folder for the current mailbox
    $folder = (Get-MailboxFolderStatistics -Identity $mailbox.UserPrincipalName | Where-Object { $_.FolderType -eq "Calendar" }).Name

    if ($folder) {
        # Get permissions for the Calendar folder
        $permissions = Get-MailboxFolderPermission "$($mailbox.UserPrincipalName):\$($folder)" | Select-Object FolderName, User, AccessRights

        # Add the permissions to the array with user principal name, display name, and calendar processing settings
        $permissions | ForEach-Object {
            $ReportLine = [PSCustomObject]@{
                UserPrincipalName     = $mailbox.UserPrincipalName
                DisplayName           = $mailbox.DisplayName
                FolderName            = $_.FolderName
                User                  = $_.User
                AccessRights          = $_.AccessRights
                AddOrganizerToSubject = $calendarProcessing.AddOrganizerToSubject
                DeleteComments        = $calendarProcessing.DeleteComments
                DeleteSubject         = $calendarProcessing.DeleteSubject
            }
            # Add the report line to the List
            $Report.Add($ReportLine)
        }
    }
}

# Clear progress bar
Write-Progress -Activity "Processing Room Mailboxes" -Completed

# Display the results
$Report | Out-GridView -Title "Room Mailbox Calendar Permissions"
$Report | Export-Csv -Path $Csvfile -NoTypeInformation -Encoding utf8
  1. The PowerShell script will show a list of the room mailbox information in an Out-GridView
Image may be NSFW.
Clik here to view.
Export room mailbox calendar permissions Out-GridView
  1. The PowerShell script will also export the room mailbox calendar permissions to a CSV file in the C:\temp folder
  2. Open the CSV file with an application like Microsoft Excel to see the results
Image may be NSFW.
Clik here to view.
Export room mailbox calendar permissions CSV

After you set the room mailbox calendar to Limited Details, it will automatically show the organizer and room location. In our example below, we edited one event, and it immediately shows the organizer, subject, and location.

Note: It will automatically show the organizer, subject, and location when you add a new room event. The rooms you already booked will not change automatically, but only if you edit them.

Image may be NSFW.
Clik here to view.
Show Microsoft 365 room mailbox meeting details limited

That’s it!

Read more: Export Microsoft 365 calendar permissions with PowerShell »

Conclusion

You learned how to show Microsoft 365 room mailbox meeting details. The default settings of a room mailbox calendar are set to Availability Only, which shows if the room is free or busy. To see all the room mailbox meeting details, such as the organizer, subject, and location, you must change the calendar settings with PowerShell.

Did you enjoy this article? You may also like Manage Room Mailbox with PowerShell. Don’t forget to follow us and share this article.


Viewing all articles
Browse latest Browse all 375

Trending Articles