1task(1)                          User Manuals                          task(1)
2
3
4

NAME

6       task - A command line todo manager.
7
8

SYNOPSIS

10       task <filter> <command> [ <mods> | <args> ]
11       task --version
12
13

DESCRIPTION

15       Taskwarrior is a command line todo list manager. It maintains a list of
16       tasks that you want to do, allowing you to  add/remove,  and  otherwise
17       manipulate  them.  Taskwarrior has a rich set of subcommands that allow
18       you to do various things with it.
19
20       At the core, Taskwarrior is a list processing program. You add text and
21       additional  related  parameters and redisplay the information in a nice
22       way.  It turns into a todo list program when  you  add  due  dates  and
23       recurrence.  It  turns into an organized todo list program when you add
24       priorities, tags (one word descriptors), project groups, etc.
25
26

FILTER

28       The <filter> consists of zero  or  more  search  criteria  that  select
29       tasks.   For example, to list all pending tasks belonging to the 'Home'
30       project:
31
32         task project:Home list
33
34       You can specify multiple filter terms, each of which further  restricts
35       the result:
36
37         task project:Home +weekend garden list
38
39       This  example  applies three filters: the 'Home' project, the 'weekend'
40       tag, and the description or  annotations  must  contain  the  character
41       sequence  'garden'.  In this example, 'garden' is translated internally
42       to:
43
44         description.contains:garden
45
46       as a convenient shortcut.  The 'contains' here is  an  attribute  modi‐
47       fier,  which  is used to exert more control over the filter than simply
48       absence or presence.  See the section 'ATTRIBUTE MODIFIERS' below for a
49       complete list of modifiers.
50
51       Note  that  a  filter  may  have zero terms, which means that all tasks
52       apply to the command.  This can be dangerous, and this special case  is
53       confirmed, and cannot be overridden.  For example, this command:
54
55         task modify +work
56         This command has no filter, and will modify all tasks.  Are you sure?
57       (yes/no)
58
59       will add the 'work' tag to all tasks, but only after confirmation.
60
61       More filter examples:
62
63         task                                      <command> <mods>
64         task 28                                   <command> <mods>
65         task +weekend                             <command> <mods>
66         task project:Home due.before:today        <command> <mods>
67         task ebeeab00-ccf8-464b-8b58-f7f2d606edfb <command> <mods>
68
69       By default filter elements are combined with an implicit  'and'  opera‐
70       tor,  but  'or'  and  'xor'  may also be used, provided parentheses are
71       included:
72
73         task '( /[Cc]at|[Dd]og/ or /[0-9]+/ )'      <command> <mods>
74
75       The parentheses isolate the logical term from any default command  fil‐
76       ter  or implicit report filter which would be combined with an implicit
77       'and'.
78
79       A filter may target specific tasks using ID or UUID numbers.  To  spec‐
80       ify  multiple  tasks use one of these forms (space-separated list of ID
81       numbers, UUID numbers or ID ranges):
82
83         task 1 2 3                                    delete
84         task 1-3                                      info
85         task 1 2-5 19                                 modify pri:H
86         task 4-7 ebeeab00-ccf8-464b-8b58-f7f2d606edfb info
87
88

MODIFICATIONS

90       The <mods> consist of zero or more changes to  apply  to  the  selected
91       tasks, such as:
92
93         task <filter> <command> project:Home
94         task <filter> <command> +weekend +garden due:tomorrow
95         task <filter> <command> Description/annotation text
96         task <filter> <command> /from/to/     <- replace first match
97         task <filter> <command> /from/to/g    <- replace all matches
98
99

SUBCOMMANDS

101       Taskwarrior  supports different kinds of commands.  There are read com‐
102       mands, write commands, miscellaneous commands and  script  helper  com‐
103       mands.   Read  commands do not allow modification of tasks.  Write com‐
104       mands can alter almost any aspect of a task.   Script  helper  commands
105       are  provided to help you write add-on scripts, for example, shell com‐
106       pletion (only minimal output is generated, as with verbose=nothing).
107
108

READ SUBCOMMANDS

