I have developped a Synchronization layer between Sync4j and uwCal (
http://www.washington.edu/ucal/), an open-source calendar server. It would be quite easy I think to do the same for Zimbra. The synchronization layer is not calendar server, nor synchronization server specific. It only assumes the sync protocol is SyncML. Thus, you could re-use the totality of the existing code. You would simply have to implement 1 interface, to connect the calendar store with the synchronization server. You might also need to modify the calendar store or provide your own change log, since SyncML assumes that both synchronization parties keep track of what has changed between 2 synchronization processes.
Feel free to contact me if you would be interested.
Regards
Heladito