Building custom solutions that extend, automate, and integrate Microsoft 365 apps.
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).
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.