I need to bring calendar information (basic stuff just as the status (free, busy, out of office, and for how long)) to another application.

Reading through the API doc, I think there's two ways to go about this

1) Regularly query the free/busy service (with start/closeFreeBusySessionRequest and getFreeBusyRequest).
2) Create a subscription for interesting events.

Events are often the more efficient way to go about this.. but here I'm struggling a bit, especially since the event definitions don't seen to match up with my expectations (I have no previous Groupwise knowhow but I've worked with Exchange before). I figure I'd need events for type Appointment, and I'd be interested in ItemAccept (accepting an appointment request), ItemModify, ItemPurge, ItemDelete.. but what if a new appointment is created? Would that be a FolderItemAdd?
Also, to add to my confusion, I've been unable to find a way to get appointments.. I figured it would be getItemsRequest.. but there's a remark that lists the object types the request is for and it doesn't list appointment (unlike getItemsRequest which mentions Appointment.. so is that just a documentation error?).

So, I have a list of method calls that is unclear on the one hand, on the other the system limits of the free/busy service are unknown to me. has anybody worked on something similar - if so, what route did you go?
Or what are your experiences with the free busy service vis a vis performance.. while you don't expect calendars to change all the time, there's still the issue of meetings being added to a calendar on short notice, and that information should still make it to the other application.