Palm Desktop: Convert Palm Desktop files to other formats

Recommend this page to a friend!
  Info   View files View files (14)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not yet rated by the usersTotal: 168 All time: 8,693 This week: 235Up
Version License PHP version Categories
palm-data 1.0Public Domain5.3PHP 5, Files and Folders, Parsers
Description Author

This package can convert Palm Desktop files to other formats.

It provides several classes that can read and parse Palm Desktop files for address books, calendars and memos.

The parsed data can be exported to a XML format or iCalendar.

Innovation Award
PHP Programming Innovation award nominee
October 2012
Number 6

Prize: One downloadable copy of Komodo IDE
Palm handheld devices used to be very popular in the late 90s and early 2000s.

They came with a suite of applications for desktop computers named Palm Desktop that could synchronize and manage the information stored in the Palm devices, like contacts, calendars, etc..

This PHP class provides a solution to access to the information stored in data files managed by the Palm Desktop applications.

Manuel Lemos
Picture of CPK Smithies
  Performance   Level  
Name: CPK Smithies <contact>
Classes: 7 packages by
Country: United Kingdom
Age: 66
All time rank: 152267 in United Kingdom
Week rank: 811 Up30 in United Kingdom Up
Innovation award
Innovation award
Nominee: 4x

PHP 5.3+ Based Palm data file conversion
designed and written by CPKS

1. Introduction:

The classes in this package are designed to read Palm Desktop address book,
date-book and memo files in the .ABA, .DBA and .MPA formats, which are related.

The principal difference between the three families of files is that whereas
address book and memo items were categorized, date-book (calendar) items were
not. In the case of the categorized data, early versions of the Palm Desktop
wrote each category to a separate category.ABA or category.MPA file; and
datebook items were written to Unfiled.DBA because "unfiled" was the default
category. Later versions of the software wrote all three types of item to
a single file: address.dat, datebook.dat and memopad.dat. The classes in
this package will work with all of these.

2. Acknowledgments:

The palm file formats were documented at

at which site is a Python script by Aleks Totic which I used for inspiration,
particularly for the datebook iterator logic (which I have not tested).

Further, but limited, inspiration was provided by

3. Licensing:

On licensing, please see the LICENCE file issued with this package.

4. Files in this package:

4.1 binfile.php: a completely general binary file reading class

4.2 palmfile.php: basic Palm data file parser, extends binfile

4.3 datebookfile.php: classes to handle datebook files and records

4.4 cat_file.php: general palm file parser with added category handling

4.5 adrbookfile.php: classes to handle address book files and records

4.6 memofile.php: classes to handle memopad files and records

4.7 cvt_adrbook.php: simple program to dump an address book file in XML

4.8 cvt_datebook.php: program to dump datebook files to XML

4.9 cvt_memopad.php: program to dump memopad files to XML

4.10 icalevent.php: classes to enable dumping datebook records to iCalendar format

4.11 cvt_ical.php: program to dump datebook files to iCalendar format

4.12 LICENCE: licensing details

4.13 README: this file

4.14 phpdoc.dist.xml:
Assists the phpdoc documentation-generating package in producing documentation
for this package.

5. Documentation

I have elected to tailor this package to the PEAR phpdoc documentation system.
This produces good interactive HTML browsing capabilities together with an
SVG class diagram showing package and namespace relationships as well as
the object inheritance/implementation tree. See
for installation instructions.

6. Historical remarks on this package

This project was born when my last Windows machine died, and I found myself
hindered in getting the Windows system to boot on a new machine. Instead, I
resolved to move my old Palm data into a non-legacy format (XML).

My quest therefore was to find some free software that could parse the Palm
data files. In due course I found the sample parsing program by Aleks Totic.

Totic's Python program was ill-conceived in that it provided a function
to iterate over N data records, processing their contents directly. However,
a palm data file counted as a data record for this purpose, and all its
data records were read in recursively; so that instead of iterating over
the data, the effect of reading one record was to read the whole file.

To save memory, the present implementation uses two types of object: one to
represent the data file, which stores header information; and one to represent
the data record. The file object works as an Iterator that delivers one
data record object at a time. So, to process for example a datebook file
one event at a time, all one need do is the following:

$datebook = new palmdata\datebookFile('datebook.dat');
foreach ($datebook as $event) $event->convert_to_something();

Several example programs are provided to illustrate the principles of use.

  Files folder image Files  
File Role Description
Plain text file adrbookfile.php Class Parser for Palm Address Book (contacts) files
Plain text file binfile.php Class Basic binary file reading
Plain text file cat_file.php Class Parser for categorized Palm Desktop files
Accessible without login Plain text file cvt_adrbook.php Example Demonstrates conversion of address book file to XML
Accessible without login Plain text file cvt_datebook.php Example Demonstrate conversion of datebook files to XML
Accessible without login Plain text file cvt_ical.php Example Demonstrate conversion of Palm Desktop datebook (calendar) to iCalendar format using imcobjects2
Accessible without login Plain text file cvt_memopad.php Example Demonstration: converts memopad files to XML
Plain text file datebookfile.php Class Parser for Palm Desktop datebook/calendar files
Plain text file icalevent.php Class Class to export Palm Desktop data to iCalendar format
Accessible without login Plain text file LICENCE Lic. Licensing information
Plain text file memofile.php Class Parser for Palm Desktop Memopad files
Plain text file palmfile.php Class Generic parser for Palm Desktop files
Accessible without login Plain text file phpdoc.dist.xml Conf. Documentation generator configuration
Accessible without login Plain text file README Doc. Overview of files and their purpose 23KB
Downloadpalm-data-2012-10-06.tar.gz 16KB
Install with ComposerInstall with Composer
Needed packages  
Class DownloadWhy it is needed Dependency
IMC Objects 2 Download .zip .tar.gz conversion of Palm datebook to iCalendar Conditional
 Version Control Unique User Downloads Download Rankings  
This week:0
All time:8,693
This week:235Up

For more information send a message to info at phpclasses dot org.