Possible to create an infinite loop of rescheduling todo items?

I’m looking for a way to create a list of items…

The Daily Grind

  • thing one
  • thing two
  • thing three

Then, marking the first complete, would cycle it (I’m guessing some type of rescheduling) to the end…

The Daily Grind

  • thing two
  • thing three
  • thing one

With a sequential type on the parent then, only the currently-first item would then show up as available today. Mark that one done, and the next is instantly the currently-first and available item.

Why? So you can work for a set period of time and start on the first available item, and still be sure that eventually you’d get to all the items. (Even if days later.) If you get them all done (once around the loop) then the first one would be deferred until tomorrow and you’d have no more available items.

I don’t think there is any way to do this currently. I can set ‘defer-until’ repeats on items, but then more than one of them can be “available” at a time. And if I’m slow, or mark none of them for a few days, it’s always the first-in-the-list one that would be the next/first available item.

I hope this makes sense? It’s just a looping FIFO queue…

I have tried to achieve something similar, but in my case there are more tasks in the list, and I will never get them all done in a day, so I don’t bother to hide them, I just want to circulate them. My method may not be the most natural, but it is one way to do it. Create a perspective where you sort the actions in the daily list by defer date. Then set the defer date for all tasks some day in the past. Now you can click on the defer button ”+1 day” for the uppermost task to circulate it.

but if the parent is type ‘sequential’, as soon as you defer the first one, then it’s (all of it’s children) show up as not yet available. If it would just create the new todo (the one it creates now, when you click done, on a defer +1 day item when complete, item) at the bottom of the children, instead of immediately below the one you’ve completed… then it would work.

Sorry, I missed the type sequential… My type is parallel. But would there be any problems for you with making the project parallel?

if you make it parallel, then all the items appear as avaiable in (for example) a Next items view. It would be nicer if a Next view showed just one item… so you can have a massive list of things to get around to, but only one of them in “in your face.” Mark it done and then another one is up to bat. Never ending – unless you have a crazy day and just mark them all off.

Agree, but I gave that up for my circulating tasks and accepted to see my tasks in a long list (or actually: several lists with different frequency of circulation), where I just pick the uppermost one, never expecting to accomplish all tasks on a single day.

Furthermore, my suggested solution would not work the way you like anyway, as it doesn’t defer tasks to the future, only to a day less long back in the past. It’s only a convenient way to circulate the tasks without having to drag them to the bottom of the list. For some lists with non-circulating tasks, I have a perspective nicely showing only the next available task in each list. That works even though projects are parallel.

There used to be an option on the Mac version where repeated items were added to the bottom of their group for this purpose. Did that not make it to version 2?

Have you tried using First Available visibility?

First Available visibility:

If you have them under a Sequential type, then when you complete the first one (and it defers to +1 day) that one being deferred blocks all the others from being considered as available. ((Thus my desire to have the completed one generate a new todo item at the end.))

If I have them under a project That is type parallel… then it works pretty close to what I’d imagined.

Repeated-item-new-at-bottom Pref:

I don’t see that preference anywhere in OF 2.2 (v96.2)

…no wait. Feel like I’m chasing my tail here.

Because they don’t reorder (new item that’s created, deferred +1 day, at the bottom) when one at the top comes into range (isn’t deferred tot he future) it just shows up as “first/next” available.

All I want is a circular queue. Tasks A, B, C, etc I’m working for a given period of time, tick of A, B. Tomorrow I should be told to start at C, D, E, F (got a lot done today), next day G, H (maybe that’s all there are, so back to) A, B, C forever.

Except I have a large number of tasks, and they are complicated, with notes. Each is a major ongoing project that is like “flip through photos from this collection of 20 years and tag photography.” Another might be “work through this stack of 5,000 books making sure they are in the library system.” I don’t need OF to have lots of steps for these projects, “work on tagging photography”, “work on scanning prints”… is all I need. In reality, I never actually finish any of the tasks, I just work on it that day, then tick it off as “yeah, I worked on that”. Next time I’m working, I don’t want to have to remember which of the 40 projects has sat the longest since I touched it… it wouild simply be the next one in the FIFO queue (If I could make OF work like this.)

Really, I think that pref you mentioned would solve me ENTIRE problem.

OmniGroup: hint hint feature request hint hint

FIFO means first in, first out. It puts in at the top and pulls from the bottom of a stack. In a stack in OF (Action Group or Project) where a task is marked to repeat, OF lists the task in order from the top and puts back immediately in to the top.

I think you need to stop marking your tasks to repeat individually. I think you instead need to use Action Groups that repeat when all tasks in the group are completed.

