Schedulling recurring tasks on Things 3 a long digression

I started this text as a reply in this thread, but moved it out in order not to not stray away too much from OP’s original question.

These are a few reflections on Recurring Tasks after using Things as my to do manager (for pretty much as long as it existed, from v1 to v3). It’s opinionated design can be controversial, but I must say I really enjoy it.

This post was originally a reply to that post:

It is interesting that the answer to this question lies deep into how Things developers conceptualize the flow, so I guess its a good read to anyone who uses Things or may be considering to do so.

Without further ado, let’s get into it.

Concepts: start, intend and due dates are different things

There’s some separation between start and due dates that need to be initially clarified:

  • Start dates: are When you can start to work on a Task (i.e. when it should be available for you to work on it), it assumes you can’t even start working on the task before this;

    • It is not the day you intend to work on this task. That will be decided by you only on the day the task becomes available, in your Daily Review process (this is crucial).
  • Due dates: are the very last day you can work on a Task. Harm will be done if you don’t deliver by that date.

In Things, when people complain they can’t mark items done in advance, I guess they’re referring to these looping items that will show up in either Area/Projects or Upcoming view:

Captura de Tela 2022-01-23 às 15.12.24

I use to be one of those people, but then I realized the diference for start, intend to and due dates and how Things interface implement them (it could be better in their wording, no discussion on this, but I find the flow is kinda great, I must confess).

The flow on Things for recurring tasks is:

  1. Set the Start Date to be the date a task becomes available for you to decide if you want to work on it or not (on your Daily Review, see 3 bellow);
  2. Set a Due Date if and only if the task requires one (ie. if something will go wrong should this not get done by that date);
  3. Everyday on your Today view you’ll have a list of all the to dos that have been:
    • Scheduled for that date;
    • Are Due on that date;
    • Newly available onesHere are where your Recurring items will initially appear
    • Unfinished items from yesterday

When first opening your Today view on a given day, new items will have a yellow dot on their lefthand. That’s to signal they’re new and need reviewing. In this Daily Review you should look into each one and decide wether:

a. I’ll work on it Today (and just leave it into the Today view);
b. I’m not sure when I intend to work on this, but want to get it done soon (so you hit “clear” on the start date for it to move to the Anytime list); or
c. Decide to start working on this task by another time I already know when (so you Schedule it to that given time and it will move to the Upcoming so it will not clog your other main lists)
d. I guess I’ll not be doing this for a While (then you’ll move it to the Someday list).

Checking on Things interface for these concepts

There are a few assumptions on their interface for a recurring task:

  1. Tasks will always have a start date;
  2. Tasks will not have a deadline until specified otherwise;
  3. If not specified otherwise, a task with a deadline can’t be started before it is due.

That said, let’s have a look at how Things allow for the creation of a repeating task.

Default repeating item screen: you’re actually defining task’s initial avaliability

This is it’s default repeating to do screen screen:

Captura de Tela 2022-01-23 às 15.41.04

By default, the task will not have a deadline, only a start date. So you’ll be defining when that task will be available.

So Scheduling a task with no Due dates, means you’re defining it’s Initial avaliability on your list. And nothing more. So this is not when you intend to work on it, as can only decide that after the task is available and will show up in your Daily Review.

When adding a deadline: you’re defining task’s deadline

If you click on the “Add deadline” (see above), then it will ask for a number or days to start a task before it is due:

Captura de Tela 2022-01-23 às 15.14.17

Pay attention to the “start 0 days earlier”. That will define the initial availability of the task. Before that, Things will consider you can’t even work on it and then, will not show it as something you can work on. (That’s actually the Genius of it for me as it allow for a very streamlined list of tasks that I can actually work on.)

By default, since tasks aways need a start date, it will be considered to be the same of the Due Date (Start = Due), meaning it won’t be available for you to check it off before that.

However, if you enter any number of days in that checklist (say 6), it will be considered available X days before the Due Date and will surface on your Daily Review by that time. Then you can decide to do it or to Reschedule it.

Summing up the assumptions on the Recurring tasks interface

So the key is to keep in mind these assumptions when scheduling in Things:

  1. If the task has no Due Date, then I need to schedule for the desired Start date (it won’t be ready for marking it done because I’ve told Things I can’t even start working on that task);
  2. If the task has a Due Date, then I need to also figure out when can I start working on it, and and adjust the “start X days earlier” dialog to reflect this;
  3. The “Start Date” in these steps will not signal intention to work, but only tasks avaliability. Intention should be set on a daily basis, through the Daily Review process.

The core, as you see is the Daily Review process, as said by Cultured Code on their Getting Started Guide (see “Establish your daily routine” section).

An Example

I’m a Professor and thus I have a set of tasks I need to do weekly, for each class. Let’s consider class is held weekly, on Thursdays. For this, these are the tasks I need to do on a weekly basis:

  1. Prepare for this week’s class
  2. Take notes on attendance and questions raised by my students
  3. Consider changes on this class to next semester

Let’s consider each one of them from two dimensions:

  1. When can they appear as items available to be done in my list, and
  2. if they have and what are their Deadlines.