110       Reports are read subcommands. There are several reports currently  pre‐
111       defined  in  Taskwarrior. The output and sort behavior of these reports
112       can be configured in the configuration file.  See  also  the  man  page
113       taskrc(5).  There are also other read subcommands that are not reports.
114
115
116       task --version
117              This  is  the  only  conventional  command  line  argument  that
118              Taskwarrior supports, and is intended for add-on scripts to ver‐
119              ify  the  version  number  of  an  installed Taskwarrior without
120              invoking the mechanisms that create default files.
121
122
123       task <filter>
124              With no command specified, the default command is run,  and  the
125              filter applied.
126
127
128       task <filter> active
129              Shows  all  tasks  matching  the filter that are started but not
130              completed.
131
132
133       task <filter> all
134              Shows all tasks matching the filter, including parents of recur‐
135              ring tasks.
136
137
138       task <filter> blocked
139              Shows  all tasks matching the filter, that are currently blocked
140              by other tasks.
141
142
143       task <filter> blocking
144              Shows all tasks matching the filter, that block other tasks.
145
146
147       task <filter> burndown.daily
148              Shows a graphical burndown chart, by day.
149
150
151       task <filter> burndown.weekly
152              Shows a graphical burndown chart, by week.  Note that 'burndown'
153              is an alias to the 'burndown.weekly' report.
154
155
156       task <filter> burndown.monthly
157              Shows a graphical burndown chart, by month.
158
159
160       task calendar [due|<month> <year>|<year>] [y]
161              Shows a monthly calendar with due tasks marked.  Shows one hori‐
162              zontal line of months.  If the 'y' argument  is  provided,  will
163              show at least one complete year.  If a year is provided, such as
164              '2015', then that full year is shown.  If both  a  month  and  a
165              year are specified ('6 2015') then the months displayed begin at
166              the specified month and year.  If the  'due'  argument  is  pro‐
167              vided, will show the starting month of the earliest due task.
168
169
170       task colors [sample | legend]
171              Displays  all  possible colors, a named sample, or a legend con‐
172              taining all currently defined colors.
173
174
175       task columns [substring]
176              Displays all supported columns and  formatting  styles.   Useful
177              when  creating custom reports.  If a substring is provided, only
178              matching column names are shown.
179
180
181       task commands
182              Shows all the supported commands, with some details of each.
183
184
185       task <filter> completed
186              Shows all tasks matching the filter that are completed.
187
188
189       task <filter> count
190              Displays only a count of tasks matching the filter.
191
192
193       task <filter> export
194              Exports all tasks in the JSON format.  Redirect the output to  a
195              file,  if  you wish to save it, or pipe it to another command or
196              script to convert  it  to  another  format.  The  standard  task
197              release comes with a few example scripts, such as:
198
199                export-csv.pl
200                export-sql.py
201                export-xml.py
202                export-yaml.pl
203                export-html.pl
204                export-tsv.pl
205                export-xml.rb
206                export-ical.pl
207                export-xml.pl
208                export-yad.pl
209
210
211       task <filter> ghistory.annual
212              Shows a graphical report of task status by year.
213
214
215       task <filter> ghistory.monthly
216              Shows  a  graphical  report  of task status by month.  Note that
217              'ghistory' is an alias to 'ghistory.monthly'.
218
219
220       task help
221              Shows the long usage text.
222
223
224       task <filter> history.annual
225              Shows a report of task history by year.
226
227
228       task <filter> history.monthly
229              Shows a report of task history by month.  Note that 'history' is
230              an alias to 'history.monthly'.
231
232
233       task <filter> ids
234              Applies  the filter then extracts only the task IDs and presents
235              them as a space-separated list.  This is useful as  input  to  a
236              task command, to achieve this:
237
238                task $(task project:Home ids) modify priority:H
239
240              This  example  first  gets  the IDs for the project:Home filter,
241              then sets the priority to H for each of those tasks.   This  can
242              also be achieved directly:
243
244                task project:Home modify priority:H
245
246              This command is mainly of use to external scripts.
247
248
249       task <filter> uuids
250              Applies  the  filter  on  all  tasks (even deleted and completed
251              tasks) then extracts only the task UUIDs and presents them as  a
252              comma-separated  list.   This  is useful as input to a task com‐
253              mand, to achieve this:
254
255                task $(task project:Home status:completed uuids)  modify  sta‐
256              tus:pending
257
258              This  example first gets the UUIDs for the project:Home and sta‐
259              tus:completed filters, then makes each of  those  tasks  pending
260              again.
261
262              This command is mainly of use to external scripts.
263
264
265       task udas
266              Shows  a  list  of  UDAs that are defined, including their name,
267              type, label and allowed values.  Also shows UDA  usage  and  any
268              orphan UDAs.
269
270
271       task <filter> information
272              Shows  all  data  and metadata for the specified tasks.  This is
273              the only means of  displaying  all  aspects  of  a  given  task,
274              including the change history.
275
276
277       task <filter> list
278              Provides a standard listing of tasks matching the filter.
279
280
281       task <filter> long
282              Provides the most detailed listing of tasks matching the filter.
283
284
285       task <filter> ls
286              Provides a short listing of tasks matching the filter.
287
288
289       task <filter> minimal
290              Provides a minimal listing of tasks matching the filter.
291
292
293       task <filter> newest
294              Shows the newest tasks matching the filter.
295
296
297       task <filter> next
298              Shows  a page of the most urgent tasks, sorted by urgency, which
299              is a calculated value.
300
301
302       task <filter> ready
303              Shows a page of the most urgent ready tasks, sorted by  urgency.
304              A  ready task is one that is either unscheduled, or has a sched‐
305              uled date that is past and has no wait date.
306
307
308       task <filter> oldest
309              Shows the oldest tasks matching the filter.
310
311
312       task <filter> overdue
313              Shows all incomplete tasks matching the filter that  are  beyond
314              their due date.
315
316
317       task <filter> projects
318              Lists  all  project  names  that  are  currently used by pending
319              tasks, and the number of tasks for each.
320
321
322       task <filter> recurring
323              Shows all recurring tasks matching the filter.
324
325
326       task <filter> unblocked
327              Shows all tasks that are not currently blocked by  other  tasks,
328              matching the filter.
329
330
331       task <filter> waiting
332              Shows all waiting tasks matching the filter.
333
334

