PHP Classes

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 enough user ratingsTotal: 179 All time: 8,725 This week: 206Up
Version License PHP version Categories
palm-data 1.0Public Domain5.3PHP 5, Files and Folders, Parsers


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: 69
All time rank: 152069 in United Kingdom
Week rank: 354 Up17 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: <?php $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. CPKS

  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 17KB
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,725
This week:206Up