Is there hope of automated Oracle Calendar iCalendar export?

At work, we use Oracle’s calendaring software. Oracle is nice because it can be synced via SyncML. This worked great with my Treo thanks to Synthesis’ PalmOS client software. But sadly, my iPhone is hopelessly tethered to Apple iCal. Ironically an iPhone on PC would have no problems since you can sync an iPhone with Outlook, and sync Outlook with Oracle Calendar via SyncML. But being attached to iCal is a decided problem. It’s just not used by enough corporate types that it gets that kind of attention. The only sync tool I found, Spanning Sync, hooked iCal up to Google Calendar which is a big win for me, since I do my personal calendar stuff in Google Calendar. So we’re 50% of the way to having my calendaring life mobile.

But the only solution I currently have to get my Oracle calendar data onto my iPhone is to manually export it in iCalendar format – a format that existed before iCal but has since been conflated with the Apple product, even in Google’s own usage: “If you know the address to a calendar (in iCal format), you can type in the address here.

Exporting iCalendar files into iCal to get a one-time dump of upcoming meetings works fine, but it’s not exactly clean and easy (especially in contrast to Spanning Sync). My obsession with elegant solutions (or some might say fundamental laziness) prevents me from accepting this in the long term.

So, what to do? Well, as I mentioned, Oracle Calendar offers SyncML synchronization. So if I could theoretically get a SyncML frontend for iCal, I’d be golden, but that appears not to exist. Just to taunt me, recent iterations of iSync apparently support SyncML in order to talk with various SmartPhones that have standardized on the protocol. But that’s SyncML over USB or SyncML over Bluetooth, and instead of implementing a SyncML client, iSync is implementing the server end of the transaction.

But, seriously, I don’t have much need for bidirectional sync with my Oracle calendar. I rarely have to stuff a meeting into my calendar when I’m not sitting at my laptop — I’m at my desk all day long. I would just like to be able to glance at what’s coming up when I’m on the go. So what about a SyncML client that dumps its results to iCalendar format? Better yet, in web app form (perhaps with caching so that it doesn’t completely kill the Oracle server every time you hit it), so that the iCalendar feed can have a URL? Then I could get my Oracle data via Google or iCal (both support remote iCalendar feeds).

So it looks like there are a few libs out there that might help. I downloaded libsyncml (which is not to be confused with this defunct libsyncml project), and compiled it. To my immediate and utter joy, I discovered the lib came with a few utility/demo applications. One was called syncml-http-client. It is completely undocumented save for the –help output, which it seems to share with syncml-http-server and syncml-obex-client. Some of the features seem like they’d be more relevant to a server than a client. And as far as I can tell, syncml-http-client completely ignores the rather important issue of authenticating itself. The library seems to be tailored more for acting as a single-user server or client than as a client of a major multiuser application. Ethereal dumps of the SyncML conversations seem to indicate that syncml-http-client and Oracle are indeed speaking the same language, but syncml-http-client is completely confused when asked by Oracle to authenticate itself.

So I’m going to dust off my previously meager and now practically nonexistent C chops and see what can be done about it. Luckily SyncML is an open protocol, so the only limitation is my own ineptitude.

Would that all Oracle calendar instances did out-of-the-box what Case Western’s does