WRITE SUBCOMMANDS

336       task add <mods>
337              Adds a new pending task to the task list.
338
339
340       task <filter> annotate <mods>
341              Adds an annotation to an existing task.
342
343
344       task <filter> append <mods>
345              Appends description text to an existing task.
346
347
348       task <filter> delete <mods>
349              Deletes the specified task from task list.
350
351
352       task <filter> denotate <mods>
353              Deletes  an  annotation  for the specified task. If the provided
354              description matches an  annotation  exactly,  the  corresponding
355              annotation is deleted. If the provided description matches anno‐
356              tations partly, the first partly matched annotation is deleted.
357
358
359       task <filter> done <mods>
360              Marks the specified task as done.
361
362
363       task <filter> duplicate <mods>
364              Duplicates the specified task and allows modifications.
365
366
367       task <filter> edit
368              Launches a text editor to let you modify all aspects of  a  task
369              directly.   In  general,  this  is not the recommended method of
370              modifying tasks, but is provided for exceptional  circumstances.
371              Use carefully.
372
373
374       task import [<file> ...]
375              Imports tasks in the JSON format.  Can be used to add new tasks,
376              or update existing ones.  Tasks are identified by their UUID.
377
378              If no file or "-" is specified, import tasks from STDIN.
379
380              Setting rc.recurrence.confirmation to an  appropriate  level  is
381              recommended if import is to be used in automated workflows.  See
382              taskrc(5).
383
384              For importing other file  formats,  the  standard  task  release
385              comes with a few example scripts, such as:
386
387                import-todo.sh.pl
388                import-yaml.pl
389
390
391       task log <mods>
392              Adds a new task that is already completed, to the task list.
393
394
395       task <filter> modify <mods>
396              Modifies the existing task with provided information.
397
398
399       task <filter> prepend <mods>
400              Prepends description text to an existing task.
401
402
403       task <filter> start <mods>
404              Marks the specified tasks as started.
405
406
407       task <filter> stop <mods>
408              Removes the start time from the specified task.
409
410

MISCELLANEOUS SUBCOMMANDS

