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  re‐
23       currence.  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  se‐
41       quence  '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 ap‐
52       ply 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 in‐
71       cluded:
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 in‐
120              voking 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. You'll find these  exam‐
197              ple scripts online at <https://taskwarrior.org/tools/>:
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 <filter> ghistory.weekly
221              Shows a graphical report of task status by week.
222
223
224       task <filter> ghistory.daily
225              Shows a graphical report of task status by day.
226
227
228       task help
229              Shows the long usage text.
230
231
232       task <filter> history.annual
233              Shows a report of task history by year.
234
235
236       task <filter> history.monthly
237              Shows a report of task history by month.  Note that 'history' is
238              an alias to 'history.monthly'.
239
240
241       task <filter> history.weekly
242              Shows a report of task history by week.
243
244
245       task <filter> history.daily
246              Shows a report of task history by day.
247
248
249       task <filter> ids
250              Applies  the filter then extracts only the task IDs and presents
251              them as a space-separated list.  This is useful as  input  to  a
252              task command, to achieve this:
253
254                task $(task project:Home ids) modify priority:H
255
256              This  example  first  gets  the IDs for the project:Home filter,
257              then sets the priority to H for each of those tasks.   This  can
258              also be achieved directly:
259
260                task project:Home modify priority:H
261
262              This command is mainly of use to external scripts.
263
264
265       task <filter> uuids
266              Applies  the  filter  on  all  tasks (even deleted and completed
267              tasks) then extracts only the task UUIDs and presents them as  a
268              space-separated  list.   This  is useful as input to a task com‐
269              mand, to achieve this:
270
271                task $(task project:Home status:completed uuids)  modify  sta‐
272              tus:pending
273
274              This  example first gets the UUIDs for the project:Home and sta‐
275              tus:completed filters, then makes each of  those  tasks  pending
276              again.
277
278              This command is mainly of use to external scripts.
279
280
281       task udas
282              Shows  a  list  of  UDAs that are defined, including their name,
283              type, label and allowed values.  Also shows UDA  usage  and  any
284              orphan UDAs.
285
286
287       task <filter> information
288              Shows  all  data  and metadata for the specified tasks.  This is
289              the only means of displaying all aspects of a  given  task,  in‐
290              cluding the change history.
291
292
293       task <filter> list
294              Provides a standard listing of tasks matching the filter.
295
296
297       task <filter> long
298              Provides the most detailed listing of tasks matching the filter.
299
300
301       task <filter> ls
302              Provides a short listing of tasks matching the filter.
303
304
305       task <filter> minimal
306              Provides a minimal listing of tasks matching the filter.
307
308
309       task <filter> newest
310              Shows the newest tasks matching the filter.
311
312
313       task <filter> next
314              Shows  a page of the most urgent tasks, sorted by urgency, which
315              is a calculated value.
316
317
318       task <filter> ready
319              Shows a page of the most urgent ready tasks, sorted  by  urgency
320              with started tasks first. A ready task is one that is either un‐
321              scheduled, or has a scheduled date that is past and has no  wait
322              date.
323
324
325       task <filter> oldest
326              Shows the oldest tasks matching the filter.
327
328
329       task <filter> overdue
330              Shows  all  incomplete tasks matching the filter that are beyond
331              their due date.
332
333
334       task <filter> projects
335              Lists all project names  that  are  currently  used  by  pending
336              tasks, and the number of tasks for each.
337
338
339       task <filter> recurring
340              Shows all recurring tasks matching the filter.
341
342
343       task <filter> unblocked
344              Shows  all  tasks that are not currently blocked by other tasks,
345              matching the filter.
346
347
348       task <filter> waiting
349              Shows all waiting tasks matching the filter.
350
351

WRITE SUBCOMMANDS

