obsidian-tasks-group / obsidian-tasks

Task management for the Obsidian knowledge base.
https://publish.obsidian.md/tasks/
MIT License
2.4k stars 225 forks source link

Option to have Recurring Tasks due dates skip to the next available future date [make 'when done' docs clearer] #1642

Open BoydyBoydy opened 1 year ago

BoydyBoydy commented 1 year ago

⚠️ Please check that this feature request hasn't been suggested before.

πŸ”– Feature description

Option to have Recurring Tasks due dates, after completion, skip to the next available future recurrence date rather than just the next occurrence. 'Future recurrence' meaning the next available recurrence past the current date of completion.

(I did try to find something similar to this. I could only find discussions around it rather than listing explicitly the feature itself -- suggesting it was 'dumb' recurrence, etc.)

Scenario: While I am working on daily tasks, and for some reason I am not able to complete that task on the day or hypothetically longer than intended, I then complete the task when it is completed later on when able -- overdue, etc.

It seems now that the task being completed, the due date doesn't go to the next day (current date + 1), it actually goes to the next occurrence (due date + 1) -- assuming that we are using the 'every day' recurrence.

I am new so not exactly an expert with Tasks at the moment. I have only just started to play around with the 'when done'. I'm not sure if in fact the same thing would happen for 'when done' as well. Where the 'overdue-ness' of a task has a longer time period than the recurrence itself. (weekly recurrence vs monthly overdue time period)

-- Suggestion: It would be a suggestion for the recurring tasks that don't need to be performed multiple times explicitly, such as in the default behaviour, that recurring tasks would have the option to be able to be completed and then recurring dates be rolled/skipped through until there is one that matches beyond the current date.

Hopefully this makes sense. I assume that it can be interpreted many ways. :)

βœ”οΈ Solution

As above: It would be a suggestion for the recurring tasks that don't need to be performed multiple times explicitly, such as in the default behaviour, that recurring tasks would have the option to be able to be completed and then recurring dates be rolled/skipped through until there is one that matches beyond the current date.

Solution Steps:

1. Task is now overdue Daily Recurrence Task

2. Task has been completed

3. Task is preparing recurrence date -- (extra option or functionality is needed for this)

4. Task has found and updated the Recurring Task Due Date to a date beyond the current.

❓ Alternatives

I did ponder but I'm not sure what else there could be.

Maybe a button to run through the next occurence ('next occurrence' fast forward icon, in the edit menu) until you find a suitable date? This removes the automation of the suggested feature, but simplifies editing the task itself each time.

πŸ“ Additional Context

No response

claremacrae commented 1 year ago

Hi, This is already implemented:

https://obsidian-tasks-group.github.io/obsidian-tasks/getting-started/recurring-tasks/#repeating-a-task-based-on-the-original-due-date-or-the-completion-date

when done

May I ask a favour? This gets asked for once or twice a month, so there must be something unclear about the documentation.

If you have any suggestions for new wording in the documentation to make this easier to find, it would a great help.

Thanks in advance.

BoydyBoydy commented 1 year ago

Right! Thanks @claremacrae

It does seem to be there, both in the docs and working. I just hadn't tested everything properly, or to be more accurate, didn't know fully. So while the documentation does indeed label the correct 2 cases, maybe there just needs to be an extra case example for the exact days of the week. Or a clarification that 'when done' can be completed alongside the other examples.

"every week on Saturday when done" "every day when done"

The problem I was having was, of course, the day was not aligning to what I had intended. When I specify "every week" I mean for the recurring task to be on the same day of the week that the task was due on, not on the day that I complete an overdue task (assuming that it is a different day). This will obviously now have to change for my own tasks in order to work properly.


Suggested Edits for Documentation:

When you create a recurring task, you can decide whether the next occurrence should be based on the original dates , intended day of the week or the date when you completed the task. The default behavior results in newly created tasks having dates relative to the original task rather than β€œtoday”.

But I want to test for a different day


I will have to update my tasks properly. If needed, happy to look at the documentation for whoever is able to do it.

If you could please tell me the next steps. I'm happy to have this issue closed. I'm also happy to review any documentation to make it simpler for users/humans to complete their work.

claremacrae commented 1 year ago

Hi thanks for the reply.

Could you please clarify, briefly, what next steps you are after.

BoydyBoydy commented 1 year ago

Yes. I meant the last parts within the paragraph.

Steps/Questions?:

  1. Should we close this issue as complete?
  2. Is there a need to create a new documentation task, etc.?
  3. If you had any need of someone else to read any future documentation and review, I would be happy to.

Apart from that, I am happy to finish this issue :)

Thanks for your help.

claremacrae commented 1 year ago

Oh I’m sorry I misunderstood. Thank you very much.

I will add a documentation label to it, to remind me to add docs before closing it.

claremacrae commented 1 year ago

I've updated the docs in PR https://github.com/obsidian-tasks-group/obsidian-tasks/pull/1658 to try to make this more obvious.

This issue will be closed when that one gets merged.

stoilis commented 1 year ago

I don't think it's just the documentation. Auto-complete seems to be adding some friction

For example, when I am after the recurring emoji, and I type "every w", the "every week" is auto-completed. But no "every week when done". Only after I write "every week when done" does the option appear, at which point is useless as auto-complete. If auto-complete were to surface this option, I think it would be more obvious to people, including myself, who missed it.

claremacrae commented 1 year ago

I don't think it's just the documentation. Auto-complete seems to be adding some friction

For example, when I am after the recurring emoji, and I type "every w", the "every week" is auto-completed. But no "every week when done". Only after I write "every week when done" does the option appear, at which point is useless as auto-complete. If auto-complete were to surface this option, I think it would be more obvious to people, including myself, who missed it.

Yes, I do agree with this.

It's a separate topic to the current one though, so I've pulled it out to:

RealityWinner commented 6 months ago

I hate to necro an issue but this is the most relevant one I can find. I have a task that must be done on a rolling 3 day schedule via every 3 days. If i miss that schedule I want it to go to the next 3 day window. The option when done unfortunately does not satisfy this case as it misaligns that 3 day schedule and I cannot complete the task until the next. Currently I manually fix missed instances but would really benefit from it being supported.

The above should have a start date of 2024-03-27 instead. As I missed the previous window and have completed the task for the current window. I am unsure how best this could be supported. Perhaps a fixed designation of sorts instead of when done as to not change base behavior.

claremacrae commented 6 months ago

I hate to necro an issue but this is the most relevant one I can find.

Hi @RealityWinner, yes this is close, and thank you for looking... but this is about what happens when a recurring task is marked as completed, and yours seems to be about updating the due/scheduled/start date to skip an instance...

I feel that your scenario will be best covered by the following, which you may wish to upvote:

RealityWinner commented 6 months ago

Thanks claremacrae! I can see how you could reach that conclusion from how I phrased it. I was looking at when marking complete like the original issue described as I can have many low priority tasks like such and do not wish to manually postpone all of them to update their recurrence date. Having to perform a 2nd step of postponing the newly created task moving it's start date to next scheduled 3 day window after marking complete the original would be a valid solution.

claremacrae commented 6 months ago

Ah right, then yes, this is the right ticket. Feel free to πŸ‘ it...

claremacrae commented 6 months ago

Nope - I'm wrong, this became about updating the documentation to make when done clearer.

claremacrae commented 6 months ago

@RealityWinner Feel free to submit a feature request for what you are after... Please have a think about possible phases to use to enable it on the task line - since when done is taken.