Consider two tasks, A and B. You want to lay out a sequence of A followed by B where A then loops back at the bottom of B. Put them in an Action Group. Mark the Action Group as repeat when completed. Answer this one simple question.

Can you EVER do Task B before Task A?
–> Yes: this is a PARALLEL Action Group
–> No: this is a SEQUENTIAL Action Group

  • With a Parallel setting, both Task A and Task B will always be available. You can complete either one at any time.
  • With a Sequential setting, Task B will only be available after you complete Task A.
  • In either case, when you complete Task A, you will not see another listing of it until you also complete Task B for that Action Group. IOW, you will be prohibited from doing Task A twice in a row.

When you complete the “set” of A + B, the entire Action Group will mark complete and a new Action Group set will appear.

When you really want to be able to do Task A a couple of dozen times and never mind about Task B, you want your Project to be a Single Action list. Each Task repeats on its own. You could paint the house 10 times before you decide to take out the garbage in a manner of speaking.



It sounds like my workaround would do what you are asking for. Maybe I didn’t describe it clear enough:

  1. Create a new perspective where you choose ”Don’t use project hierarchy”, sort actions by defer date, and add your queue list to Focus.

  2. Set a date in the past as defer date for all tasks in the list, use parallel or single actions as project type, and don’t have any tasks set as repeating.

  3. After having worked on the uppermost task, select that task and click the button ”+1 day” in the inspector. The task will move to the bottom of the list, and you can start working on the next. As the defer dates are fictive, the circulation will continue to work, regardless of when you defer the next task.

re your #3.

…but it doesn’t actually move, it just defers. So the explicit order of the items take priority in terms of what is shown as the next task once a few of them come back into range (aren’t deferred into the future). So all the really happens is…

A (next), B, C … all are not deferred
I +1 defer A, close OF

next day, depending on time of day, I see “B” is next, I defer it +1, close OF

next day, boop, “A” is back as my next task instead of C. sad trombone

I haven’t tried making the group repeat. I’ll try that!


The action group repeats, deferred +1 day… perfect.

I’ll end up with lots of completed action groups; but that’s no problem to clean up during regular reviews. In fact, it’s easier to clean up than a sea of completed auto-deferring tasks within one group.

Silver Bullet™. Thanks MUCH !

If the suggestion from @DrJJWMac works for you, it’s fine. But I think you would like my suggestion the way it works for me, as it requires no cleaning up at all. I’ll try again to be a bit more clear:

Visually the task moves to the bottom of the list in the perspective when you click on the ”+1 day” button, as the perspective has the list sorted on defer dates. When you click on the ”+1 day” button for the next action, that one will jump to the bottom of the list. The order you see the list today will stay the same in that perspective, regardless of when in the future you click on the button for another action or when in the future you show the list again in the perspective. Maybe you type ”+1” in the defer date field instead of click the ”+1 day” button? That doesn’t have the same effect, and then the method will not work (as 1 day will be added to today, not to the fictive, old date we would like to start from).

Yes, your suggest sounds like I would prefer it. But…

…no, it does not move when I click the “+1” button. (It simply updates the defer-to date value.)

Strange… If I have only the defer date field selected when I click the button, I have to press the return key afterwards to make the movement happen, but if I have the whole task selected, the task moves immediately.

My settings for the perspective are:

  • Don’t use project hierarchy
  • Group actions by: Ungrouped
  • Sort actions by: Defer date
  • Filter by status: Any status
  • Filter by availability: Available
  • Filter by duration: Any duration
  • Filter contexts: Active
  • Focus: [Que list-procect]

There may of course also have happened something unexpected in Omnifocus since the version I use in Mac OS 10.9: 2.0.4.

I think you may be mistaken here. I don’t see any exposed preference setting like that in version 1.10.6 of OmniFocus for Mac, and I’ve not been able to find a hidden preference like that either. But I’ve been wrong before, so would love to know if that was indeed the case!

1 Like

I just found a better way to move tasks to the bottom than the one I suggested before. This one works in all projects and does not require any special perspective:

  1. Get the Applescript files that @ediventurin is referring to in this old post:
    Moving items in the outliner is frustrating

  2. Choose Open Scripts Folder from the Help menu in Omnifocus and put the scripts in that folder.

  3. Ctrl-click on the toolbar in Omnifocus and choose Customize Toolbar. Drag the scripts to the toolbar.

Now you can move tasks to the top or to the bottom in lists simply by clicking on the toolbar buttons! If you use Keybord Maestro (or something similar) you could even assign keyboard commands to the scripts and use those for moving tasks to the top or bottom - which I did. This is something I have been longing for ever since I started using Omnifocus and think should be included in the application (which I also have suggested to The Omni Group).

1 Like