What Are Rooms in Outlook Calendar?
In Microsoft Outlook, rooms are shared resources that represent physical meeting spaces like:
Conference rooms
Meeting halls
Training rooms, etc.
These are also called Room Mailboxes in Microsoft Exchange. A room is treated like a user with a calendar:
It has an email address (e.g., [email protected])
It has its own calendar
It can accept/decline meeting requests automatically
Why Rooms Are Used
Rooms help organizations:
How Rooms Work
When you schedule a meeting in Outlook:
Based on availability:
✅ Accepts if free
❌ Declines if busy
And it even sends mail for accept/decline which is handled automatically by Exchange.
Evolution of Room Management: From PowerShell to Microsoft Places
Earlier, managing rooms in Microsoft Exchange required administrators to use PowerShell scripts.
Traditional Approach (PowerShell)
Rooms were created as resource mailboxes using scripts
Required technical knowledge
Changes (like creating or updating rooms) could take up to 24 hours to reflect across the system
No visual interface for managing buildings, floors, or room metadata
This made room management:
Modern Approach with Microsoft Places
With Microsoft Places, Microsoft introduced a user-friendly and centralized experience for managing workplace resources.
Key Advantages
Easily create and manage:
No scripting required
Changes reflect much faster compared to the traditional 24-hour delay
Admins can configure everything through a UI
Can add details like:
Room capacity
Teams device, etc.
Works seamlessly with Outlook
How to Retrieve Room Booking Information
To retrieve room booking information, you need to use Microsoft Graph API – getSchedule. That's exactly what returns:
availabilityView
scheduleItems
workingHours
In Power Automate, use Send an HTTP request of Outlook to get schedule.
URI
https://graph.microsoft.com/v1.0/users/[email protected]/calendar/getSchedule
Instead of [email protected], use your room mail.
Method
POST
Body
{
"schedules": [
"[email protected]",
"[email protected]"
],
"startTime": {
"dateTime": "2026-04-16T00:00:00",
"timeZone": "UTC"
},
"endTime": {
"dateTime": "2026-04-16T23:59:59",
"timeZone": "UTC"
},
"availabilityViewInterval": 30
}
You can pass multiple rooms in schedules. In the result, it will return schedules of all those rooms.
The above action will return output like:
{
"value": [
{
"scheduleId": "[email protected]",
"availabilityView": "000111000...",
"scheduleItems": [
{
"start": {
"dateTime": "2026-04-16T09:00:00",
"timeZone": "UTC"
},
"end": {
"dateTime": "2026-04-16T10:00:00",
"timeZone": "UTC"
},
"status": "busy"
}
]
},
{
"scheduleId": "[email protected]",
"availabilityView": "000000000...",
"scheduleItems": []
}
]
}
Output Explained
scheduleId: Email of the room/resource
availabilityView: Think of availabilityView as a timeline that exactly maps the time range you sent in your request (startTime and endTime defined in your request body).
Returns a string like:
000111000
Each character = 30 minutes slot.
| Value | Meaning |
|---|
| 0 | Free |
| 1 | Tentative |
| 2 | Busy |
| 3 | OOF (Out of Office) |
Only shows actual bookings, not free slots.
So this is how you get the real-time room availability.
Conclusion
In this article, you learned what Outlook room calendars are, the traditional and modern approaches to creating and managing them, and how to retrieve their availability using Microsoft Graph. You also gained an understanding of how real-time availability works through slot-based data, enabling you to build efficient and intelligent room booking solutions.