Wow Zimbra folks! Well over a year with no resonses. Tisk ,tisk!
I'll attempt to answer.
Via SOAP (whatever language you're using, I'm using PHP) and after you authorize, you must send your request to
http://your.zimbra.domain/service/soap
GetAppointmentRequest is only for getting an actual appointment (I think). Zimbra uses appointments as a container. If there are no recurring instances, then it's just the appointment ID you need.
If you have recurring instances, then thay are contained within the first appointment in the series and you have to use the SearchRequest API. Specify your namespace as urn:zimbraMail and set AT LEAST the following params:
types = appointment
calExpandInstStart = time in milliseconds
calExpandInstEnd = time in milliseconds
inid = your calendar ID #
You can also set the limit, which seems to limit the overall appointments (not instances).
This wokred for me in the context of a form where the user can select from a list of available times to book an appointment. My script queries the calendar, which is pre-populated with recurring instances, and gets the free slots to put in the list (GetFreeBusy API DOES NOT work for this, which is why I did it my way). I had to manually do a chronological sort on the result because the sort param didn't work.
Hope this helps.
HEY ZIMBRA, WRITE A REAL API WOULD YOU!!!!!! CHECK OUT THE ZEND FRAMEWORK API DOCS TO SEE WHAT A GOOD ONE LOOKS LIKE.