How to Integrate "Repeating Tasks" Into a Text File To-Do System?
July 7, 2008 10:46 AM   Subscribe

I recently switched over to a plain text file as my to-do list; I can structure it the way I want, it is an absolute cinch to access in any one of a hundred zillion different ways, it's crossplatform, and so on. However, I am running into one methodology I can't figure out how to translate into the "plain text" world, and that is repeating tasks.

I am wondering how people who also keep their to-do lists in text files handle repeating tasks. I'd like to specifically exclude the solutions of loading repeating tasks into a calendaring program or employing a third-party application to create them (i.e. Taskpaper & AppleScript, or Remind). I'm really looking more for how you handle it in simply in the world of plain text.

Also, to open it up a little, I'm curious as to what little mechanisms or mindhacks or systems you may employ within your text-file to-do list, so please feel free to share that, too (although I am primarily interested in the repeating tasks question).

posted by WCityMike to Grab Bag (22 answers total) 10 users marked this as a favorite
Response by poster: Also, just to clarify (it's probably already obvious), by repeating tasks I mean "empty the litterbox" every such-and-such days, "check the smoke detector battery" every such-and-such days, etc.
posted by WCityMike at 10:47 AM on July 7, 2008

I have a piece of paper as my to-do list and I make one pretty much every day on an index card while I'm having coffee. Repeating tasks go on the top, which makes them sort of get into my head more. Tasks that are clearly NOT getting done and are maybe longer term ones get pushed to a more static list that I don't carry around with me all the time.
posted by jessamyn at 10:56 AM on July 7, 2008

I personally used a couple of tiny Unix scripts set to run every X days that re-inserted the items.
posted by Tomorrowful at 10:57 AM on July 7, 2008

I also keep my to do list in a plain text file. I haven't really had a problem with repeating tasks; I just delete it when I've done it, and add a new copy of it to the bottom. However, I've considered a plan to do it more automatically (assumes you're a little bit techy):

You could have more than one "to do" file - a "main" one, and one for each type of repetition (e.g. a file for "things to do every Tuesday"). You could then set up one or more cron jobs to periodically append the repetition files to the main file, at appropriate intervals.
posted by Flunkie at 10:57 AM on July 7, 2008

Response by poster: Tomorrowful, Flunkie, a few questions regarding your methodology:

(1) do you just do the "cat [file that has to-do] >> to-do-list" thing? If so, do you keep a separate file for each of your repeating tasks?

(2) I know how to have cron run at certain times/days of the week, but how do you tell cron "every 42 days" or "every 3 weeks", etc.?

(3) You might not know this, but is there a variant of the "cat [file that has to-do] >> to-do list" command which would *prepend* (beginning), not append (end) to the file?

Also, if others have their own solutions, please speak up. :-)

(And thanks, Jessamyn.)
posted by WCityMike at 11:05 AM on July 7, 2008

I usually mark tasks as done during the day by noting "OK" at the end of the line.

In the evening, when I'm reviewing my list and planning for the next day, I delete stuff that won't be repeating and clear the "OK" mark from things that must repeat.
posted by ghost of a past number at 11:06 AM on July 7, 2008

In my plain text list, along with projects, actions, waiting for, someday/maybe, and goals I have two other headings:

These are sort of "waiting fors" that go live after a specific event or a specific date. This is a bit of a catchall, but I try to only put things in here as a last resort.

In here is stuff like nutrition, health, get into work early. These are reminders or *generators* of specific actions or projects.

Under ACTIONS I'll sometimes have a short list of repeaters that never gets deleted. They all stay on the same line.

Additionally, having specific conventions for punctuation can help things out. Sometimes I'll start actions with an asterisk, but that gets tedious in other places. Colons, commas, and semicolons (to end stuff) can really make a difference in helping the eye.

Beyond that it's the calendar or Sciral Consistency.
posted by zeek321 at 11:07 AM on July 7, 2008

And I do have a few note cards floating around my desk and paper inbox that have repeaters.
posted by zeek321 at 11:08 AM on July 7, 2008

I'm plain-text and/or back of an envelope. A set of capitalized headings like MONDAY, TUESDAY, 15TH OF THE MONTH, seems to work pretty well. Keep them at the top of the list so that you always scan them before getting to the one-off to-do's.

Also, agreeing with Jessamyn that it's useful to distill the list to just what you need to do today, on a card, printout or whatever. That way, when you've scratched that last item off, you feel like you've been productive, as opposed to deleting 10 items off a 50-item list and feeling overwhelmed.

