No description or website provided.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
recur don't expect to be in the path May 30, 2012

An add-on for Gina Trapani's todo.txt script, allowing the automatic addition of recurring tasks to the todo list.

Once installed, the recur command should be run from a cron job (or other scheduler), once a day. Any tasks applicable to the current date will be appended to the todo list (if they're not already present).

The recurring tasks are pulled from a recur.txt file, living in the same directory as todo.txt. Each line in recur.txt has the syntax:

[week[,week ...] ] day : task


daily: task    


  • week is an optional list of weeks - "first", "second", "third", "fourth", "fifth" or "last". Weeks are separated by commas only (no spaces).
  • day is one of "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" or "sunday". If a task needs to happen on two different days of the week, you'll need two lines.
  • task is anything that might appear in a todo.txt task, including priority, contexts or projects. Do not include an added-on date, however.


sunday: (A) Weekly review of projects list
monday: Take out the trash @home
last saturday: Apply the dog's flea medicine
first,third friday: Collect and file expenses
daily: run the dishwasher

Note that the add-on attempts to be smart about things, so if you ran this on a Sunday when todo.txt already contained:

(B) Weekly review of projects list @home

It would notice the task with the same text (ignoring priority, context, project) and add nothing.


Download the latest recur archive, and unpack it in a temporary directory, e.g.

tar zxf Todotxt-Recur-1.02.tar.gz
cd Todotxt-Recur-1.02

If you are using the standard location for add-ons ($HOME/.todo.actions.d), you'll want to run:

perl Makefile.PL
make test
sudo make install

to install the recur script and its component modules.

There are a few common Perl modules you'll need if you want to run the make test step: Test::Harness, Test::More and Test::Class. These are not required for normal script operation.

If your add-ons live elsewhere, you'll need to specify that directory as an INSTALLSITESCRIPT option when generating the Makefile.

perl Makefile.PL INSTALLSITESCRIPT=/some/other/directory
make test
sudo make install

(Installing the modules in a user-specific directory, rather than system-wide, calls for setting LIB= as appropriate, and is left as an exercise for the reader.)

See the general Creating and Installing Add-Ons documentation to learn where your add-ons live if you're unsure.