These are chat archives for OfficeDev/ews-java-api
A java client library to access Exchange web services. The API works against Office 365 Exchange Online as well as on premises Exchange.
You have the correct property definition, but you'll need to explicitly load it once you've fetched the Appointment. It won't be loaded if you use bind, search, etc even if you request it. It must be loaded after retrieval. As a general rule, I'll usually do a search/bind/etc using PropertySet.IdOnly, then load a PropertySet I've constructed with the values I wish to retrieve. For example:
Appointment appt = Appointment.bind(exchangeService, new ItemId("..."), PropertySet.IdOnly);
PropertySet myProperties = new PropertySet();
myProperties.add(...); //Add whatever you want to load into the Appointment including the GlobalUniqueId
Now the GlobalUniqueId should be loaded and you can retrieve it.
As for features in differing versions of Exchange, the best I've been able to find is this:
It details EWS operations and the Exchange version in which they debuted. Perhaps not a perfect format for a feature diff, but it should be sufficient as a starting point to evaluate which operations will work on certain versions and which operations would need to be added if Exchange 2013+ support is built into EWS Java. The catch is that it may not always indicate when particular operations may have been updated, ie, adding new types to existing objects/operations. At least one is marked as such, but I'm not sure if that's comprehensive.
I have yet to find copies of the WSDL/XSD files from Exchange offered in their entirety by Microsoft, although it's possible I've missed them. It would be a handy and easily parsed reference if they were made available for download as most folks don't have each version of Exchange running to retrieve them.