Share via

How to get the Room schedule information in real time or in a faster way?

Admin User 0 Reputation points
2026-02-23T15:39:42.4333333+00:00

Hello,

I'm using https://graph.microsoft.com/v1.0/me/calendar/getSchedule to retrieve the room's schedule and display it on a scheduling page of my own calendar system, indicating whether the room is occupied or available. Occasionally, users complain that the room was available but isn't, and vice versa. It seems the room's availability is sometimes not updated.

Looking further, I noticed that the getSchedule endpoint takes more than 40 seconds to return updated information. The endpoint response is fast (milliseconds), but the room's schedule isn't updated.

Is this time considered normal? Is there any way to get the room's availability in real time?

To reach these conclusions, I created a calendar event on https://outlook.office.com/calendar using "US Table Room"

User's image

Using the calendar/getSchedule endpoint and Graph Explorer, the response was empty (img below). The expected schedule value came only after ~40 secs.User's image

After ~40 secs, the response arrived:

User's image

Microsoft 365 and Office | Development | Other
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Steven-N 21,805 Reputation points Microsoft External Staff Moderator
    2026-02-23T23:45:30.6266667+00:00

    Hi Admin User

    Thank you for reaching out to Microsoft Q&A forum

    To investigate this behavior, I conducted tests in my own developer environment. When querying the getSchedule endpoint in a pure cloud-only test tenant, my request did not experience a 40-second delay, the response was almost immediate (around 245ms). User's image

    As far as I know, the getSchedule API acts as a wrapper that queries the underlying Exchange Free/Busy service. When delays like this occur, they are typically tied to the architecture of the specific tenant rather than the API itself.

    If you are consistently encountering this problem, here is my perspective on what might be happening:

    • Hybrid Environments: If the room is hosted on an on-premises Exchange server linked to Microsoft 365, the API must route the request over the internet to your local servers. Network routing and firewall inspections routinely introduce 20 to 40-second latencies.
    • Resource Mailbox Processing: Unlike standard users, room mailboxes rely on a background Calendar Attendant service to evaluate auto-accept policies. This asynchronous processing delays when the Free/Busy cache is actually updated.
    • Tenant Size and Caching: Exchange Online heavily caches Free/Busy data. Querying a room immediately after an event is booked often results in a "cache miss," forcing a dynamic recalculation that can take upwards of 40 seconds in large or heavily loaded tenants.

    Given this, one of the workaround approach I suggest in this context is direct calendarView queries:

    If you prefer to pull data, consider querying GET /users/{room-email}/calendarView instead of getSchedule. This endpoint reads the actual calendar items rather than the cache, often yielding much faster and more accurate results

    Note: this method requires Calendars.Read permissions on the room's mailbox.

    I hope this information helps clarify the behavior you are seeing and provides a path forward for your application. Please let me know if you have any further questions!

    Best regards


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".   

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.  


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.