I've been digging through EWS Java for a while on an integration project. Most of it is pretty straightforward, although I've had to fix a couple of bugs in it to get things working. One thing I'd like to do is to be able to handle new time proposals on Appointments, but unfortunately, it seems that the only way to do this is with a rather roundabout procedure that involves getting the MeetingResponse from the inbox, then getting the Appointment object from that and performing the necessary actions. I'm hoping there's a better way.
As a bit of background, the project I'm trying to integrate involves scheduling meetings. We're using a single master account for all of these as impersonation/delegation isn't going to work for this project. Tying the creation of Appointments in Exchange to this has been pleasantly simple in most respects. The issues arise if we need to move in the other direction and Exchange needs to talk back to the meeting scheduling application. I've set up a sync folder action to grab updated items. I'd like to be able to get everything from the Calendar folder. I can get the Appointments and retrieve the flag that indicates a new time was proposed, but the PR_MESSAGE_RECIPIENTS table seems to be completely inaccessible to EWS of any variety. The closest thing is the Attendees collection for the Appointment, which definitely seems to draw from that table, but modifying those to include additional information (such as who proposed the new time and those new times as well) seems impossible. It's a server-side black box. That leaves me going through the inbox and sifting through all responses, which is obviously less desirable. Is there any possible way to access that information from the Appointment object, even if it means some server-side code as well? Well, at least short of building out a separate system entirely...
The inbox-combing method might not be so bad, but oddly enough, it seems that extended properties, even those placed in the PublicStrings default property set, are not included in the MeetingResponse. They come through on the Request and even get into the end user's Calendar object, but they are not present in the MeetingResponse, not in the object or the XML response. Is this intended behavior?
I should also note that recurring meetings are not an issue. Our current system does not support them and it likely will not be a concern in Exchange.