title: Find All Available Meeting Rooms using Microsoft.Office.Interop.Outlook
body: <p>I was developing one application where I want to retrieve the available rooms from the "All Rooms" of the outlook address book. I am able to retrieve all the room entries from "All Rooms" Address Entry List. And then able to search for individual room's availability by calling AddressEntry.GetFreeBusy().
  But the problem I am facing is the time performance of the code. If the number of rooms is high(let's say 500) then the time take to search availability of the room(worst case scenario where available room locates near to last of the list) is very high.</p>
  
  <pre><code>Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application()
  var allRooms = app.Session.AddressLists["All Rooms"].Cast&lt;Microsoft.Office.Interop.Outlook.AddressEntry&gt;().ToLis();
  DateTime today = DateTime.Today;
  foreach(var room in allRooms)
  {
      //the below function will return the room status in a string of 1&amp;0 for an interval of 1 min
      string status = room.GetFreeBusy(today, 1, true); //sequentially calling this method is costly. What improvement can I do here?
      //process the status and make some if free for certain time period add to list of available list
  }
  </code></pre>