Hi,
a nice alternative to calendar synchronisation is the use of caldav (wikipedia). It's an internet standard (RFC 4791) which describes a calendar extension for webdav.
It's supported by some widely used desktop calendars (Thunderbird/Lightning, iCal, Evolution), it's supported by Google Calendar and there are some caldav server already available (daviCal and calendarserver for example).
It's usable everywhere, the events are directly saved on the remote server and can be shared easily with other people. In case of offline mode, a cache can be used so the calendar is sync'ed with the remote server when online mode is activated (like it's done for the desktop counterparts).
Webdav and vcal/ical libraries can be used to build caldav support into the already existing calendar.