What’s the best was to create recurring tasks in Taskpaper 3.0? I’m quite happy to use scripts if necessary but nothing too nerdy.
Here’s an interesting hack for recurring tasks that doesn’t require a script. It doesn’t cover all cases, but may work for you.
Use relative dates in your tag values, and then do a date based search.
For example:
- this task will show up each Monday @recurring(Monday)
- this task will show up each Tuesday @recurring(Tuesday)
- this task will show up each Friday ... etc @recurring(Friday)
- this task will show up at the Sunday start of each week @recurring(this week)
- this task will show up the first of each month @recurring(this month)
Recurring Today @search(@recurring >=[d] today and @recurring <=[d] tomorrow)
That last line is setting up a saved search, so that you should see a new item “Recurring Today” in the sidebar. Click on that and you’ll see all items that are recurring on the current date.
What this hack cannot do is recognize when an item is overdue. For example if you are sick on Monday, you won’t see the Monday item when you show up on Tuesday. For that you’d need a script that’s a bit more smart.
What about if I want something to show up on the 15th and 28th of each month?
If you wanted to follow the hack that I mentioned above you would do it like:
- this task will show up the 15th of each month @recurring(this month + 15d)
- this task will show up the 18th of each month @recurring(this month + 18d)
Is there any way to add a recurring task for every 3rd Wednesday of the month?
I have a lot of items required for 1st Tues, 3rd Wednesday of the month etc.
No, I don’t think so. I guess I could allow you to adjust a reference date (the start of the month) by a day of the week.
So for example:
this month +3 wed
Would resolve to the 3rd Wednesday of the current month. Would the make sense?
Yep that makes sense!
Many thanks, let me know when I can try this out.
Would that enable a more complex argument such as every other month on the 3rd Wednesday?
I don’t think so, it would just allow you to pick dates using an additional syntax. If I added recurrences or date spans I think that would require new syntax.
Does this @recurring tag cause completed tasks to be uncompleted, or just serve to act as a filterable parameter in a search? I can’t find any other documentation about this.
No, it’s just a filterable parameter for search. There’s nothing built-in/special about the “@recurring” tag. You could use any tag in the same way.
And obviously these tasks would never be marked as “@done” correct?
Correct, or at least not unless you do it manually yourself.
I also think this would definitely be a great extension of the relative date syntax, especially in context of your recurring tasks hack. Do you have any plans to implement it anytime soon?
Lost track of this, I’ve added an issue for it now. But I don’t expect it will get done soon. My current sequence of priorities is:
- Write new text engine for TaskPaper codebase
- Use new text engine to create WriteRoom 4 based off that codebase
- Integrate new text engine to create next TaskPaper
Each of these things is a big job. I don’t have much estimate as to when things will get done other then to report that I’ve been on step one for last few months.
Here’s a script you may find useful: