********** BEGIN *************** #!/usr/bin/perl # # Converts remind-format appointments on standard input to diary format on standard out # open (REM, "rem -s3 -r -q |") || die; while () { if (m%([0-9]{4})/([0-9]+)/([0-9]+) \S+ \S+ (\S+) (\S+)\s+(?:[0-9]+:[0-9]+[ap]m )?(.+)%) { ($year, $month, $day, $duration, $start, $desc) = ($1, $2, $3, $4, $5, $6); if (substr($desc, 0, 1) eq "&") { $desc = substr($desc, 1); $mark = "&"; } else { $mark = ""; } if ($start eq "*") { printf ("%s%s/%s/%s %s\n", $mark, $day, $month, $year, $desc); } else { $start = int($start); if ($duration eq "*") { printf ("%s%s/%s/%s %d:%02d %s\n", $mark, $day, $month, $year, $start / 60, $start % 60, $desc); } else { $duration = int($duration); $end = $start + $duration; printf ("%s%s/%s/%s %d:%02d-%d:%02d %s\n", $mark, $month, $day, $year, $start / 60, $start % 60, $end / 60, $end % 60, $desc); } } } } close(REM);