0
votes

I have general question regarding using Exchange Web Service.

I am using ews-java-api

https://github.com/OfficeDev/ews-java-api

and also tried using JEC - Java exhange connector.

http://elich11.freeshell.org/index.html

If a company have 100 to 500 rooms our goal is to get a total list of appointments/meetings for all of these rooms at once as fast as possible. Using this api what is the best solution for this issue that uses the least time to get a total list of appointments from a list of already known room addresses.

List attendees = new ArrayList();
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");
attendees.add("[email protected]");

I tried running through a list of email adresses in an array using impersonation for each mailbox to gain acces to the meetings. I have also tried to grant delegation to each mailbox for one specific user, so i dont have to impersonate each mailbox for the user this user to get the appointments.

My problem is with the number of rooms companies can have, both of these methods i slow because the number of webservice calls increases with the amount of mailboxes.

Is there any suppported method og workaround for extracting appointments for more than one mailbox without having to perform a webservicecall for each resource (mailbox)?

1

1 Answers

0
votes

It depends of the level of detail you need for each appointment. If you need the full Appointment object there is no other way you can do it. However you may want to consider running multiple concurrent queries (you need to consider throttling will affect you a some point if you push this too far).

Otherwise if you can deal with just having the Subject,Start,EndTime for appointments then GetUserAvailbility https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/getuseravailability-operation should work okay in batches of 100.