Recurring Tasks

Task supports recurring tasks, which is a task that keeps falling due, on a regular schedule. An example of this may be "pay rent". Here is how recurring tasks work in task:

Ordinarily, a task is a single item that is entered in the pending state, and remains so until it is either completed or deleted. This is an example of a single instance task.

A recurring task is different. When a recurring task is entered, it remains hidden from view, but acts as a root task for a task instances that are generated on a regular basis. Consider the example:

% task add Pay rent due:7/1/2008 recur:monthly

If today's date is 7/10, for example, then that due date is in the past, and you might expect there to be an already overdue task for 7/1/2008, and another due on 8/1/2008. This means that from that root, task has created two instances with different due dates.

% task list

ID Project Pri Due         Active Age   Description
1              7/1/2008           1 min Pay rent
2              8/1/2008           1 min Pay rent

2 tasks

Task creates any overdue tasks, then creates one additional due task. These new task instances are then completed or deleted as you normally would.

In the example above, a new task instance is created every month, and this will repeat indefinitely. Task also supports an end date. Suppose you are taking every Friday off work for the summer. You'll need to submit your TPS report on Thursdays instead:

% task add TPS report due:thursday recur:weekly until:8/31/2008

This create a weekly recurring task that expires on 8/31/2008. What this means is that after all those task instances have been created, then completed or deleted, the root task will expire and disappear. Task will tell you what it is doing when this happens.

Deletion

When a recurring task is deleted, you will be asked if you would also like to delete all recurring task instances:

% task del 1
Permanently delete task? (y/n) y
This is a recurring task.  Do you want to delete all pending
recurrences of this same task? (y/n) y

Modification

When a recurring task is modified, all the other recurring task instances will be modified. For example, if you raise the priority of one of the recurring task instances, all will be modified.

Recurrence Periods

In the above examples, the recurrence period was specified as "monthly" and "weekly". Task supports several ways of specifying this:

Period Meaning
daily, day, 1d, 2d ... Every day, or a number of days
weekdays Monday, Tuesday, Wednesday, Thursday and Friday, skipping weekend days
weekly, 1w, 2w ... Every week, or a number of weeks
biweekly, fortnight Every two weeks
monthly, 1m, 2m ... Every month, or a number of months
bimonthly Every two months
quarterly, 1q, 2q ... Every three months, a quarter, or a number of quarters
semiannual Every six months
annual, yearly, 1y, 2y ... Every year, or a number of years
biannual, biyearly, 2y Every two-years


Copyright 2006-2009, P. Beckingham. All rights reserved.