
rem2yaml - convert the output of remind(1) to YAML

rem2yaml [option...] [file...]
rem2yaml -h|--help
rem2yaml -V|--version

rem2yaml processes the output produced by remind(1) as intended for back-end programs (such as rem2ps(1)), printing reminders as a stream of YAML documents.
The input to rem2yaml must have been generated by remind(1) using its options -p and -l.
rem2yaml's output comes in two flavors, consolidated and unconsolidated. In unconsolidated form, each document in the YAML stream is a single reminder; consolidation brings all of a day's reminders together into a single document. These two cases are illustrated below.
If no file is specified,
or if the file name - is specified,
standard input will be processed.

Consolidate events for each day.
Each YAML document in the output will represent a single day,
with the reminders for that day gathered into a reminders element.
For example, consider the following remind(1) input file:
# /home/nkuitse/dt/foo.rem
REM Tue MSG %"Organizing day%"
REM Mar 1 MSG %"Ulysses's birthday%"%
REM Mar 4 2008 AT 08:30 %"Pick up Aunt Yolanda from the airport%"%
Running this through remind(1) at some time during March 2008 yields all reminders for that month in a compact form:
$ remind -p -l /home/nkuitse/dt/foo.rem
# rem2ps begin
March 2008 31 6 0
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
February 29
April 30
# fileinfo 2 /home/nkuitse/dt/foo.rem
2008/03/01 * * * * Ulysses's birthday
# fileinfo 1 /home/nkuitse/dt/foo.rem
2008/03/04 * * * * Organizing day
# fileinfo 1 /home/nkuitse/dt/foo.rem
2008/03/11 * * * * Organizing day
# fileinfo 3 /home/nkuitse/dt/foo.rem
2008/03/18 * * * 510 8:30am Pick up Aunt Yolanda from the airport
# fileinfo 1 /home/nkuitse/dt/foo.rem
2008/03/18 * * * * Organizing day
# fileinfo 1 /home/nkuitse/dt/foo.rem
2008/03/25 * * * * Organizing day
# rem2ps end
Running this through b<rem2yaml> without consolidation yields a series of six YAML documents, one for each reminder. For example, the reminders for March 18 would look something like this:
---
description: Organizing day
date: 20080318
date_time: 20080318
year: 2008
month: 3
day: 18
day_of_week: 2
all_day: 1
event: 2
file: /home/nkuitse/dt/foo.rem
line: 1
instance: 3
---
description: Pick up Aunt Yolanda from the airport
date: 20080318
date_time: 20080318T083000
year: 2008
month: 3
day: 18
day_of_week: 2
hour: 8
minute: 30
event: 3
file: /home/nkuitse/dt/foo.rem
line: 3
instance: 1
With consolidation, these two reminders would be brought together like so:
---
date: 20080318
year: 2008
month: 3
day: 18
day_of_week: 2
reminders:
- description: Organizing day
date: 20080318
date_time: 20080318
year: 2008
month: 3
all_day: 1
day: 18
day_of_week: 2
event: 2
file: /home/nkuitse/dt/foo.rem
line: 1
instance: 3
- description: Pick up Aunt Yolanda from the airport
date: 20080318
date_time: 20080318T083000
year: 2008
month: 3
day: 18
day_of_week: 2
hour: 8
minute: 30
event: 3
file: /home/nkuitse/dt/foo.rem
line: 3
instance: 1
Do not consolidate events into days. This is the default, so this option is generally only used after -d, -b, -e, and -l.
If a day (within any applicable range) has no reminders associated with it, generate a placeholder for the day with an empty reminders list.
This option turns on consolidation, and must be used in conjunction with it.
Turn on consolidation and limit output to the specified date. The date must be provided in one of these formats:
YYYYMMDD
YYYY-MM-DD
YYYY/MM/DD
Turn on consolidation and limit output to dates on or after the specified date. The date format is the same as for option -d.
Turn on consolidation and limit output to dates on or before the specified date. The date format is the same as for option -d.
Turn on consolidation and limit output to dates strictly before the specified date. The date format is the same as for option -d.
Note the difference between -e and -l: the former includes the given date, while the latter excludes it.
Be verbose.
Print help information and exit.
Print the version number and exit. If the -v or --verbose option is specified, print out additional information.
View the manual page for rem2yaml.
View the license under which rem2yaml is distributed.

Paul Hoffman (nkuitse AT nkuitse DOT com)

Copyright 2007-2008 Paul M. Hoffman.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl:
the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version;
or
the "Artistic License".
For the full text of these licenses, see the script file itself or enter the command rem2yaml -L.