353       task add <mods>
354              Adds a new pending task to the task list.
355
356
357       task <filter> annotate <mods>
358              Adds an annotation to an existing task.
359
360
361       task <filter> append <mods>
362              Appends description text to an existing task.
363
364
365       task <filter> delete <mods>
366              Deletes the specified task from task list.
367
368
369       task <filter> denotate <mods>
370              Deletes an annotation for the specified task.  If  the  provided
371              description matches an annotation exactly, the corresponding an‐
372              notation is deleted. If the provided description matches annota‐
373              tions partly, the first partly matched annotation is deleted.
374
375
376       task <filter> done <mods>
377              Marks the specified task as done.
378
379
380       task <filter> duplicate <mods>
381              Duplicates the specified task and allows modifications.
382
383
384       task <filter> edit
385              Launches  a  text editor to let you modify all aspects of a task
386              directly.  In general, this is not  the  recommended  method  of
387              modifying  tasks, but is provided for exceptional circumstances.
388              Use carefully.
389
390
391       task import [<file> ...]
392              Imports tasks in the JSON format.  Can be used to add new tasks,
393              or update existing ones.  Tasks are identified by their UUID.
394
395              If no file or "-" is specified, import tasks from STDIN.
396
397              Setting  rc.recurrence.confirmation  to  an appropriate level is
398              recommended if import is to be used in automated workflows.  See
399              taskrc(5).
400
401              For  importing  other  file  formats,  the standard task release
402              comes with a few example scripts, such as:
403
404                import-todo.sh.pl
405                import-yaml.pl
406
407
408       task log <mods>
409              Adds a new task that is already completed, to the task list.
410
411
412       task <filter> modify <mods>
413              Modifies the existing task with provided information.
414
415
416       task <filter> prepend <mods>
417              Prepends description text to an existing task.
418
419
420       task <filter> purge
421              Permanently removes the specified tasks  from  the  data  files.
422              Only  tasks  that are alredy deleted can be purged. This command
423              has a local-only effect and changes introduced  by  it  are  not
424              synced.
425
426              Warning: causes permanent, non-revertible loss of data.
427
428
429       task <filter> start <mods>
430              Marks the specified tasks as started.
431
432
433       task <filter> stop <mods>
434              Removes the start time from the specified task.
435
436

MISCELLANEOUS SUBCOMMANDS

438       Miscellaneous  subcommands  either accept no command line arguments, or
439       accept non-standard arguments.
440
441
442       task calc <expression>
443              Evaluates an algebraic expression.  Can  be  used  to  test  how
444              Taskwarrior  parses  and  evaluates  the expression given on the
445              command line.
446
447              Examples:
448
449                  task calc 1 + 1
450                  2
451
452                  task calc now + 8d
453                  2015-03-26T18:06:57
454
455                  task calc eom
456                  2015-03-31T23:59:59
457
458
459       task config [<name> [<value> | '']]
460              Add, modify and remove settings directly in the Taskwarrior con‐
461              figuration.   This  command  either  modifies the 'name' setting
462              with a new value of 'value', or adds a new entry that is equiva‐
463              lent to 'name=value':
464
465                  task config name value
466
467              This  command  sets  a blank value.  This has the effect of sup‐
468              pressing any default value:
469
470                  task config name ''
471
472              Finally, this command removes  any  'name=...'  entry  from  the
473              .taskrc file:
474
475                  task config name
476
477
478       task context <name>
479              Sets the currently active context. See the CONTEXT section.
480
481              Example:
482
483                  task context work
484
485
486       task context delete <name>
487              Deletes  the  context with the name <name>. If the context being
488              deleted is currently set as active, it will be unset.
489
490              Example:
491
492                  task context delete work
493
494
495       task context define <name> <filter>
496              Defines a new context with name <name> and definition  <filter>.
497              This  command  does  not  affect the currently set context, just
498              adds a new context definition.
499
500              Examples:
501
502                  task context define work project:Work
503                  task context define home project:Home or +home
504                  task context define superurgent due:today and +urgent
505
506
507       task context list
508              Outputs a list of available contexts along  with  their  defini‐
509              tions.
510
511
512       task context none
513              Clears the currently active context, if any was set.
514
515
516       task context show
517              Shows the currently active context, along with its definition.
518
519
520       task diagnostics
521              Shows  diagnostic information, of the kind needed when reporting
522              a problem.  When you report a bug, it is likely that  the  plat‐
523              form, version, and environment are important.  Running this com‐
524              mand generates a summary of similar information that should  ac‐
525              company a bug report.
526
527              It includes compiler, library and software information.  It does
528              not include any personal information, other  than  the  location
529              and size of your task data files.
530
531              This  command also performs a diagnostic scan of your data files
532              looking for common problems, such as duplicate UUIDs.
533
534
535       task execute <external command>
536              Executes the specified command.  Not useful by itself, but  when
537              used  in  conjunction  with  aliases  and extensions can provide
538              seamless integration.
539
540
541       task logo
542              Displays the Taskwarrior logo.
543
544
545       task reports
546              Lists all supported reports.  This  includes  the  built-in  re‐
547              ports, and any custom reports you have defined.
548
549
550       task show [all | <substring>]
551              Shows  all  the  current  settings.  If a substring is specified
552              just the settings containing that substring will be displayed.
553
554
555       task <filter> stats
556              Shows statistics of the tasks defined by the filter.
557
558
559       task <filter> summary
560              Shows a report of aggregated task status by project.
561
562
563       task sync [init]
564              The sync command synchronizes data with the Taskserver, if  con‐
565              figured.
566
567              The  init  subcommand  should only ever be run once, and only on
568              one client, because it sends all data to  the  Taskserver.  This
569              allows  all  the  subsequent  sync  commands  to only send small
570              deltas.
571
572              Note: If you use multiple sync clients, make sure  this  setting
573              (which is the default) is on your primary client:
574
575                recurrence=on
576
577              and on all other clients (this is not the default):
578
579                recurrence=off
580
581              This  is  a workaround to avoid a recurrence bug that duplicates
582              recurring tasks.
583
584
585       task <filter> tags
586              Show a list of all tags used. Any special tags  used  are  high‐
587              lighted.  Note that virtual tags are not listed - they don't re‐
588              ally exist, and are just a convenient notation  for  other  task
589              metadata.  It  is an error to attempt to add or remove a virtual
590              tag.
591
592
593       task timesheet [<weeks>]
594              Shows a weekly report of tasks completed and started.
595
596
597       task undo
598              Reverts the most recent action.  Obeys the confirmation setting.
599
600
601       task version
602              Shows the Taskwarrior version number.
603
604

HELPER SUBCOMMANDS

606       task _aliases
607              Generates a list of all aliases, for autocompletion purposes.
608
609
610       task _columns
611              Displays only a list of supported columns.
612
613
614       task _commands
615              Generates a list of all commands, for autocompletion purposes.
616
617
618       task _config
619              Lists all supported configuration variables, for completion pur‐
620              poses.
621
622
623       task _context
624              Lists all available context variables, for completion purposes.
625
626
627       task <filter> _ids
628              Shows  only  the  IDs  of matching tasks, in the form of a list.
629              Deprecated in favor of _unique.
630
631
632       task _show
633              Shows the combined defaults and overrides of  the  configuration
634              settings, for use by third-party applications.
635
636
637       task <filter> _unique <attribute>
638              Reports  a  unique  set of attribute values. For example, to see
639              all the active projects:
640
641                task +PENDING _unique project
642
643
644       task <filter> _uuids
645              Shows only the UUIDs of matching tasks  among  all  tasks  (even
646              deleted and completed tasks), in the form of a list.  Deprecated
647              in favor of _unique.
648
649
650       task _udas
651              Shows only defined UDA names, in the form of a list.
652
653
654       task <filter> _projects
655              Shows only a list of all project names used.  Deprecated in  fa‐
656              vor of _unique.
657
658
659       task <filter> _tags
660              Shows only a list of all tags used, for autocompletion purposes.
661              Deprecated in favor of _unique.
662
663
664       task <filter> _urgency
665              Displays the urgency measure of a task.
666
667
668       task _version
669              Shows only the Taskwarrior version number.
670
671
672       task _zshcommands
673              Generates a list of all commands, for  zsh  autocompletion  pur‐
674              poses.
675
676
677       task <filter> _zshids
678              Shows the IDs and descriptions of matching tasks.
679
680
681       task <filter> _zshuuids
682              Shows the UUIDs and descriptions of matching tasks.
683
684
685       task _get <DOM> [<DOM> ...]
686              Accesses and displays the DOM reference(s).  Used to extract in‐
687              dividual values from tasks, or the system.  Supported DOM refer‐
688              ences are:
689
690                rc.<name>
691                tw.syncneeded
692                tw.program
693                tw.args
694                tw.width
695                tw.height
696                tw.version
697                context.program    (Deprecated in 2.6.0)
698                context.args       (Deprecated in 2.6.0)
699                context.width      (Deprecated in 2.6.0)
700                context.height     (Deprecated in 2.6.0)
701                system.version
702                system.os
703                <id>.<attribute>
704                <uuid>.<attribute>
705
706              Note that the 'rc.<name>' reference may need to be escaped using
707              '--' to prevent the reference from being interpreted as an over‐
708              ride.
709
710              Note  that  if  the DOM reference is not valid, or the reference
711              evaluates to a missing value, the command exits with 1.
712
713              Additionally, some components of the  attributes  of  particular
714              types may be extracted by DOM references.
715
716                $ task _get 2.due.year
717                2015
718
719              For  a full list of supported attribute-specific DOM references,
720              consult   the   online   documentation   at:   <https://taskwar
721              rior.org/docs/dom.html>
722
723

