tags:

views:

661

answers:

6

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

  1. The first four bytes of the file are "0xCAFEBABE" just like in Java class files and Mach-O files (?!)
  2. 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.

A: 

I don't want to frustrate you, but it's almost impossible. I have a palm for 5 years and spent hours and hours to sync my palm with any open platform.

It still does not work properly. The only working solution is sync with Outlook.

There's no official documentation about Palm's file formats. In my opinion, they are not interested in open delevopment and Palm Inc. has more important problem than their file formats.

I gave up. It's a pity, but there was no option.

furtelwart
A: 

The format, IIRC, is the serialization format used by the Microsoft Foundation Classes (MFC). It's highly dependent on the actual implementation of the C++ objects that are being saved to disc. Since MFC source code comes with Visual Studio, you might be able to look at that to figure out what is happening.

However, with the update to the 4.1 Desktop application, the binary format did change to handle the new fields that were added. I'm not privy to those changes or if the code used the same method that the original desktop did.

Ben Combee
This is hard to believe. Why on earth would Pam use MFC serialization format? Isn't the file format shared between the desktop and the Palm?
jdigital
I believe that the data on the Palm itself is stored in the PDB format which actually *is* documented. That's only useful if you're writing a Palm app, though. The Calendar Hotsync conduit does the data conversion to the PC format, correct?
David Citron
Right, the MFC format is used only on the desktop side. Since HotSync ran as a record-level wire protocol between the device and the desktop app, there was no need for the storage formats to be the same for the two applications.
Ben Combee
A: 

Another place to look would be the jpilot project. It's a linux PIM which creates palm databases which can then be sync'ed directly to the palm.

A: 

I know all Palm Desktop file formats, also I have c++/c# classes to create, read, update all 4 file types.

And where did you find the reference from which you wrote your code?
David Citron
He answered in a roundabout way here: http://stackoverflow.com/questions/1932868/palm-desktop-files-format
Nifle
A: 

Look here, there is a very good reader on perl on which you can see the format.

FerranB
I have already linked to that Perl script in my question. Unfortunately, it's not a complete answer--that Perl script only reads some of the fields in the datebook.dat file (see the NOTE near the top of the script).
David Citron
A: 

Hello, I know all Palm Desktop file formats, also I have c++/c# classes to create, read, update all 4 file types.

Oleg
Can you make them available online somewhere? If not this answer is not really helpful. (codeplex, google code, sourceforge, codeproject)
Nifle