The Eisenhower Method is based on the simple understanding that urgency and importance are not the same (see for example The Eisenhower Method with a picture of the "matrix" at Wikipedia). The goal of this post is to implement it with TaskWarrior.
We have to model the two dimension "priority" and "urgency". TaskWarrior has a notion of urgency but this is something totally different (it is a real number that tries to indicate how urgent a task is and that is derived by a complicated algorithm from facts like priority, duedate and dependence on other tasks). So I decided to use tags to model urgency:
+urg
for urgent tasks and +unu
for unurgent tasks. For the priorities "important" and "unimportant" I use the built in priority
field with the value H
for important and L
for unimportant (I'm not sure what to do with the priority M
yet). Everything that does not have a priority or that is leaking both the +urg
and +unu
tag will be placed on an "inbox report" meaning that it has not yet been categorized completely.
report.inbox.description=INBOX report
report.inbox.filter=limit:page dep: status:pending -maybe -idea -FU -activedept and '( ( prio.not:H and prio.not:L ) or (-urg and -unu))'
report.inbox.columns=id,project,description,entry.age,tags
report.inbox.labels=ID,Proj,Description,Age,Tags
report.inbox.sort=entry+
This report does the following:
* It shows only one page full of entries
* it only lists task that are not depending on some other tasks (if the blocking task is done, they will automatically appear in the INBOX)
* it only lists tasks that are not tagged by +maybe
(tasks that are very optional),+FU
(tasks that I delegated and are now on the "follow-up" list), +idea
(I also use TaskWarrior to make notes about ideas that may or may not become projects in the future) or +activedept
(since I don't want to let active depts show up on my INBOX report)
* it only lists tasks that do not have a priority of L or H and also tasks that are neither taged with +urg
nor with +unu
* and sorts by entry date descending - showing the oldest entry first
We also need reports for the different quadrants of the Eisenhower Matrix. So lets add the report definitions above and below to our .taskrc
.
# task Q1
report.q1.description=Quadrant 1: important and urgent
report.q1.filter=limit:page status:pending and prio:H and +urg
report.q1.columns=start.active,id,project,urgency,description,entry.age,tags
report.q1.labels=A,ID,Proj,Urg,Description,Age,Tags
# task Q2
report.q2.description=Quadrant 2: important and unurgent
report.q2.filter=limit:page status:pending and prio:H and +unu
report.q2.columns=start.active,id,project,urgency,description,entry.age,tags
report.q2.labels=A,ID,Proj,Urg,Description,Age,Tags
# task Q3
report.q3.description=Quadrant 3: unimportant and urgent
report.q3.filter=limit:page status:pending and prio:L and +urg
report.q3.columns=start.active,id,project,urgency,description,entry.age,tags
report.q3.labels=A,ID,Proj,Urg,Description,Age,Tags
# task Q4
report.q4.description=Quadrant 4: unimportant and unurgent
report.q4.filter=limit:page status:pending and prio:L and +unu
report.q4.columns=start.active,id,project,urgency,description,entry.age,tags
report.q4.labels=A,ID,Proj,Urg,Description,Age,Tags
For a faster workflow, I placed the following in my .bashrc
to enable me to write something like q3 55
to move the task with id 55 to quadrant 3 (urgent but not important) or just q3
to display quadrant 3 (for whatevery reason ;-) ):
function func_q1 {
if [ $# -ne 1 ]; then
task q1
else
task $1 mod prio:H +urg -unu
task inbox
fi
}
function func_q2 {
if [ $# -ne 1 ]; then
task q2
else
task $1 mod prio:H +unu -urg
task inbox
fi
}
function func_q3 {
if [ $# -ne 1 ]; then
task q3
else
task $1 mod prio:L +urg -unu
task inbox
fi
}
function func_q4 {
if [ $# -ne 1 ]; then
task q4
else
task $1 mod prio:L +unu -urg
task inbox
fi
}
alias q1="func_q1"
alias q2="func_q2"
alias q3="func_q3"
alias q4="func_q4"
Since I ended up calling task inbox
everytime after a call of q1
, q2
, q3
or q4
with an argument, I added the line task inbox
in the else branch of all the four functions.
2 Replies to “The Eisenhower Matrix in TaskWarrior”