ATTRIBUTES AND METADATA

725       ID     Tasks can be specified uniquely by IDs, which are simply the in‐
726              dexes of the tasks in the data file.   The  ID  of  a  task  may
727              therefore  change,  but only when a command is run that displays
728              IDs.  When modifying tasks, it is safe to rely on the last  dis‐
729              played  ID.   Always run a report to check you have the right ID
730              for a task. IDs can be given to task as a sequence, for example,
731              task 1,4-10,19 delete
732
733
734       +tag|-tag
735              Tags are arbitrary words associated with a task. Use + to add  a
736              tag and - to remove a tag from a task. A task can have any quan‐
737              tity of tags.
738
739              Certain tags (called 'special tags'), can be used to affect  the
740              way  tasks  are treated.  For example, if a task has the special
741              tag 'nocolor', then it is exempt from all color rules.  The sup‐
742              ported special tags are:
743
744                  +nocolor     Disable color rules processing for this task
745                  +nonag       Completion of this task suppresses all nag mes‐
746              sages
747                  +nocal       This task will not appear on the calendar
748                  +next        Elevates task so it appears on 'next' report
749
750              There are also virtual tags, which represent  task  metadata  in
751              tag  form.   These  tags do not exist, but can be used to filter
752              tasks.  The supported virtual tags are:
753
754                  ACTIVE       Matches if the task is started
755                  ANNOTATED    Matches if the task has annotations
756                  BLOCKED      Matches if the task is blocked
757                  BLOCKING     Matches if the task is blocking
758                  CHILD        Matches if the task has a parent
759                  COMPLETED    Matches if the task has completed status
760                  DELETED      Matches if the task has deleted status
761                  DUE          Matches if the task is due
762                  LATEST       Matches if the task is the newest added task
763                  MONTH        Matches if the task is due this month
764                  ORPHAN       Matches if the task has any orphaned UDA values
765                  OVERDUE      Matches if the task is overdue
766                  PARENT       Matches if the task is a parent
767                  PENDING      Matches if the task has pending status
768                  PRIORITY     Matches if the task has a priority
769                  PROJECT      Matches if the task has a project
770                  QUARTER      Matches if the task is due this quarter
771                  READY        Matches if the task is actionable
772                  SCHEDULED    Matches if the task is scheduled
773                  TAGGED       Matches if the task has tags
774                  TODAY        Matches if the task is due today
775                  TOMORROW     Matches if the task is due sometime tomorrow
776                  UDA          Matches if the task has any UDA values
777                  UNBLOCKED    Matches if the task is not blocked
778                  UNTIL        Matches if the task expires
779                  WAITING      Matches if the task is waiting
780                  WEEK         Matches if the task is due this week
781                  YEAR         Matches if the task is due this year
782                  YESTERDAY    Matches if the task was due sometime yesterday
783
784
785              You can use +BLOCKED to filter blocked tasks,  or  -BLOCKED  for
786              unblocked  tasks.   Similarly,  -BLOCKED  is  equivalent to +UN‐
787              BLOCKED. It is an error to attempt to add or  remove  a  virtual
788              tag.
789
790
791       project:<project-name>
792              Specifies the project to which a task is related to.
793
794
795       priority:H|M|L or priority:
796              Specifies High, Medium, Low and no priority for a task.
797
798
799       due:<due-date>
800              Specifies the due-date of a task.
801
802
803       recur:<frequency>
804              Specifies the frequency of a recurrence of a task.
805
806
807       scheduled:<ready-date>
808              Specifies the date after which a task can be accomplished.
809
810
811       until:<expiration date of task>
812              Specifies  the expiration date of a task, after which it will be
813              deleted.
814
815
816       limit:<number-of-rows>
817              Specifies the desired number of tasks a report should show, if a
818              positive  integer  is given.  The value 'page' may also be used,
819              and will limit the report output to as many  lines  of  text  as
820              will fit on screen.  This defaults to 25 lines.
821
822
823       wait:<wait-date>
824              When a task is given a wait date, it is hidden from most reports
825              by changing its status to 'waiting'. When that date  is  passed,
826              the  status  is  changed back to 'pending', and the task becomes
827              visible.
828
829
830       depends:<id1,id2 ...>
831              Declares this task to be dependent on id1 and id2.   This  means
832              that the tasks id1 and id2 should be completed before this task.
833              Consequently, this task will then show up on the  'blocked'  re‐
834              port.   It  accepts  a  comma-separated list of ID numbers, UUID
835              numbers and ID ranges.  When prefixing any element of this  list
836              by  '-',  the  specified  tasks  are removed from the dependency
837              list.
838
839
840       entry:<entry-date>
841              For report purposes, specifies the date that a task was created.
842
843