412       Miscellaneous  subcommands  either accept no command line arguments, or
413       accept non-standard arguments.
414
415
416       task calc <expression>
417              Evaluates an algebraic expression.  Can  be  used  to  test  how
418              Taskwarrior  parses  and  evaluates  the expression given on the
419              command line.
420
421              Examples:
422
423                  task calc 1 + 1
424                  2
425
426                  task calc now + 8d
427                  2015-03-26T18:06:57
428
429                  task calc eom
430                  2015-03-31T23:59:59
431
432
433       task config [name [value | '']]
434              Add, modify and remove settings directly in the Taskwarrior con‐
435              figuration.   This  command  either  modifies the 'name' setting
436              with a new value of 'value', or adds a new entry that is equiva‐
437              lent to 'name=value':
438
439                  task config name value
440
441              This  command  sets  a blank value.  This has the effect of sup‐
442              pressing any default value:
443
444                  task config name ''
445
446              Finally, this command removes  any  'name=...'  entry  from  the
447              .taskrc file:
448
449                  task config name
450
451
452       task context <name>
453              Sets the currently active context. See the CONTEXT section.
454
455              Example:
456
457                  task context work
458
459
460       task context delete <name>
461              Deletes  the  context with the name <name>. If the context being
462              deleted is currently set as active, it will be unset.
463
464              Example:
465
466                  task context delete work
467
468
469       task context define <name> <filter>
470              Defines a new context with name <name> and definition  <filter>.
471              This  command  does  not  affect the currently set context, just
472              adds a new context definition.
473
474              Examples:
475
476                  task context define work project:Work
477                  task context define home project:Home or +home
478                  task context define superurgent due:today and +urgent
479
480
481       task context list
482              Outputs a list of available contexts along  with  their  defini‐
483              tions.
484
485
486       task context none
487              Clears the currently active context, if any was set.
488
489
490       task context show
491              Shows the currently active context, along with its definition.
492
493
494       task diagnostics
495              Shows  diagnostic information, of the kind needed when reporting
496              a problem.  When you report a bug, it is likely that  the  plat‐
497              form, version, and environment are important.  Running this com‐
498              mand generates a summary  of  similar  information  that  should
499              accompany a bug report.
500
501              It includes compiler, library and software information.  It does
502              not include any personal information, other  than  the  location
503              and size of your task data files.
504
505              This  command also performs a diagnostic scan of your data files
506              looking for common problems, such as duplicate UUIDs.
507
508
509       task execute <external command>
510              Executes the specified command.  Not useful by itself, but  when
511              used  in  conjunction  with  aliases  and extensions can provide
512              seamless integration.
513
514
515       task logo
516              Displays the Taskwarrior logo.
517
518
519       task reports
520              Lists  all  supported  reports.   This  includes  the   built-in
521              reports, and any custom reports you have defined.
522
523
524       task show [all | substring]
525              Shows  all  the  current  settings.  If a substring is specified
526              just the settings containing that substring will be displayed.
527
528
529       task <filter> stats
530              Shows statistics of the tasks defined by the filter.
531
532
533       task <filter> summary
534              Shows a report of aggregated task status by project.
535
536
537       task <filter> tags
538              Show a list of all tags used. Any special tags  used  are  high‐
539              lighted.  Note  that  virtual  tags  are not listed - they don't
540              really exist, and are just a convenient notation for other  task
541              metadata.  It  is an error to attempt to add or remove a virtual
542              tag.
543
544
545       task timesheet [weeks]
546              Shows a weekly report of tasks completed and started.
547
548
549       task undo
550              Reverts the most recent action.  Obeys the confirmation setting.
551
552
553       task version
554              Shows the Taskwarrior version number.
555
556

HELPER SUBCOMMANDS

558       task _aliases
559              Generates a list of all aliases, for autocompletion purposes.
560
561
562       task _columns
563              Displays only a list of supported columns.
564
565
566       task _commands
567              Generates a list of all commands, for autocompletion purposes.
568
569
570       task _config
571              Lists all supported configuration variables, for completion pur‐
572              poses.
573
574
575       task _context
576              Lists all available context variables, for completion purposes.
577
578
579       task <filter> _ids
580              Shows  only  the  IDs  of matching tasks, in the form of a list.
581              Deprecated in favor of _unique.
582
583
584       task _show
585              Shows the combined defaults and overrides of  the  configuration
586              settings, for use by third-party applications.
587
588
589       task <filter> _unique <attribute>
590              Reports  a  unique  set of attribute values. For example, to see
591              all the active projects:
592
593                task +PENDING _unique projects
594
595
596       task <filter> _uuids
597              Shows only the UUIDs of matching tasks  among  all  tasks  (even
598              deleted and completed tasks), in the form of a list.  Deprecated
599              in favor of _unique.
600
601
602       task _udas
603              Shows only defined UDA names, in the form of a list.
604
605
606       task <filter> _projects
607              Shows only a list of all  project  names  used.   Deprecated  in
608              favor of _unique.
609
610
611       task <filter> _tags
612              Shows only a list of all tags used, for autocompletion purposes.
613              Deprecated in favor of _unique.
614
615
616       task <filter> _urgency
617              Displays the urgency measure of a task.
618
619
620       task _version
621              Shows only the Taskwarrior version number.
622
623
624       task _zshcommands
625              Generates a list of all commands, for  zsh  autocompletion  pur‐
626              poses.
627
628
629       task <filter> _zshids
630              Shows the IDs and descriptions of matching tasks.
631
632
633       task <filter> _zshuuids
634              Shows the UUIDs and descriptions of matching tasks.
635
636
637       task _get <DOM> [<DOM> ...]
638              Accesses  and  displays  the  DOM reference(s).  Used to extract
639              individual values from tasks, or the system.  Supported DOM ref‐
640              erences are:
641
642                rc.<name>
643                context.program
644                context.args
645                context.width
646                context.height
647                system.version
648                system.os
649                <id>.<attribute>
650                <uuid>.<attribute>
651
652              Note that the 'rc.<name>' reference may need to be escaped using
653              '--' to prevent the reference from being interpreted as an over‐
654              ride.
655
656              Note  that  if  the DOM reference is not valid, or the reference
657              evaluates to a missing value, the command exits with 1.
658
659              Additionally, some components of the  attributes  of  particular
660              types may be extracted by DOM references.
661
662                $ task _get 2.due.year
663                2015
664
665              For  a full list of supported attribute-specific DOM references,
666              consult   the   online   documentation   at:    <http://taskwar
667              rior.org/docs/dom.html>
668
669

