+ Add Question

Postpone some types of "every" tasks skips an occurrence when checked off

I had a task set to "every last Friday," which was set to have happened on April 25. I ended up not being able to check it off until May 2. When I checked it off May 2, it should have set to May 30 but instead set itself to June 27.

All responses

Rick Carter  premium
Replied on May 07, 2014 - 15:42 UTC

A bit more... I think this may happen when crossing a month boundary. Just tried a test task, "every first tuesday starting 5/6/2014" and then postponed it to today and checked it off, and it properly set itself to first tuesday in June.

Brendon Wadey  staff
Replied on May 07, 2014 - 16:41 UTC


This is the correct behaviour. If you are past the due time, it moves to the next occurrence. Which would actually be June, since May is current. This is so that people do not have to click through a bunch of tasks to get to the current one.

At the moment, the best option is to not completed it until the next one is done, or you can edit the date.


Rick Carter  premium
Replied on May 07, 2014 - 17:39 UTC

But I don't think it's really current. "Current" to me would be any time before the next time the event happens. For some reason, you're calling "any time in the same month as it's set to" as current which isn't really how most people would think. If your manager said "i'd like you to do that the last Friday of every month" and you're out for a week so you do it the first Friday of the next month, your boss wouldn't say "ok you're done with this month, you can wait nearly two months to do it again."

Rick Carter  premium
Replied on May 07, 2014 - 17:41 UTC

I could understand if I went past the next due time like postponed the April one to the last Saturday in May then it would be past the last Friday in May, but in this case it's before the next occurrence is due.

David Trey  staff
Replied on May 07, 2014 - 17:49 UTC

Hello Rick,

I think it's a misunderstanding, sorry. If you have a task due "every last Friday", you've missed it in April and check it off somewhere in May (before May's last Friday), then of course the next date should be May 30.

In fact, I just tried it and it works as expected, I've added a task due:

"every last Friday starting 25 Apr"

to force it to be overdue, checked it off today and it went to May 30th as expected. That's reg. checking off. Next I've tried postponing, added a task with the same date to make it overdue, right-clicked on it, chose "Postpone to..." which already showed "Postpone to 30 May" and again it correctly moved to 30 May.

That said, considering that you've mentioned both checking off and postponing, please clarify what function are you using on this task exactly. Are you only checking it off using the check box to complete it while it's overdue or are you using one of the rescheduling features, or the postpone option or editing its date or did you first postpone it and then checked it off?

Best regards,

Rick Carter  premium
Replied on May 07, 2014 - 17:57 UTC

Hi David,

Here's a test sequence I just tried (it simulates my behavior, in my case I was pulling it forward every day but there were reasons the system wasn't available until early May when I could do it then):

Just now (on May 7, 2014):

In the Mac app:

Quick add:
Test Task #1
date: every last friday starting 4/25/2014

Test Task #2
date: every last friday starting 4/25/2014

Check off Test Task #1
(result: properly goes to May 30)

For Test Task #2:
Click "..."
Under Change date, click the [Today] calendar icon

(result: task is on today's list)

Check off Test Task #2

(result: task now appears on Jun 25)

Hope this helps,

- Rick

Rick Carter  premium
Replied on May 07, 2014 - 17:58 UTC

And if I do this same sequence for Test Task #2 with a task starting, say, "First Tue of every month starting 5/6/2014" and run the sequence, it properly sets it to the first Tuesday in June (which is why I theorize there's some logic maybe saying "it's in the right month and it's monthly so we'll call it done for this month").

David Trey  staff
Replied on May 07, 2014 - 18:13 UTC


Thank you for clarifying now I can reproduce this too. I will pass it to the developers, but I'm not completely sure if it's fixable easily.

Technically, when you pick a new date for an overdue task, it will consider the overdue task as missed and when it adjusts the new date it will take the date of the next occurrence. For example, if you would set the task today to "every last Friday" without making it overdue, and then reschedule it to today, it would be this next instance scheduled to today and completing it would be like completing the May's instance.

This indeed doesn't explain the behavior with your second example of every first Tuesday so I will pass this to the developers too. I'll let you know once this is addressed. Thank you for your report.

Best regards,

Rick Carter  premium
Replied on May 07, 2014 - 18:33 UTC


I'm a little unclear on why changing the date with the postpone icons (as opposed to manually in the date field of course) without having checked off the task would make it seem like you're early for the next occurrence. All the other times I've postponed a task and checked it off, it's just set it up for the next occurrence time that hasn't passed, which strikes me as proper and intuitive. I would consider that the point of postponing a task to a new date -- by its very nature, postponing means putting that occurrence off. The behavior you describe -- is there such a thing as "pre-poning?" I mean if I pulled a May 25 task back to today and checked it off I could see that meaning I'm early for that version so June is the way to go for the next one.

With overdue tasks, I tend to start my day by moving everything overdue to today's tasks so I can compare it more easily with what all I have set up for today. I guess if your description is correct, I should just leave overdue "every" tasks in place until I check them off?

Brendon Wadey  staff
Replied on May 07, 2014 - 23:33 UTC


It can be a bit complicated with how and why it works. We will look into improving this. We suggest if it's overdue, leave them overdue until it's all completed :)


Rick Carter  premium
Replied on May 08, 2014 - 12:53 UTC

Hi again,

Hope you all could consider the human-thinking of "postponed," and I urge the program logic to be consistently along the lines of "if it's not past the next date, move it to the next date when it's checked off." I can't really think of a case where it should mean "skip the next one" (except in the case of where it's postponed past the next date). For example:

- Thursday night's episode of "Your Favorite TV Show" will be postponed until Friday due to Sporting Event (or even postponed by one hour)

- The last-day-of-the-month database refresh will be postponed until June 3 due the Holiday weekend

- The baseball game is postponed til tomorrow on account of rain.

Many's the time I've been using an "Every" task to symbolize the earliest I could do something (In those cases, I currently manually start the task name with its due date), e.g.

"BY 15TH: Enter last month's hours" [every lday]

Currently, it seems to work in every case except where a month boundary is crossed (at least that I've seen). Of course, I haven't been exhaustive in my testing, so I Could Be Wrong.

Rick Carter  premium
Replied on May 08, 2014 - 14:28 UTC

(sorry, this is really important to me, you could say "vital") -- I'd like to add (and this is true in my case) that you should consider which option is the least potentially harmful for expected behavior.

If I postpone a task and check it off, and I assumed that meant it would skip the next date and go to the date after, and it just goes to the next expected date, the worst that happens is I see that and I say, "oh I don't actually have to do that one today," and check it off.

If I postpone a task and check it off, and assume it should go to the next date, and it skips forward to the expected date after, when the next date arrives and it's not there, I don't get a reminder to do something important, and then I'm in trouble. I'm trying to use todoist to coordinate a lot of software and database maintenance, and sometimes reasons come up for me to need to reschedule (often to a specific date), so if last Friday of the May is the optimal date but I find that due to holidays, user needs, etc. they actually want it done on June 1, yet it's expected again on the last Friday of June, well... I'm, frankly, screwed with using todoist to track this (as the solution of leaving it Overdue doesn't tell me what date it's on and I then have to manually edit the task wording somehow to remind me to do it on June 5, rather than just postponing it to June 5).

Rick Carter  premium
Replied on May 08, 2014 - 14:29 UTC

(I meant "June 5" where I said "June 1" above).