ATTRIBUTE MODIFIERS

845       Attribute modifiers improve filters.  Supported modifiers are:
846
847              before (synonyms under, below)
848              after (synonyms over, above)
849              none
850              any
851              is (synonym equals)
852              isnt (synonym not)
853              has (synonym contains)
854              hasnt
855              startswith (synonym left)
856              endswith (synonym right)
857              word
858              noword
859
860       They can be applied to all regular attributes (see above) and the  fol‐
861       lowing calculated attributes:
862
863              urgency (or short urg)
864
865       For example:
866
867              task due.before:eom priority.not:L list
868
869       The before modifier is used to compare values, preserving semantics, so
870       project.before:B list all projects that begin with 'A'.   Priority  'L'
871       is  before  'M', and due:2011-01-01 is before due:2011-01-02.  The syn‐
872       onyms 'under' and 'below' are included to allow filters that read  more
873       naturally.
874
875       The after modifier is the inverse of the before modifier.
876
877       The  none  modifier  requires that the attribute does not have a value.
878       For example:
879
880           task priority:      list
881           task priority.none: list
882
883       are equivalent, and list tasks that do not have a priority.
884
885       The any modifier requires that the attribute has a value, but any value
886       will suffice.
887
888       The is modifier requires an exact match with the value.
889
890       The isnt modifier is the inverse of the is modifier.
891
892       The has modifier is used to search for a substring, such as:
893
894           task description.has:foo list
895           task foo                 list
896
897       These are equivalent and will return any task that has 'foo' in the de‐
898       scription or annotations.
899
900       The hasnt modifier is the inverse of the has modifier.
901
902       The startswith modifier matches against the left, or  beginning  of  an
903       attribute, such that:
904
905           task project.startswith:H list
906           task project:H            list
907
908       are  equivalent and will match any project starting with 'H'.  Matching
909       all projects not starting with 'H' is done with:
910
911           task project.not:H         list
912
913       The endswith modifier matches against the right, or end  of  an  attri‐
914       bute.
915
916       The  word  modifier  requires that the attribute contain the whole word
917       specified, such that this:
918
919           task description.word:bar list
920
921       Will match the description 'foo bar baz' but does not match 'dog food'.
922
923       The noword modifier is the inverse of the word modifier.
924
925