I always find it interesting that fairly "techy" people use index cards, plain text files, and the like to maintain their to-do's , rather than Blackberries, Outlook Task lists and other fancy methods. It makes me feel good that as an only moderately techy but seriously geezerly person, I'm not unusual in not being able to make any of the fancier tools work for me.
posted by beagle at 11:09 AM on July 7, 2008

You can do cat new-stuff to-do-list > tempfile; mv tempfile to-do-list
posted by aubilenon at 11:11 AM on July 7, 2008

I don't know if it qualifies as a third party application, but on a mac, it should be relatively simple to set up a periodic launchd job which calls a simple script (in whatever language you like) that appends a line to your plain text file. Both those are pretty easy to find tutorials for online (setting up a launchd job, and creating a script that appends a line to a file).
posted by Galt at 11:18 AM on July 7, 2008

is there a variant of the "cat [file that has to-do] >> to-do list" command which would *prepend* (beginning), not append (end) to the file?


cat to-do-list >> cat [file that has to-do].
posted by rokusan at 11:25 AM on July 7, 2008

Aubilenon's got it - though I personally did use a simple cat to get it in; never bothered much with meaningful list position. I only had the one file of repeating tasks, but only because they were all pretty much weekly. I did briefly use a set of (very simple) Python scripts when I wanted to add a lot of data about due-dates and priorities while keeping it editable with just a text editor.

These days, availability trumps all else and I mostly use tadalist.

As for getting behavior like "Every x weeks" out of cron, it's tricky, but if you start googling around you should find help. (I've never done nontrivial cron tasks, though I'm sure someone'll be along in a minute who has.)
posted by Tomorrowful at 11:27 AM on July 7, 2008

I do it similar to what Flunkie describes in his first paragraph: when I've completed one instance of the task, I add the next one to the list. E.g., instead of deleting "7/1/08 pay rent" after I've done that, I change it to "8/1/08 pay rent" and move it to the appropriate point in the list.
posted by DevilsAdvocate at 11:28 AM on July 7, 2008

Side note: rokusan also has it; I happened to use the temp file because, IIRC, I did some kind of stupid extra formatting before moving it. No, I don't know why. It may have been an exercise in learning how to use bash that I never bothered making more efficient.
posted by Tomorrowful at 11:28 AM on July 7, 2008

rokusan's thing makes a file named cat. Maybe there's a < or something missing. I don't know.
posted by aubilenon at 11:56 AM on July 7, 2008

I don't think there's a way to prepend stuff with redirection. Use a third file:


Don't try cat MORETODO TODO > TODO or anything like that by the way, you'll trash TODO on most systems.
posted by ghost of a past number at 12:13 PM on July 7, 2008

Best answer: If you mark tasks complete or remove them as you are getting done with them, you can start changing the timing of the repeating task to the next one, every time you complete it.

Another approach: When you add a repeating task, add a string of possible completion times in order(say, for a month) and then go on deleting specific times as you get done with them.
posted by swapspace at 12:33 PM on July 7, 2008

When I did this, my 'action' list (actual to-do list) only contained things that could be done immediately (given the proper context). I also had a 'calendar' file, which was also a text file, but contained things like:

7/1/08 check air in tires +1m

The tag at the end indicates a repetition. So, when I'm marking that as done, I just add the next one at the appropriate time. This is more flexible than an automated system because I can also decide, e.g., if I missed the original date, do I want to push back the next date proportionally or not? (In some cases it would make sense, and in some not.)
posted by dixie flatline at 2:23 PM on July 7, 2008 [1 favorite]

There are all sorts of scripts and junk like that floating around on the interweb to manage plaintext todo lists. You might want to check out todo.txt.

If you assign dates to these tasks, you can simply update the due date in your file, rather than deleting the entry.
posted by chunking express at 6:39 AM on July 8, 2008

Response by poster: Thanks for your input, everyone.

The answer I've liked the best thus far is swapspace's, to do it like:

Backup my thumb drive.
         (4/5, 4/12, 4/19, 4/26, ... )

And then remove dates as I accomplish them. I whipped up a quick spreadsheet to generate the intervals.
posted by WCityMike at 8:25 AM on July 8, 2008

Response by poster: Swapspace's response marked as best answer, but honestly, thanks, everyone.
posted by WCityMike at 8:27 AM on July 8, 2008

« Older Google's no good when there's only 2 words and you...   |   How can I make the most of a trip to Iceland in... Newer »
This thread is closed to new comments.