TaskWarrior – Stop worrying and start warrioring!

$task add "Buy flowers for Mandy" Created task 1. This adds the task to the list. You can display your todo list (and some other lists) in different ways. These ways are called reports in TaskWarrior. By simply typing$ task
a default report is shown (which can of course be edited and customized). You can also display all existing reports via
$task report Report Description active Lists active tasks all Lists all pending and completed tasks blocked Lists all blocked tasks [...] completed Lists completed tasks [...] information Shows all data and metadata list Lists all pending tasks long Lists all pending tasks ls Minimal listing of all pending tasks minimal Minimal listing of all pending tasks newest Shows the newest tasks next Lists the most urgent tasks oldest Shows the oldest tasks projects Shows all project names used ready Lists the most urgent tasks recurring Lists recurring tasks summary Shows a report of task status by project tags Shows a list of all tags used [...] waiting Lists all waiting tasks 28 reports The following reports are used for displaying tasks: * active you can start a task in TaskWarrior, then it is called active and listed by this report. * all this report will get very large, since it also lists all tasks that have been completed * blocked TaskWarrior supports dependencies. This report lists all tasks that require another task to be completed. * completed can be used for documentation purposes, lists, as the name suggests, the tasks that are done. * information this lists tasks in their full detail, with things like all their modifications. * list/long/ls/minimal lists all tasks that you have to do (with different columns). This may exceed your screen height, especially if you use TaskWarrior to manage *all* your things. * newest/oldest the newest or oldest task, in terms of the entry date. * ready/next this is a very useful report and I it got my default report (the one that is called if I only type task) * projects this report lists all projects * recurring recurring tasks are task that come back to you every day, month, quarter or year. This has become a central part since I don't have to remember to put stuff like writing bills, reviewing the last week or doing my taxes on my todo list. * tags tag a task in TaskWarrior. This is also central, since I use tags to implement the concept of context from GTD. They can of course be used for a lot of other stuff. * waiting You can set a field called "waiting" in TaskWarrior. It contains a timestamp and the task will not appear on the normal todo lists until this timestamp. With this you can keep your todo-list clean and also implement features like "follow up". One can also define custom reports in the configuration file .taskrc like this (here I also use advanced filtering, which I will not describe in this post): report.morning.description=Morning report report.morning.columns=id,priority,due,description,project,tags report.morning.labels=ID,Pri,Due,Decription,Pro,Tags report.morning.sort=due-,priority- report.morning.filter=status:pending and '( due.before:1y or prio:H )' # Modify The man page for task gives the general syntax: task <filter> <command> [ <mods> | <args> ] Up till now, we have seen add command and different reports as command. Up to now, we did not use a <filter> yet, which means that no filter was applied. The next <command> I whould like to focus your attention on is modify. We added the task to buy Mandy some flowers to our list and it got the id 1. We can use such ids to filter and then modify the task$ task 1 modify /flowers/diamonds/
Which does a search and replace on the task description, replacing "flowers" with "diamonds". We can also set some of the other properties / fields of the tasks. We could for example add the task to a project filling the field project like this:
$task 1 modify project:Family Modifying task 1 'Buy diamonds for Mandy.'. Modified 1 task. The project 'Family' has changed. Project 'Family' is 0% complete (1 of 1 tasks remaining). TaskWarrior has the neat feature that every command or fieldname can be abbreviated as long it remains unique. So for the previous command we could have also written$ task 1 mod proj:Family
$task 1,4-5,19 modify due:1week prio:M proj:Garden You can also use fields as a filter:$ task proj:Garden modify due:sunday
$task add "Contact Jennifer from Interactive-Solutions under 555-4823 to talk about the project" +call The tags are "created" automatically and "removed" if every task that has it is deleted. Of course you can also filter by tag:$ task +call
Finally with
$task tags you get a full list of all tags, that you have used. One can use tags when adding or modifying a task and also as a filter:$ task add "Buy plane tickets for my trip to canada" proj:Family prio:H +online
$task 4 mod -driving$ task 4 mod +online
$task +online I also use tags for persons. Whenever I want to talk to a person about a certain topic, I write it on my todo-list and add the person's name as a tag. This enables me to filter by a persons name, when I meet somebody, to make sure that I remember everything I wanted to talk about. # Annotations TaskWarrior allows you to annotate tasks to store additional information (together with a timestamp). For this just use the commands annotate and denotate:$ task 15 ann "Called the store and asked for a refund this morning, the guy's name was Steve"
$task 7 ann "Call 0123 567890 to directly talk to James"$ task 15 den "refund"