EXPRESSIONS AND OPERATORS

927       You can use the following operators in filter expressions:
928
929         and  or  xor  !               Logical operators
930         <  <=  =  ==  !=  !==  >=  >  Relational operators
931         (  )                          Precedence
932
933       For example:
934
935         task due.before:eom priority.not:L list
936         task '( due < eom or priority != L )' list
937         task '! ( project:Home or project:Garden )' list
938
939       The = operator tests for approximate equality.  Dates compare equal  if
940       they  are on the same day (hour and minutes are ignored).  Strings com‐
941       pare equal if the left operand starts with the right operand.   The  ==
942       operator  tests  for  exact equality.  The != and !== operators are the
943       negation of = and == respectively.  The negation operator is !.
944
945       Note that the parentheses are required when using  a  logical  operator
946       other than the 'and' operator.  The reason is that some reports contain
947       filters that must be combined with the command line.  Consider this ex‐
948       ample:
949
950         task project:Home or project:Garden list
951
952       While this looks correct, it is not.  The 'list' report contains a fil‐
953       ter of:
954
955         task show report.list.filter
956
957         Config Variable    Value
958         -----------------  --------------
959         report.list.filter status:pending
960
961       Which means the example is really:
962
963         task status:pending project:Home or project:Garden list
964
965       The implied 'and' operator makes it:
966
967         task status:pending and project:Home or project:Garden list
968
969       This is a precedence error - the 'and' and 'or' need to be grouped  us‐
970       ing parentheses, like this:
971
972         task status:pending and ( project:Home or project:Garden ) list
973
974       The original example therefore must be entered as:
975
976         task '( project:Home or project:Garden )' list
977
978       This  includes  quotes  to  escape  the  parentheses, so that the shell
979       doesn't interpret them and hide them from Taskwarrior.
980
981       There is redundancy between operators, attribute  modifiers  and  other
982       syntactic sugar.  For example, the following are all equivalent:
983
984         task foo                      list
985         task /foo/                    list
986         task description.contains:foo list
987         task description.has:foo      list
988         task 'description ~ foo'      list
989
990

SPECIFYING DATES AND FREQUENCIES

992   DATES
993       Taskwarrior reads dates from the command line and displays dates in the
994       reports.  The expected and desired date format  is  determined  by  the
995       configuration variable dateformat
996
997
998              Exact specification
999                     task ... due:7/14/2008
1000
1001
1002              ISO-8601
1003                     task ... due:2013-03-14T22:30:00Z
1004
1005
1006              Relative wording
1007                     task ... due:now
1008                     task ... due:today
1009                     task ... due:yesterday
1010                     task ... due:tomorrow
1011
1012
1013              Day number with ordinal
1014                     task ... due:23rd
1015                     task ... due:3wks
1016                     task ... due:1day
1017                     task ... due:9hrs
1018
1019
1020              Start  of  next  (work)  week (Monday), calendar week (Sunday or
1021              Monday), month, quarter and year
1022                     task ... due:sow
1023                     task ... due:soww
1024                     task ... due:socw
1025                     task ... due:som
1026                     task ... due:soq
1027                     task ... due:soy
1028
1029
1030              End of current (work) week (Friday), calendar week (Saturday  or
1031              Sunday), month, quarter and year
1032                     task ... due:eow
1033                     task ... due:eoww
1034                     task ... due:eocw
1035                     task ... due:eom
1036                     task ... due:eoq
1037                     task ... due:eoy
1038
1039
1040              At some point or later
1041                     task ... wait:later
1042                     task ... wait:someday
1043
1044                     This sets the wait date to 1/18/2038.
1045
1046
1047              Next occurring weekday
1048                     task ... due:fri
1049
1050
1051              Predictable holidays
1052                     task ... due:goodfriday
1053                     task ... due:easter
1054                     task ... due:eastermonday
1055                     task ... due:ascension
1056                     task ... due:pentecost
1057                     task ... due:midsommar
1058                     task ... due:midsommarafton
1059                     task ... due:juhannus
1060
1061
1062   FREQUENCIES
1063       Recurrence periods. Taskwarrior supports several ways of specifying the
1064       frequency of recurring tasks.
1065
1066
1067              daily, day, 1da, 2da, ...
1068                     Every day or a number of days.
1069
1070
1071              weekdays
1072                     Mondays, Tuesdays,  Wednesdays,  Thursdays,  Fridays  and
1073                     skipping weekend days.
1074
1075
1076              weekly, 1wk, 2wks, ...
1077                     Every week or a number of weeks.
1078
1079
1080              biweekly, fortnight
1081                     Every two weeks.
1082
1083
1084              monthly, month, 1mo, 2mo, ...
1085                     Every month.
1086
1087
1088              quarterly, 1qtr, 2qtrs, ...
1089                     Every three months, a quarter, or a number of quarters.
1090
1091
1092              semiannual
1093                     Every six months.
1094
1095
1096              annual, yearly, 1yr, 2yrs, ...
1097                     Every year or a number of years.
1098
1099
1100              biannual, biyearly, 2yr
1101                     Every two years.
1102
1103

