Recurring Tasks XXL

March 15th, 2008
12:40 pm

This is not about the iPhone SDK… Main Things 0.9

Early on many users told us how important an implementation of recurring tasks would be for them. Having always (mis)used iCal events for recurring tasks myself, I hadn’t seen the need for a corresponding feature in Things. So much for what difference user requests can make :). And I finally noticed that hacking recurring tasks via iCal events isn’t that great after all. For some weeks now I have been looking forward to manage my recurring activities properly. And now I can.

When implementing recurring tasks one basically has the choice of either doing a primitive version like “every x days/weeks/months” or doing it in a really flexible and powerful way: enter Things 0.9.

Let’s look at an example: mortgage payments. Things allows rules like “Mortgage payment is due on the last day every month. Remind me 3 days in advance.” For the most part of the month you really don’t need to think about the payment. In that respect recurring tasks are no different than other postponed items except that they automatically repeat. It is thus natural to let the Postponed list handle recurrence. And since the term “Postponed” didn’t seem appropriate anymore we renamed it to “Scheduled”. This is how it works:

The Scheduled list

The Scheduled list does not contain the actual to-dos you are eventually going to check off, but it contains templates instead that are used to create those to-dos. This approach has a number of advantages:

example.jpg

  • The Scheduled list gives you a great overview of all your recurring activities. They are nicely organized by interval and provided with descriptive labels. Together with single postponed items, the Scheduled list contains everything you needn’t be concerned with just now, but will be brought to your attention on the specified dates in the future.
  • Since recurring items live in Scheduled, they don’t clutter up the lists you are working from. Instead, on the dates you specified, copies of the relevant templates are made and put into the Today list. Once completed those tasks will be logged getting out of your way until new copies are created.
  • Since the actual to-dos are completely independent from their templates, you can edit them as you wish. For example, let’s assume you want to do monthly reports that always have a certain structure. You can put an outline of that structure into the template’s note section. Every month a copy of the template is made. Consequently, each copy will already contain your outline. Each month you can then fill in different details. All monthly reports will eventually go to the Logbook where they can be review as needed.

Creating new recurring tasks

newrepeating.jpg

You can create a new template in Scheduled by clicking the toolbar button “New Repeating”.

actiongear.jpg

Or you can turn an existing task or project into a repeating one by editing it and using the action gear button at the bottom right of the item.

Recurrence patterns

There are many options for creating recurrence patterns. For example, use “After Completion” for tasks like “tidy up desk” that don’t depend so much on the calendar, but on the last time you’ve completed them. And on Leopard you can even use iCal events as a pattern (think “Birthday calendars”). Projects can be made repeating too (check lists).

Implementing recurring tasks like we did was significantly more complex than we anticipated. But I believe it was worth the wait. If I am not overlooking something here, then we now have the most powerful recurring tasks implementation available. And I hope you like it.

We’ve gone to great length to ensure that most bugs are fixed already. But with a complex feature like this one, it is quite likely we didn’t catch everything. Please keep a close eye on it and make sure it is working as you expect. And when it doesn’t, choose Things > Provide Things Feedback… from Things’ main menu and tell us what happened.

Posted by Jürgen

Pinging is currently not allowed.

15 Comments

  1. Absolutely fantastic; I’ve been waiting for this feature since I started using Things.

    Congratulations, it works smooth and helps make Things even more complete and useful.

  2. Nice work guys. It’s always fun to see an update, and especially one so useful. We appreciate you taking the time to get it right, rather than just putting something out there that already exists.

  3. New standard for task management…

    Even before the final release of Things, it is so useful and usable, that it is one of my always-open apps. With the features to come, i bet there will be little in the way of managing projects of any……

  4. Holy. Smokes. This is amazing. I had to read this post to fully understand the genius behind the system but it makes so much sense now. Talk about making a feature a truly Functional Feature!

    My only concern? You’re setting the bar pretty high now for any new features from here on out! ;-)

  5. […] Recurring Tasks XXL : Things Blog : Cultured Code […]

  6. lovin’ the new update. keep up the good work!

  7. This looks great - its what I have been waiting for to migrate my tasls from Omnifocus. Just one question. If I set up a scheduled “to do” as, say, three months after completion of the last one, how does Things know when the last one was?

  8. @pgauntlett: Say you are in the Scheduled list. When you create a new repeating to-do which you set to repeat “after last completion”, Things is also creating a copy in “Today”. This is your first actual to-do you can check off. Of course, it can be moved to other lists if you so desire. 3 month after you marked it complete a new one is created.

    You can also work the other way round. In any list, suppose you have created a task you want to repeat after completion. Double click the item to edit it, use the gear button to make it repeating and set it to “after completion”. In this case a template is created for you in Scheduled and the to-do you were just editing is used as the first copy waiting to be completed.

  9. “Instead, on the dates you specified, copies of the relevant templates are made and put into the Today list.”

    I think repeating tasks/projects should have the option of being created in Next instead of Today. Maybe I don’t want to think about doing a task again until one week after I’ve done it. But that doesn’t necessarily mean I want it to pop up in the Today focus at that time.

    For instance, I have a lot of little things that can never really be finished that I work on all the time. To try and force myself to spread out the effort, I might work on one for a half hour or so. But then I don’t want to work on that for another couple days so I can be balanced and work on some of the other things. So I don’t want it on my lists for a couple days (out of sight, out of mind), but when it comes around again it’s not necessarily a Today priority…

  10. But other than that I think the implementation is fantastic and absolutely the best I’ve seen for repeating tasks… :)

    I look forward to the same well thought out quality for dependent tasks… I still really like my idea of grouping them together like photos in an Aperture stack so you can collapse the stack and hide the dependent ones until the top task is complete… Then you could have stacks of dependent tasks and other normal tasks all together in the same project… ;)

  11. The recurring tasks feature looks extremely well designed; thanks!

    Is there any way of extending this to projects? I have about 17 tasks in a project I have to do at the end of every month and it would be wonderful to just stick them all in one recurring project than to make 17 recurring ones and move them into a project every month.

  12. @Saxon. This is possible. Select “Projects” in the sidebar and double click the relevant project. You will find an action gear button on the lower right. If this doesn’t work then your project is in an area. Unfortunately there is a bug relevant for projects in areas. This bug will be fixed very soon (this week).

    The procedure above repeats the entire project. There is currently no way to repeat to-dos within projects. But that will be remedied in a future update.

  13. For me, this one feature moved ‘Things’ from the pretty-cool category into the can’t-live-without-it category. I’ll be purchasing my copy of Things within the week. This is absolutely *fabulous* software - thanks so much for your hard work in developing it!

  14. Thanks Jürgen and the Things-Team!

    I love the repeating to-do-feature, just one thing that drives me mad is that cannot assign those templates to projects! I have lots of repeating to dos and I’d like to be able to drag and drop the template on a project, so the todo always gets created as part of a certain project…

    Otherwise the whole organising structure of “projects” is breaking down!

    Hope that will be possible soon.
    Thanks again and cheers
    Mario

  15. What does this mean: “And on Leopard you can even use iCal events as a pattern (think “Birthday calendars”).”

    I’ve seen that option in Things and can’t figure out what it does.