Consistency, from Sciral, does one thing and does it well. Its interface is pleasant, original, and crystal clear. It's utterly simple to use. And it's inexpensive shareware. In short, this is my kind of program.
Consistency is a cross between a calendar or scheduling program and a to-do list, with a difference. It isn't about things that occur on fixed dates, and it isn't about things that occur only once. It's about things that recur, and that you'd like to have recur with a certain regularity - though perfect regularity is not completely necessary.
A good example is watering plants. Some of my plants like to be watered about twice a week - about every fourth day, though it isn't a disaster if they have to go for five or even six days without watering. I have other plants that can stand being watered much less frequently. In situations like this, I have two problems. One is that I'd like to be reminded when it's time to water each kind of plant. The other, which is really the flip side of the first, is that I can never remember when I last did any watering. So I want both a record of the past and a sense of what deadlines are coming up in the future. That's just what Consistency gives me.
Another feature of this situation is that my deadlines are flexible; and they are flexible in two ways. First of all, as I said before, if I miss watering my four-day plants by a day or two, I haven't really missed a deadline at all; this is a deadline with some width, as it were. Second, it's a recurring deadline that needs to be self-adjusting: whenever I do happen to water my four-day plants, be it on the fourth or fifth or sixth day, or if by chance I have to water them a day early, or even if I miss my deadline completely, I want the reckoning to the next deadline to start from when I actually did the watering, not from the previous deadline. Consistency gives me that too.
Consistency's interface is a grid of colored squares. Every row is a task, labelled at the left. Every column is a date, labelled at the top. The date labels are inserted automatically, but the task labels are up to the user, and when you create a task you also specify the minimum and maximum number of days you'd like to have elapse between recurrences. When you perform a task you double-click on the square for that task and that date, and a black circle appears in the middle of it. The squares to the right of that square now recolor themselves, as follows:
The squares between the performance of the task and the first day on which you'd like the next recurrence are purple.
The squares representing the range of days on which the next recurrence should take place are green, except for the last one which is yellow.
The squares beyond the yellow square, indicating a missed deadline, are red.
Each day, of course, "today" moves to the right, and so you pass through the colors - first the purple, then the green (and yellow). The object of the game is to avoid arriving at a red square; before that happens, you should hopefully have performed the task again and double-clicked it to record this fact, thus inserting a new set of purple, green, and yellow squares, and pushing the red squares off to the right once more.
Thus, the colors of the squares in the future alert you to how soon a deadline is coming and how serious that deadline is getting. Meanwhile, the colors of squares in the past don't change, so by looking backwards you can see how often you performed a task and whether this ever involved missing the deadline completely. Consistency is thus both a reminder and a log.
That's basically all there is to it, but there are a couple of nice extras. First, it's possible that after a while a task's deadline range will change. For example, in winter my plants may need watering much less often. Consistency accommodates this; you can't change the past, of course, and you wouldn't want to, but for the future you can change a task's deadline range, and a tiny white square appears in the day you did this, to signal the point where the new range starts. Second, some tasks have no deadlines; in my case, sweeping the house or doing a laundry are good examples. A task likes this hasn't enough regularity to it to make a deadline meaningful, but I still find it useful to keep a log of the times I've performed it. Consistency accommodates this too: a task can be "inactive," in which case all its squares are gray, but the black circles show its past performances.
[Adam here. Matt has perfectly described the main thrust of Consistency right now, but I think it has even more promise for the future. I'm currently using it to track my main projects so I don't have to worry about forgetting to put in some time on each one regularly. But I still have to track traditional tasks in another application so I can have one-time, scheduled, and repeating events, plus reminders. What I'd like to see in a future version of Consistency is a second level of task, where the second-level tasks would be traditional task types. When you mark a second-level task as done, that action would percolate up to its top-level task, marking it done as well. Options could include reminders, concealment of completed one-time tasks, and ignoring of weekends for work-related tasks. Though I like and use Now Software's Now Up-to-Date as a calendar, Consistency's rethinking of how a task manager should work has helped me better juggle all the projects I keep in the air, and these small changes would make it even more valuable that way.]
Consistency is a simple, elegant little program; I'm delighted to have it in my world, and it has proven genuinely helpful to me. You might feel the same way, so take a look.
Consistency runs only in Mac OS X and is a 1.4 MB download. It's $25 shareware; if you don't register, the only penalties are a reminder when you start up the program and a restriction to five tasks per document.
PayBITS: Want to thank Matt for turning you on to Consistency?
It's easy - just send a couple of bucks his way via PayPal.
Read more about PayBITS: <http://www.tidbits.com/paybits/>