CONTEXT

1105       Context is a user-defined filter, which is automatically applied to all
1106       commands that filter the task list. In particular, any  report  command
1107       will have its result affected by the current active context.
1108
1109           $ task list
1110           ID Age Project  Description        Urg
1111           1  2d  Sport    Run 5 miles        1.42
1112           2  1d  Home     Clean the dishes   1.14
1113
1114           $ task context home
1115           Context 'home' set. Use 'task context none' to remove.
1116
1117           $ task list
1118           ID Age Project  Description        Urg
1119           2  1d  Home     Clean the dishes   1.14
1120           Context 'home' set. Use 'task context none' to remove.
1121
1122       As seen in the example above, context is applied by specifying its name
1123       to the "context" command. To change the currently applied context, just
1124       pass the new context's name to the 'context' command.
1125
1126       To unset any context, use the 'none' subcommand.
1127
1128           $ task context none
1129           Context unset.
1130
1131           $ task list
1132           ID Age Project  Description        Urg
1133           1  2d  Sport    Run 5 miles        1.42
1134           2  1d  Home     Clean the dishes   1.14
1135
1136       Context  can  be defined using the 'define' subcommand, specifying both
1137       the name of the new context, and it's assigned filter.
1138
1139           $ task context define home project:Home
1140           Are you sure you  want  to  add  'context.home'  with  a  value  of
1141       'project:Home'? (yes/no) yes
1142           Context 'home' successfully defined.
1143
1144       To remove the definition, use the 'delete' subcommand.
1145
1146           $ task context delete home
1147           Are you sure you want to remove 'context.home'? (yes/no) yes
1148           Context 'home' successfully undefined.
1149
1150       To  check  what is the currently active context, use the 'show' subcom‐
1151       mand.
1152
1153           $ task context show
1154           Context 'home' with filter 'project:Home' is currently applied.
1155
1156       Contexts can store arbitrarily complex filters.
1157
1158           $ task context define family project:Family or +paul or +nancy
1159           Are you sure you  want  to  add  'context.home'  with  a  value  of
1160       'project:Family or +paul or +nancy'? (yes/no) yes
1161           Context 'family' successfully defined.
1162
1163       Contexts are permanent, and the currently set context name is stored in
1164       the "context" configuration variable. The context definition is  stored
1165       in the "context.<name>" configuration variable.
1166
1167

COMMAND ABBREVIATION

1169       All  Taskwarrior commands may be abbreviated as long as a unique prefix
1170       is used, for example:
1171
1172              $ task li
1173
1174       is an unambiguous abbreviation for
1175
1176              $ task list
1177
1178       but
1179
1180              $ task l
1181
1182       could be list, ls or long.
1183
1184       Note that you can restrict the minimum abbreviation size using the con‐
1185       figuration setting:
1186
1187              abbreviation.minimum=3
1188
1189

