Manage Tasks on Cards on a Canvas according to Scrum Sprint and Status

My team uses Scrum and has two-week Sprints that start and end on Wednesdays to work on our assigned tasks. I am trying to use the Tasks plugin to create and manage tasks in Cards on a Canvas. The cards are to separate Sprint items into current, future and past Sprints as well as Status such as Available, In Progress, Complete, Blocked, etc. I have code blocks in each card to automatically move tasks to the appropriate card whenever a task is updated. The problem I have is managing if it is the current Sprint or a future Sprint. Since they span two weeks and start/end on Wed, I don’t know how to determine which tasks are in the current sprint without having to manually add the cards or tasks just to move tasks to the appropriate cards? if I could use something like global variables or a way to reference calendar week of the year or something like that?

Any guidance would be appreciated.

i have seem some suggestions about using yaml in front matter fields, but it seems to be specific to using dataview not emoji task view and some suggestions about using Templater to define the variables. I just don’t seem to be having any luck using a variable to filter tasks based on Tags? i.e. Variable “ActiveSprint” Value “Sprint65” and in the Card’s code block reference tag include (Variable ActiveSprint) so that it would include tasks that have the tag #Sprint65

Thanks,
Richie

Could you please expand upon what kind of code blocks you use when updating your tasks? Or are you manually editing the tasks in place? More details would help us to understand how you do things currently, and help us suggest alternatives.

If you’re manually updating each task I would suggest to use the extended bujo status characters:

  • space - To do in current sprint
  • / - in progress
  • - - cancelled
  • x - completed
  • < - Defered, moved out of the sprint (or completed outside of sprint(?))
  • > - Future sprint

The point being to use different status characters to denote the state of the task. Using Tasks this can be changed using right click on the checkbox during your scrum dailies. And you could use CSS to make them look meaningful to your team, and if define extra characters for other statuses.

The meaning of the defered is up to you to decide, but it could be used if you want to declare a task out of the current sprint and to be decided upon in the next sprint planning. That way you could in the planning see which tasks you tried to accomplish, and which are just to be done sometime in the future.

Sorry for the delays.

I may be using the wrong terminology. My dashboard is based on this video by Mike Schmitz.

An example of the code block is:

filter by function task.status.name === 'Todo'
tag include #Sprint
sort by due
hide tags
short mode

Here is an example of one of the groups of Cards for the “Current Sprint Tasks”:

I have other groups of Cards for Future Sprint Tasks, Past Sprint Tasks, Non-Sprint Tasks, etc.

Everything works as expected. I just don’t know how to filter to only Tasks in the Current/Active Sprint without having to manually change each task or each code block every 2 weeks.

So for example, lets say that our Sprints are numbered 1 to 26, they run 2 weeks from Wed to Wed and Sprint 1 started 1/1/25. Sprint 2 will start 1/15/25, Sprint 3 on 1/29/25, etc.

In my mind there are a couple of ways to approach it…

Based on Due Date

if the Due Date is on or before 1/15/25, it would only show up in the “Current Sprint Tasks” group of Cards if the current date is on or before 1/15/25. If I check the Dashboard again on 1/16/25, the “Current Sprint Tasks” group of cards would only show Tasks with a Due Date between 1/16 and 1/29. If I could put dates into global variables, then I could have each of these cards say something like:

(due after {startdate}) AND (due before {enddate})

Then I could just update {startdate} and {enddate} every two weeks and all of the cards would reflect the change.

Or, if I could use a Variable to reference a Tag. Then, every two weeks I could update the new sprint items for that week with #Sprint2 or #Sprint3, etc and I could update the global variable for {activesprint} = ‘Sprint2’. then set all of the “Current Sprint Tasks” cards to have something like:

(tag include {activesprint})

I hope that makes sense. If our Sprints were 1 week long and ran on a calendar week, then I could just say (due this week) or something like that. But they are not 1 week long and not on a calendar week.

Thanks,
Richard