Re: [Pyobjc-dev] Support for iCalendar?
Brought to you by:
ronaldoussoren
From: <bb...@ma...> - 2003-04-19 14:36:46
|
On Saturday, Apr 19, 2003, at 05:36 US/Eastern, Dinu Gherman wrote: > Hi, > > I wonder if iCalendar is equally well supported by PyObjC as the > Address-Book application on OS X? I tried to figure out the ICS > format it imports and exports from my own files and specs like > this: http://www.faqs.org/rfcs/rfc2445.html but there seem to be > many magic IDs which I can't make much sense of. So I hesitate > to seriously convert data to such a format and do a lot of trial > and error testing. It isn't so much a PyObjC support issue as it is a published API issue. The AddressBook API was made public and mostly documented by Apple with the release of OS X 10.2. The iCal API and the backing store behind it (there is a lot more going on than just the application itself) is still all private API. With that said, the ICS format is very well documented via the RFC. For the purposes of exporting to iCal, it isn't that hard to write data that iCal can easily import. As well, the publish/subscribe mechanism generally "just works" using the RFC documented formats. In the context of PyObjC, I wrote a custom Cocoa client to the Web Service API of Intent (www.intentcenter.com -- if it complains about https, switch the URL to http... we have a certificate issue). You could subscribe to the data from iCal (the Cocoa app simply created an HTTPServer and barfed up the ICS data whenever iCal requested it). For the most part, you can ignore all of the magic unique identifiers. Simply keep them consistent and iCal will do its best to update records (as opposed to creating new records). Export/import is considerably easier, but less featureful, than syncronization. The syncro APIs/protocol is all private at this point. It is not *that* hard to reverse engineer and you can actually load the various conduits into Python via PyObjC at the command line as a sort of test bench. But, no, none of this is documented. When Apple makes the API available, you can rest assured that PyObjC will support it... b.bum |