ATTRIBUTES AND METADATA

671       ID     Tasks  can  be  specified  uniquely by IDs, which are simply the
672              indexes of the tasks in the data file.  The ID  of  a  task  may
673              therefore  change,  but only when a command is run that displays
674              IDs.  When modifying tasks, it is safe to rely on the last  dis‐
675              played  ID.   Always run a report to check you have the right ID
676              for a task. IDs can be given to task as a sequence, for example,
677              task 1,4-10,19 delete
678
679
680       +tag|-tag
681              Tags are arbitrary words associated with a task. Use + to add  a
682              tag and - to remove a tag from a task. A task can have any quan‐
683              tity of tags.
684
685              Certain tags (called 'special tags'), can be used to affect  the
686              way  tasks  are treated.  For example, if a task has the special
687              tag 'nocolor', then it is exempt from all color rules.  The sup‐
688              ported special tags are:
689
690                  +nocolor     Disable color rules processing for this task
691                  +nonag       Completion of this task suppresses all nag mes‐
692              sages
693                  +nocal       This task will not appear on the calendar
694                  +next        Elevates task so it appears on 'next' report
695
696              There are also virtual tags, which represent  task  metadata  in
697              tag  form.   These  tags do not exist, but can be used to filter
698              tasks.  The supported virtual tags are:
699
700                  ACTIVE       Matches if the task is started
701                  ANNOTATED    Matches if the task has annotations
702                  BLOCKED      Matches if the task is blocked
703                  BLOCKING     Matches if the task is blocking
704                  CHILD        Matches if the task has a parent
705                  COMPLETED    Matches if the task has completed status
706                  DELETED      Matches if the task has deleted status
707                  DUE          Matches if the task is due
708                  DUETODAY     Matches if the task is due today
709                  LATEST       Matches if the task is the newest added task
710                  MONTH        Matches if the task is due this month
711                  ORPHAN       Matches if the task has any orphaned UDA values
712                  OVERDUE      Matches if the task is overdue
713                  PARENT       Matches if the task is a parent
714                  PENDING      Matches if the task has pending status
715                  PRIORITY     Matches if the task has a priority
716                  PROJECT      Matches if the task has a project
717                  READY        Matches if the task is actionable
718                  SCHEDULED    Matches if the task is scheduled
719                  TAGGED       Matches if the task has tags
720                  TODAY        Matches if the task is due today
721                  TOMORROW     Matches if the task is due sometime tomorrow
722                  UDA          Matches if the task has any UDA values
723                  UNBLOCKED    Matches if the task is not blocked
724                  UNTIL        Matches if the task expires
725                  WAITING      Matches if the task is waiting
726                  WEEK         Matches if the task is due this week
727                  YEAR         Matches if the task is due this year
728                  YESTERDAY    Matches if the task was due sometime yesterday
729
730
731              You can use +BLOCKED to filter blocked tasks,  or  -BLOCKED  for
732              unblocked   tasks.    Similarly,   -BLOCKED   is  equivalent  to
733              +UNBLOCKED. It is an error to attempt to add or remove a virtual
734              tag.
735
736
737       project:<project-name>
738              Specifies the project to which a task is related to.
739
740
741       priority:H|M|L or priority:
742              Specifies High, Medium, Low and no priority for a task.
743
744
745       due:<due-date>
746              Specifies the due-date of a task.
747
748
749       recur:<frequency>
750              Specifies the frequency of a recurrence of a task.
751
752
753       scheduled:<ready-date>
754              Specifies the date after which a task can be accomplished.
755
756
757       until:<expiration date of task>
758              Specifies  the expiration date of a task, after which it will be
759              deleted.
760
761
762       limit:<number-of-rows>
763              Specifies the desired number of tasks a report should show, if a
764              positive  integer  is given.  The value 'page' may also be used,
765              and will limit the report output to as many  lines  of  text  as
766              will fit on screen.  This defaults to 25 lines.
767
768
769       wait:<wait-date>
770              When a task is given a wait date, it is hidden from most reports
771              by changing its status to 'waiting'. When that date  is  passed,
772              the  status  is  changed back to 'pending', and the task becomes
773              visible.
774
775
776       depends:<id1,id2 ...>
777              Declares this task to be dependent on id1 and id2.   This  means
778              that the tasks id1 and id2 should be completed before this task.
779              Consequently, this task will  then  show  up  on  the  'blocked'
780              report.   It  accepts a comma-separated list of ID numbers, UUID
781              numbers and ID ranges.  When prefixing any element of this  list
782              by  '-',  the  specified  tasks  are removed from the dependency
783              list.
784
785
786       entry:<entry-date>
787              For report purposes, specifies the date that a task was created.
788
789

