Reccuring tasks are boring. The same kind of things that we must achieve again and again on a daily, weekly or monthly basis is something that I want to take care painlessly.
I use taskwarrior for my todo list because it's a CLI app and since I past most of my time in terminals it was a natural choice.
What's handy is that I've got everything in a git repo that is synchronized between my work and home laptops.
I spent quite a lot of time online trying to find answers about how some new features where working or to see if some will be added soon. What I found out is that it looks like a lot of people using taskwarrior have issues about recurring tasks and don't really understand how it works. It's not really difficult once you get how the app is handling these tasks.
Here is how I use it on my side to add these kind of tasks.
Adding a recurring task
If you need to add a daily task, you could use this command :
% task add "a daily recurring task" recur:daily due:eod
The important parameter is the due:eod meaning that it must be done today. Once you mark it done it won't appears until the next day.
I've seen people adding a due day like eom but that's actually addind a task that has to be done until the end of the month. The next day you will have a new task and you will have until the end of the next month to finish it.
So the right way to add a daily / weekly / monthly is :
# daily % task add "a daily recurring task" recur:daily due:eod # weekly % task add "a weekly recurring task" recur:weekly due:eow # monthly % task add "a monthly recurring task" recur:monthly due:eom
You can add of course some aliases to add these kind of tasks. Mine are
alias trd="task add recur:daily due:eod" alias trw="task add recur:weexly due:eow" alias trm="task add recur:monthly due:eom"
Deleting a recurring task
When a reccurent task is created, children ones are spawned in the background that will pop up every time its needed. So to delete a task and all the children you need basically to remove the parent task.
You can display all parent tasks with the parameter +PARENT. For example :
% task all +PARENT ID St UUID Age Done Project R Due Description 45 R c85cd2a9 25s R 2020-03-22 test
Now you can delete it with :
% task delete 45 Delete task 45 'test'? (yes/no) yes Deleting task c85cd2a9 'test'. This is a recurring task. Do you want to delete all pending recurrences of this same task? (yes/no) yes Deleting recurring task 47be2278 'test'. Deleted 2 tasks.
Now the recurring tasks shouldn't show up any longer.
taskwarrior cli todo cli terminal