Tag Archives: Remind

iCal 2 todo class properties

Just in case you’d like to play around with the to do creation itself, iCal has a few properties for the todo class that can be added in a similar fashion to what you see in the PARTB string from totodo.sh:

  • completion date (date) : The todo completion date.
  • due date (date) : The todo due date.
  • priority (no priority/low priority/medium priority/high priority) : The todo priority.
  • sequence (integer, r/o) : The todo version.
  • stamp date (date, r/o) : The todo modification date.
  • summary (Unicode text) : This is the todo summary.
  • description (Unicode text) : The todo notes.
  • uid (Unicode text, r/o) : A unique todo key.
  • url (Unicode text) : The URL associated to the todo.

Remind Like Water: totodo.sh

(Part of the Remind Like Water series)

The idea is to separate out the repeating/recurring tasks from the regular projects and actions (contained in a GTD program like iGTD or OmniFocus), and hook it up with a calendar system of some sort. Using remind and iCal, we can make that happen with a smidgen of sealing wax and bailing wire.

This shell script takes the output of the standard rem -q command and creates individual to do items in iCal from it. Pretty simple and barebones at the moment, but works. It will need to be in your path in the terminal and made executable. If you scoff at my mad script skills, feel free to offer alternative approaches — I’d love to hear them.

Like anything nowadays, the script may cause blindness or extreme rashes, so make backups before testing.

# by Robert Daeley
# version 0.1 2007-06-07
# assumes existence of iCal calendar called "remind"
# run in your terminal with ./totodo.sh

REMINPUT=$(rem -q | sed '/^Reminders /d;/^$/d' | 
 tr "n" "," | sed 's/,$/ /')

PARTA='make new todo at the end of todos of calendar 
 remcal with properties {summary:"'
PARTB='", due date:thisday}'
    osascript -e 'set remcal to "remind"' -e 'set thisday 
     to current date' -e 'tell application "iCal"' 
     -e "$PARTA$TODONAME$PARTB" -e 'activate' -e 'end tell'