前言
要 Book 一堆人及會議室時,是一件很累人的事情。
平常 Book 的方式就是,將與會人員及會議室加在一起,
然後努力地看那個時間點是大家有空閒的時間,
那個會議室在那個區段也是空閒的,如下,

那是不是有什麼方式可以節省肉搜的時間呢?
使用 Exchange Web Service (EWS) 提供的 GetUserAvailability 就可以達到這個需求哦~
實作
Q.要如何知道 2023/05/19 這天,chris, ericlin 及 janet 有那些會議呢?
Q.在 2023/05/19 這天, chris, ericlin 及 janet 要開會 1.5 小時,他們有那些時段可以選呢?
Q.在 2023/05/19 這天, 要 Book chris, ericlin 及 janet 及 會議室 1.5 小時,他們有那些時段可以選呢?
以下就下述的問題透過 EWS 取出需要的資訊,
1.專案請加入 Microsoft.Exchange.WebServices
Nuget 套件及 System.DirectoryServices
參考。
2.接下來 EWS 的 Web Service URL 及設定連線人員帳/密,呼叫 GetAvailability
來取得資訊,如下,
1 | using Microsoft.Exchange.WebServices.Data; |
- 註: 因為我會議室沒有放到 RoomList 之中,所以透過 AD 來 Search 出來
執行結果如下,

可以發現在 5/19 ,只有 chis 及 janet 有會議

可以發現,這 3 人最合適的時間為 2023/05/19 16:30:00 - 2023/05/19 18:00:00

列出所有的會議室及容納人數

參考資源
Get free/busy information by using EWS in Exchange
Exchange Development: Finding Rooms and Busy/Free status with Suggestions for Meeting
GetUserAvailability