ATTRIBUTE MODIFIERS

791       Attribute modifiers improve filters.  Supported modifiers are:
792
793              before (synonyms under, below)
794              after (synonyms over, above)
795              none
796              any
797              is (synonym equals)
798              isnt (synonym not)
799              has (synonym contains)
800              hasnt
801              startswith (synonym left)
802              endswith (synonym right)
803              word
804              noword
805
806       For example:
807
808              task due.before:eom priority.not:L list
809
810       The before modifier is used to compare values, preserving semantics, so
811       project.before:B  list  all projects that begin with 'A'.  Priority 'L'
812       is before 'M', and due:2011-01-01 is before due:2011-01-02.   The  syn‐
813       onyms  'under' and 'below' are included to allow filters that read more
814       naturally.
815
816       The after modifier is the inverse of the before modifier.
817
818       The none modifier requires that the attribute does not  have  a  value.
819       For example:
820
821           task priority:      list
822           task priority.none: list
823
824       are equivalent, and list tasks that do not have a priority.
825
826       The any modifier requires that the attribute has a value, but any value
827       will suffice.
828
829       The is modifier requires an exact match with the value.
830
831       The isnt modifier is the inverse of the is modifier.
832
833       The has modifier is used to search for a substring, such as:
834
835           task description.has:foo list
836           task foo                 list
837
838       These are equivalent and will return any task that  has  'foo'  in  the
839       description or annotations.
840
841       The hasnt modifier is the inverse of the has modifier.
842
843       The  startswith  modifier  matches against the left, or beginning of an
844       attribute, such that:
845
846           task project.startswith:H list
847           task project:H            list
848
849       are equivalent and will match any project starting with 'H'.   Matching
850       all projects not starting with 'H' is done with:
851
852           task project.not:H         list
853
854       The  endswith  modifier  matches  against  the  right,  or  end  of  an
855       attribute.
856
857       The word modifier requires that the attribute contain  the  whole  word
858       specified, such that this:
859
860           task description.word:bar list
861
862       Will match the description 'foo bar baz' but does not match 'dog food'.
863
864       The noword modifier is the inverse of the word modifier.
865
866

EXPRESSIONS AND OPERATORS

868       You can use the following operators in filter expressions:
869
870         and  or  xor  !               Logical operators
871         <  <=  =  ==  !=  !==  >=  >  Relational operators
872         (  )                          Precedence
873
874       For example:
875
876         task due.before:eom priority.not:L list
877         task '( due < eom or priority != L )' list
878         task '! ( project:Home or project:Garden )' list
879
880       The  = operator tests for approximate equality.  Dates compare equal if
881       they are on the same day (hour and minutes are ignored).  Strings  com‐
882       pare  equal  if the left operand starts with the right operand.  The ==
883       operator tests for exact equality.  The != and !==  operators  are  the
884       negation of = and == respectively.  The negation operator is !.
885
886       Note  that  the  parentheses are required when using a logical operator
887       other than the 'and' operator.  The reason is that some reports contain
888       filters  that  must  be  combined with the command line.  Consider this
889       example:
890
891         task project:Home or project:Garden list
892
893       While this looks correct, it is not.  The 'list' report contains a fil‐
894       ter of:
895
896         task show report.list.filter
897
898         Config Variable    Value
899         -----------------  --------------
900         report.list.filter status:pending
901
902       Which means the example is really:
903
904         task status:pending project:Home or project:Garden list
905
906       The implied 'and' operator makes it:
907
908         task status:pending and project:Home or project:Garden list
909
910       This  is  a  precedence  error  - the 'and' and 'or' need to be grouped
911       using parentheses, like this:
912
913         task status:pending and ( project:Home or project:Garden ) list
914
915       The original example therefore must be entered as:
916
917         task '( project:Home or project:Garden )' list
918
919       This includes quotes to escape  the  parentheses,  so  that  the  shell
920       doesn't interpret them and hide them from Taskwarrior.
921
922       There  is  redundancy  between operators, attribute modifiers and other
923       syntactic sugar.  For example, the following are all equivalent:
924
925         task foo                      list
926         task /foo/                    list
927         task description.contains:foo list
928         task description.has:foo      list
929         task 'description ~ foo'      list
930
931

SPECIFYING DATES AND FREQUENCIES