SPECIFYING DESCRIPTIONS

1191       Some  task descriptions need to be escaped because of the shell and the
1192       special meaning of some characters to the shell. This can be  done  ei‐
1193       ther  by adding quotes to the description or escaping the special char‐
1194       acter:
1195
1196              $ task add "quoted ' quote"
1197              $ task add escaped \' quote
1198
1199       The argument -- (a double dash) tells Taskwarrior to  treat  all  other
1200       args as description:
1201
1202              $ task add -- project:Home needs scheduling
1203
1204       In  other  situations,  the  shell sees spaces and breaks up arguments.
1205       For example, this command:
1206
1207              $ task 123 modify /from this/to that/
1208
1209       is broken up into several arguments, which is corrected with quotes:
1210
1211              $ task 123 modify "/from this/to that/"
1212
1213       It is sometimes necessary to force the shell to pass quotes to Taskwar‐
1214       rior intact, so you can use:
1215
1216              $ task add project:\'Three Word Project\' description
1217
1218       Taskwarrior supports Unicode using only the UTF8 encoding, with no Byte
1219       Order Marks in the data files.
1220
1221

CONFIGURATION FILE AND OVERRIDE OPTIONS

1223       Taskwarrior stores its configuration in a file in the user's  home  di‐
1224       rectory:  ~/.taskrc.  The  default configuration file can be overridden
1225       with:
1226
1227
1228       task rc:<path-to-alternate-file> ...
1229              Specifies an alternate configuration file.
1230
1231
1232       TASKRC=/tmp/.taskrc task ..
1233              The environment variable overrides the default and  the  command
1234              line specification of the .taskrc file.
1235
1236
1237       task rc.<name>:<value> ...
1238              task  rc.<name>=<value>  ...  Specifies individual configuration
1239              file overrides.
1240
1241
1242       TASKDATA=/tmp/.task task ...
1243              The environment variable  overrides  the  default,  the  command
1244              line,  and the 'data.location' configuration setting of the task
1245              data directory.
1246
1247

MORE EXAMPLES

1249       For examples please see the online documentation starting at
1250
1251              <https://taskwarrior.org/docs>
1252
1253       Note that the online documentation can be more detailed and  more  cur‐
1254       rent than this man page.
1255
1256

FILES

1258       ~/.taskrc
1259              User  configuration  file  - see also taskrc(5).  Note that this
1260              can be overridden on the command line or by the TASKRC  environ‐
1261              ment variable.
1262
1263
1264       ~/.task
1265              The  default directory where task stores its data files. The lo‐
1266              cation can be configured in the configuration variable 'data.lo‐
1267              cation', or overridden with the TASKDATA environment variable..
1268
1269
1270       ~/.task/pending.data
1271              The file that contains the tasks that are not yet done.
1272
1273
1274       ~/.task/completed.data
1275              The file that contains the completed ("done") tasks.
1276
1277
1278       ~/.task/undo.data
1279              The file that contains information needed by the "undo" command.
1280
1281

CREDITS & COPYRIGHTS

1283       Copyright (C) 2006 - 2021 P. Beckingham, F. Hernandez.
1284
1285       Taskwarrior is distributed under the MIT license. See https://www.open
1286       source.org/licenses/mit-license.php for more information.
1287
1288

SEE ALSO

1290       taskrc(5), task-color(5), task-sync(5)
1291
1292       For more information regarding Taskwarrior, see the following:
1293
1294
1295       The official site at
1296              <https://taskwarrior.org>
1297
1298
1299       The official code repository at
1300              <https://github.com/GothenburgBitFactory/taskwarrior>
1301
1302
1303       You can contact the project by emailing
1304              <support@GothenburgBitFactory.org>
1305
1306

REPORTING BUGS

1308       Bugs in Taskwarrior may be reported to the issue-tracker at
1309              <https://github.com/GothenburgBitFactory/taskwarrior/issues>
1310
1311
1312
1313task 2.5.3                        2016-02-24                           task(1)
Impressum