So:

  • For task 1: It should not even appear on my lists until Friday (because I’m working on this week’s class), but it must be done until next Wednesday (the eve of the class);

  • Task 2: It can only be done on the same day the class is held, one day after the fact, my mind won’t remember even the details;

  • Task 3: I keep a note on points I want to consider changing for that that class plan next semester. There is no due date involved.

The end result is:

Task Start Date Due Date Difference
1 Friday Next Wednesday 5 days
2 Thursday Thursday 0
3 Thursday - -

Moving this to Things App

When scheduling the recurring Task 1, I’ll have it scheduled like this:
Captura de Tela 2022-01-23 às 17.20.04

This way Task 1 will appear in my list by Friday (it’s Start Date) and will be Due on classe’s eve (Wednesday next week).

Then I will decide if I want to:

  1. Do it by Friday (and keep it in my Today list);
  2. Do it sometime in the future I still don’t know when (and Clear it’s start date to keep the item in the Anytime list);
  3. Decide to do it by some other day I specify (and Reschedule it to that later date).

So through Friday till Wednesday, Things will allow me to check it done (even if I’ve rescheduled it).

Task 2 will go the default deadline route (“Add Deadline and start 0 days earlier”).

Captura de Tela 2022-01-23 às 15.14.17

Task 3 will have a start date on Thursdays but will not have deadline (I usually “archive them” for a end of semester review by moving them to the Someday list), so it will use the default dialog.

Captura de Tela 2022-01-23 às 15.41.04

30 Likes

This post is extremely helpful to me and I am going to save this for whenever I am questioning my use of Things 3.

3 Likes

Great and through post. Thank you for writing that.

The way I understand this issue with finishing-a-recurring-task-early is that if you had already finished preparing for this Thursday’s class on Monday and then decided to prepare for next Thursday’s class as well, you wouldn’t be able to check that off the list.

Perhaps Things3 doesn’t want you to even think about next week’s class until reminded to do so.

By default, that is correct. It will still keep the loop icon.

But you can change this by specifying that next Thursday’s class prep can be available 12 days in advance (those first 5 days + 7 days), instead of the original 5.

If you do so, then the next task will become available earlier for you to do it, reschedule or keeping it into your Anytime.

This can be done by edit the recurring series, by clicking on it and, then “Change”, as in screenshot bellow:

On the resulting dialog box you can edit the number of days in the “start X days earlier” to allow it to start more days in advance.

If change that to a number equal (or bigger) than the difference from the deadline and today’s date (say that 12 days in the example), then it will create a to-do Today that can be marked done (and will keep the original Due Date).

1 Like

Excellent post!

I am not sure if I should be ashamed or not, but I have been a Things user for quite some time now and I still did not really get how recurring tasks can work if used correctly. And I had not even been aware of my mistakes (misconceptions) before. :slight_smile:

Thank you! :slight_smile:

2 Likes

I agree that this is a massively useful post. I have been using Things 3 for most of the time since it has been out, and this has really helped me understand some of the philosophy underlying it - and so I will be able to use it better.

2 Likes

Incredible post, thank you.

I’m not Omnifocus-proficient but will try my best:

These seem to be fair “translations”.

I think they may be considered to be similar.

Although I would disagree on the review part: I like to review my Upcoming list on a weekly (so I can time-block my most important tasks) and daily, so I can reconsider if a given task still must be done that day or if it can be safely moved to the Anytime list.

As per this one, I would not set its When to Today unless I’m really positive I will work on it today.

If I’m not sure I’ll work on it today, I will leave the When field blank, so the task will land into my Anytime list.

I guess the goal is to keep the Today list with just the priorities for that day (that also seems to be the key idea behind Cultured Code’s description of their designed flow). Anything else that you can work on, but don’t need to work on that day, should be kept on Anytime.

There’s a trick to get more use of the Anytime and without clogging your Today list: you can filter it by tag, so you can create an Ominfocus-like “Perspectives”. Let me give you an example:

  • If I add a task to Things like this “Call the Painter re. quotation” on my “Moving” Project and tag it with “Phone” tag

    • It doesn’t have a due date, so leave Deadline blank
    • I can do it now, so no need to Schedule it for a future date
    • I don’t need to do it right away, so I will not mark it for Today but just leave When empty
  • The end result is that it will land into my Anytime list

  • Every day I have a time block for comms, this time I would filter down my list (coincidentally, I just wrote about this here) to gather every Anytime task with the “Phone” tag, so I can decide on whether to make this call or not.

Should that call have a deadline, then I can trust the system as it will surface to my Today list if I happen not to complete it before.

Finally, I actually don’t overthink this one. The main idea is to have a grasp on the flow. I guess that flow could be replicated in virtually any app that:

  1. supports start and due dates (so you can ignore items that can’t be started at the moment, that’s where Reminders fails at this moment),
  2. allow for filtering of flagged items (so one could replicate Today list) and
  3. lets you filter lists by tags (so one could look for “Phone” tagged items across different areas and projects).

I just happen to really like the way Cultured code implemented it and many other niceties on their design philosophy.

1 Like

Personally, I would consider if I want to keep the task available: if so, then move it to Anytime. Only if I’m sure I can’t do it until some date, then I would schedule it.

This is some extremely useful information. I think I knew this before but forgot about if I knew it at all.

1 Like