933   DATES
934       Taskwarrior reads dates from the command line and displays dates in the
935       reports.   The  expected  and  desired date format is determined by the
936       configuration variable dateformat
937
938
939              Exact specification
940                     task ... due:7/14/2008
941
942
943              ISO-8601
944                     task ... due:2013-03-14T22:30:00Z
945
946
947              Relative wording
948                     task ... due:now
949                     task ... due:today
950                     task ... due:yesterday
951                     task ... due:tomorrow
952
953
954              Day number with ordinal
955                     task ... due:23rd
956                     task ... due:3wks
957                     task ... due:1day
958                     task ... due:9hrs
959
960
961              Start of next (work) week (Monday),  calendar  week  (Sunday  or
962              Monday), month, quarter and year
963                     task ... due:sow
964                     task ... due:soww
965                     task ... due:socw
966                     task ... due:som
967                     task ... due:soq
968                     task ... due:soy
969
970
971              End  of current (work) week (Friday), calendar week (Saturday or
972              Sunday), month, quarter and year
973                     task ... due:eow
974                     task ... due:eoww
975                     task ... due:eocw
976                     task ... due:eom
977                     task ... due:eoq
978                     task ... due:eoy
979
980
981              At some point or later
982                     task ... wait:later
983                     task ... wait:someday
984
985                     This sets the wait date to 1/18/2038.
986
987
988              Next occurring weekday
989                     task ... due:fri
990
991
992              Predictable holidays
993                     task ... due:goodfriday
994                     task ... due:easter
995                     task ... due:eastermonday
996                     task ... due:ascension
997                     task ... due:pentecost
998                     task ... due:midsommar
999                     task ... due:midsommarafton
1000
1001
1002   FREQUENCIES
1003       Recurrence periods. Taskwarrior supports several ways of specifying the
1004       frequency of recurring tasks.
1005
1006
1007              daily, day, 1da, 2da, ...
1008                     Every day or a number of days.
1009
1010
1011              weekdays
1012                     Mondays,  Tuesdays,  Wednesdays,  Thursdays,  Fridays and
1013                     skipping weekend days.
1014
1015
1016              weekly, 1wk, 2wks, ...
1017                     Every week or a number of weeks.
1018
1019
1020              biweekly, fortnight
1021                     Every two weeks.
1022
1023
1024              monthly, month, 1mo, 2mo, ...
1025                     Every month.
1026
1027
1028              quarterly, 1qtr, 2qtrs, ...
1029                     Every three months, a quarter, or a number of quarters.
1030
1031
1032              semiannual
1033                     Every six months.
1034
1035
1036              annual, yearly, 1yr, 2yrs, ...
1037                     Every year or a number of years.
1038
1039
1040              biannual, biyearly, 2yr
1041                     Every two years.
1042
1043

CONTEXT

1045       Context is a user-defined filter, which is automatically applied to all
1046       commands  that  filter the task list. In particular, any report command
1047       will have its result affected by the current active context.
1048
1049           $ task list
1050           ID Age Project  Description        Urg
1051           1  2d  Sport    Run 5 miles        1.42
1052           2  1d  Home     Clean the dishes   1.14
1053
1054           $ task context home
1055           Context 'home' set. Use 'task context none' to remove.
1056
1057           $ task list
1058           ID Age Project  Description        Urg
1059           2  1d  Home     Clean the dishes   1.14
1060           Context 'home' set. Use 'task context none' to remove.
1061
1062       As seen in the example above, context is applied by specifying its name
1063       to the "context" command. To change the currently applied context, just
1064       pass the new context's name to the 'context' command.
1065
1066       To unset any context, use the 'none' subcommand.
1067
1068           $ task context none
1069           Context unset.
1070
1071           $ task list
1072           ID Age Project  Description        Urg
1073           1  2d  Sport    Run 5 miles        1.42
1074           2  1d  Home     Clean the dishes   1.14
1075
1076       Context can be defined using the 'define' subcommand,  specifying  both
1077       the name of the new context, and it's assigned filter.
1078
1079           $ task context define home project:Home
1080           Are  you  sure  you  want  to  add  'context.home'  with a value of
1081       'project:Home'? (yes/no) yes
1082           Context 'home' successfully defined.
1083
1084       To remove the definition, use the 'delete' subcommand.
1085
1086           $ task context delete home
1087           Are you sure you want to remove 'context.home'? (yes/no) yes
1088           Context 'home' successfully undefined.
1089
1090       To check what is the currently active context, use the  'show'  subcom‐
1091       mand.
1092
1093           $ task context show
1094           Context 'home' with filter 'project:Home' is currently applied.
1095
1096       Contexts can store arbitrarily complex filters.
1097
1098           $ task context define family project:Family or +paul or +nancy
1099           Are  you  sure  you  want  to  add  'context.home'  with a value of
1100       'project:Family or +paul or +nancy'? (yes/no) yes
1101           Context 'family' successfully defined.
1102
1103       Contexts are permanent, and the currently set context name is stored in
1104       the  "context" configuration variable. The context definition is stored
1105       in the "context.<name>" configuration variable.
1106
1107

