function export_pilot_csv($id)
{
    /* to be imported to a Palm with:
     *    pilot-datebook -r csv -f webcalendar-export.txt -w hotsync
     */
    $res = export_get_event_entry($id);
    echo "uid,attributes,category,untimed,beginDate,beginTime,endDate,endTime,description,note,alarm,advance,advanceUnit,repeatType,repeatForever,repeatEnd,repeatFrequency,repeatDay,repeatWeekdays,repeatWeekstart\n";
    while ($row = dbi_fetch_row($res)) {
        // uid (long)
        echo $row[0], ',';
        // attributes (int)
        //  128 = 0x80 : Deleted
        //   64 = 0x40 : Dirty
        //   32 = 0x20 : Busy
        //   16 = 0x10 : Secret/Private
        echo $row[7] == 'R' ? '16,' : '0,';
        // category (int: 0=Unfiled)
        echo '0,';
        // untimed (int: 0=Appointment, 1=Untimed)
        // note: Palm "Untimed" is WebCalendar "AllDay"
        if ($row[4] < 0) {
            echo '1,', substr($row[3], 0, 4), '-', substr($row[3], 4, 2), '-', substr($row[3], 6, 2), ',00:00:00,', substr($row[3], 0, 4), '-', substr($row[3], 4, 2), '-', substr($row[3], 6, 2), ',00:00:00,';
        } else {
            echo '0,', pilot_date_time($row[3], $row[4], 0, ','), ',', pilot_date_time($row[3], $row[4], $row[8], ','), ',';
            //endDate,endTime
        }
        //end if ( $row[4] < 0 )
        // description (str)
        echo '"', preg_replace("/\r?\n/", "\\n", $row[1]), '",';
        // note (str)
        echo '"', preg_replace("/\r?\n/", "\\n", $row[9]), '",';
        // alarm, advance, advanceUnit
        // alarm (int: 0=no alarm, 1=alarm)
        // FIXME: verify if WebCal. DB interpreted correctly
        // advance (int), advanceUnit (int: 0=minutes, 1=hours, 2=days)
        // FIXME: better adjust unit
        $ext = get_cal_ent_extras($row[0], 'webcal_site_extras', "cal_name = 'Reminder' AND cal_remind = 1");
        if ($ext) {
            echo '1,', $ext[5], ',0,';
        } else {
            echo '0,0,0,';
        }
        // repeat:
        // repeatType (int: 0=none, 1=daily, 2=weekly, 3=monthly, 4=monthly/weekday,
        // repeatForever (int: 0=not forever, 1=forever)                   5=yearly)
        // repeatEnd (time)
        // repeatFrequency (int)
        // repeatDay (int: day# or 0..6=Sun..Sat 1st, 7..13 2nd, 14..20 3rd,
        //          21..27 4th,  28-34 last week)
        // repeatWeekdays (int: add - 1=Sun,2=Mon,4=Tue,8=Wed,16=Thu,32=Fri,64=Sat)
        // repeatWeekstart (int)
        $ext = get_cal_ent_extras($row[0], 'webcal_entry_repeats');
        if ($ext) {
            switch ($ext[1]) {
                case 'daily':
                    $repType = 1;
                    break;
                case 'weekly':
                    $repType = 2;
                    break;
                case 'monthlyByDate':
                    $repType = 3;
                    break;
                case 'monthlyByDay':
                    $repType = 4;
                    break;
                case 'yearly':
                    $repType = 5;
                    break;
                default:
                    $repType = 0;
            }
        } else {
            $repType = 0;
        }
        if ($repType) {
            echo $repType, ',';
            // repeatType
            if ($ext[2]) {
                echo '0,', substr($ext[2], 0, 4), '-', substr($ext[2], 4, 2), '-', substr($ext[2], 6, 2), ' 00:00:00,';
            } else {
                echo '1,,';
            }
            // repeatForever,repeatEnd
            echo $ext[3], ',';
            // repeatFrequency
            switch ($repType) {
                case 2:
                    // weekly
                    echo '0,', bindec(strtr(strrev($ext[4]), 'yn', '10')), ",1\n";
                    break;
                case 3:
                    // monthly/weekday
                    // repeatDay (0..6=Sun..Sat 1st, 7..13 2nd, 14..20 3rd,
                    // 21..27 4th,  28-34 last week)
                    echo floor(substr($row[3], 6, 2) / 7) * 7 + date('w', date_to_epoch($row[3])), ",0,0\n";
                    break;
                case 1:
                    // daily
                // daily
                case 4:
                    // monthly
                // monthly
                case 5:
                    // yearly
                    echo "0,0,0\n";
            }
            //end switch
        } else {
            echo "0,0,,0,0,0,0\n";
        }
    }
    //end if ( $repType )
}
function export_install_datebook($res)
{
    while ($row = dbi_fetch_row($res)) {
        $start_time = pilot_date_time($row[3], $row[4], 0);
        $end_time = pilot_date_time($row[3], $row[4], $row[8]);
        printf("%s\t%s\t\t%s\n", $start_time, $end_time, $row[1]);
        echo "Start time: {$start_time}\n";
        echo "End time: {$end_time}\n";
        echo "Duration: {$row['8']}\n";
        echo "Name: {$row['1']}\n";
    }
}