I'm looking for documentation on the file format of Palm Desktop's "datebook.dat" file for versions of Palm Desktop >= 4.1.
Note that http://www.notsofaqs.com/datebook_dat.php documents part of the <4.1 datebook format, but I'm looking for the current "Calendar" format used by the current version of Palm Desktop.
There exist Perl and PHP scripts that attempt to reverse-engineer portions of the format, but a complete spec would be most helpful.
I could not find anything on the Palm Developer Web site.
The only additional clues I have are
- The first four bytes of the file are "0xCAFEBABE" just like in Java class files and Mach-O files (?!)
- A forum post in a user group mentioned that Palm was using some kind of "MS Serialization" technique and linked to a defunct post on a previous incarnation of the Palm Developer Network
Any help would be greatly appreciated! For example, if anyone knows of a Microsoftish serialization format that uses the "0xCAFEBABE" magic number, this might help my sleuthing.
Was just searching for the same thing and stumbled across this discussion. The best I've found so far is dbapipe which can read and write dba files (using its own text format as an intermediate representation). The program handles the 4.1.4 and earlier formats. This doesn't constitute documentation, of course, but a working program is a good start. The program is written in C and the download includes a precompiled version for Windows.
EDIT:
Note that dbapipe fails if it hits a calendar entry with a location.
One other resource I've located is a Palm datebook manipulation module that is part of the Gabbie natural language command system. Its palm.c file has some documentation.
It's a pity Palm didn't provide official documentation for their file formats. I wonder if part of this is embarrassment about the kludgey design.