COMMAND ABBREVIATION

1109       All Taskwarrior commands may be abbreviated as long as a unique  prefix
1110       is used, for example:
1111
1112              $ task li
1113
1114       is an unambiguous abbreviation for
1115
1116              $ task list
1117
1118       but
1119
1120              $ task l
1121
1122       could be list, ls or long.
1123
1124       Note that you can restrict the minimum abbreviation size using the con‐
1125       figuration setting:
1126
1127              abbreviation.minimum=3
1128
1129

SPECIFYING DESCRIPTIONS

1131       Some task descriptions need to be escaped because of the shell and  the
1132       special  meaning  of  some  characters  to  the shell. This can be done
1133       either by adding quotes to the  description  or  escaping  the  special
1134       character:
1135
1136              $ task add "quoted ' quote"
1137              $ task add escaped \' quote
1138
1139       The  argument  --  (a double dash) tells Taskwarrior to treat all other
1140       args as description:
1141
1142              $ task add -- project:Home needs scheduling
1143
1144       In other situations, the shell sees spaces  and  breaks  up  arguments.
1145       For example, this command:
1146
1147              $ task 123 modify /from this/to that/
1148
1149       is broken up into several arguments, which is corrected with quotes:
1150
1151              $ task 123 modify "/from this/to that/"
1152
1153       It is sometimes necessary to force the shell to pass quotes to Taskwar‐
1154       rior intact, so you can use:
1155
1156              $ task add project:\'Three Word Project\' description
1157
1158       Taskwarrior supports Unicode using only the UTF8 encoding, with no Byte
1159       Order Marks in the data files.
1160
1161

CONFIGURATION FILE AND OVERRIDE OPTIONS

1163       Taskwarrior  stores  its  configuration  in  a  file in the user's home
1164       directory: ~/.taskrc. The default configuration file can be  overridden
1165       with:
1166
1167
1168       task rc:<path-to-alternate-file> ...
1169              Specifies an alternate configuration file.
1170
1171
1172       TASKRC=/tmp/.taskrc task ..
1173              The  environment  variable overrides the default and the command
1174              line specification of the .taskrc file.
1175
1176
1177       task rc.<name>:<value> ...
1178              task rc.<name>=<value> ...  Specifies  individual  configuration
1179              file overrides.
1180
1181
1182       TASKDATA=/tmp/.task task ...
1183              The  environment  variable  overrides  the  default, the command
1184              line, and the 'data.location' configuration setting of the  task
1185              data directory.
1186
1187

MORE EXAMPLES

1189       For examples please see the online documentation starting at
1190
1191              <http://taskwarrior.org/docs>
1192
1193       Note  that  the online documentation can be more detailed and more cur‐
1194       rent than this man page.
1195
1196

FILES

1198       ~/.taskrc
1199              User configuration file - see also taskrc(5).   Note  that  this
1200              can  be overridden on the command line or by the TASKRC environ‐
1201              ment variable.
1202
1203
1204       ~/.task
1205              The default directory where task  stores  its  data  files.  The
1206              location   can  be  configured  in  the  configuration  variable
1207              'data.location', or overridden  with  the  TASKDATA  environment
1208              variable..
1209
1210
1211       ~/.task/pending.data
1212              The file that contains the tasks that are not yet done.
1213
1214
1215       ~/.task/completed.data
1216              The file that contains the completed ("done") tasks.
1217
1218
1219       ~/.task/undo.data
1220              The file that contains information needed by the "undo" command.
1221
1222

CREDITS & COPYRIGHTS

1224       Copyright (C) 2006 - 2016 P. Beckingham, F. Hernandez.
1225
1226       Taskwarrior  is distributed under the MIT license. See http://www.open
1227       source.org/licenses/mit-license.php for more information.
1228
1229

SEE ALSO

1231       taskrc(5), task-color(5), task-sync(5)
1232
1233       For more information regarding Taskwarrior, see the following:
1234
1235
1236       The official site at
1237              <http://taskwarrior.org>
1238
1239
1240       The official code repository at
1241              <https://git.tasktools.org/scm/tm/task.git>
1242
1243
1244       You can contact the project by emailing
1245              <support@taskwarrior.org>
1246
1247

REPORTING BUGS

1249       Bugs in Taskwarrior may be reported to the issue-tracker at
1250              <https://bug.tasktools.org/>
1251
1252
1253
1254
1255task 2.5.1                        2016-02-24                           task(1)
Impressum