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 +bills due.by:eom                    <command> <mods>
67         task project:Home due.before:today        <command> <mods>
68         task ebeeab00-ccf8-464b-8b58-f7f2d606edfb <command> <mods>
69
70       By default filter elements are combined with an implicit  'and'  opera‐
71       tor,  but 'or' and 'xor' may also be used, provided parentheses are in‐
72       cluded:
73
74         task '( /[Cc]at|[Dd]og/ or /[0-9]+/ )'      <command> <mods>
75
76       The parentheses isolate the logical term from any default command  fil‐
77       ter  or implicit report filter which would be combined with an implicit
78       'and'.
79
80       A filter may target specific tasks using ID or UUID numbers.  To  spec‐
81       ify  multiple  tasks use one of these forms (space-separated list of ID
82       numbers, UUID numbers or ID ranges):
83
84         task 1 2 3                                    delete
85         task 1-3                                      info
86         task 1 2-5 19                                 modify pri:H
87         task 4-7 ebeeab00-ccf8-464b-8b58-f7f2d606edfb info
88
89       Note that it may be necessary to properly escape special characters  as
90       well  as  quotes in order to avoid their special meanings in the shell.
91       See also the section 'SPECIFYING DESCRIPTIONS' for more information.
92
93

MODIFICATIONS

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

SUBCOMMANDS

106       Taskwarrior  supports different kinds of commands.  There are read com‐
107       mands, write commands, miscellaneous commands and  script  helper  com‐
108       mands.   Read  commands do not allow modification of tasks.  Write com‐
109       mands can alter almost any aspect of a task.   Script  helper  commands
110       are  provided to help you write add-on scripts, for example, shell com‐
111       pletion (only minimal output is generated,  as  with  verbose=nothing).
112       Those commands which are explicitly affected by the context are denoted
113       as such.
114
115

READ SUBCOMMANDS

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

WRITE SUBCOMMANDS

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

MISCELLANEOUS SUBCOMMANDS

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

HELPER SUBCOMMANDS

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

ATTRIBUTES AND METADATA

757       ID     Tasks can be specified uniquely by IDs, which are simply the in‐
758              dexes  of  the  tasks  in  the  data file.  The ID of a task may
759              therefore change, but only when a command is run  that  displays
760              IDs.   When modifying tasks, it is safe to rely on the last dis‐
761              played ID.  Always run a report to check you have the  right  ID
762              for a task. IDs can be given to task as a sequence, for example,
763              task 1,4-10,19 delete
764
765
766       +tag|-tag
767              Tags  are arbitrary words associated with a task. Use + to add a
768              tag and - to remove a tag from a task. A task can have any quan‐
769              tity of tags.
770
771              Certain  tags (called 'special tags'), can be used to affect the
772              way tasks are treated.  For example, if a task has  the  special
773              tag 'nocolor', then it is exempt from all color rules.  The sup‐
774              ported special tags are:
775
776                  +nocolor     Disable color rules processing for this task
777                  +nonag       Completion of this task suppresses all nag mes‐
778              sages
779                  +nocal       This task will not appear on the calendar
780                  +next        Elevates task so it appears on 'next' report
781
782              There  are  also  virtual tags, which represent task metadata in
783              tag form.  These tags do not exist, but can be  used  to  filter
784              tasks.  The supported virtual tags are:
785
786                  ACTIVE       Matches if the task is started
787                  ANNOTATED    Matches if the task has annotations
788                  BLOCKED      Matches if the task is blocked
789                  BLOCKING     Matches if the task is blocking
790                  CHILD        Matches if the task has a parent (deprecated in
791              2.6.0)
792                  COMPLETED    Matches if the task has completed status
793                  DELETED      Matches if the task has deleted status
794                  DUE          Matches if the task is due
795                  INSTANCE     Matches if the task is a recurrent instance
796                  LATEST       Matches if the task is the newest added task
797                  MONTH        Matches if the task is due this month
798                  ORPHAN       Matches if the task has any orphaned UDA values
799                  OVERDUE      Matches if the task is overdue
800                  PARENT       Matches if the task is a parent (deprecated  in
801              2.6.0)
802                  PENDING      Matches if the task has pending status
803                  PRIORITY     Matches if the task has a priority
804                  PROJECT      Matches if the task has a project
805                  QUARTER      Matches if the task is due this quarter
806                  READY        Matches if the task is actionable
807                  SCHEDULED    Matches if the task is scheduled
808                  TAGGED       Matches if the task has tags
809                  TEMPLATE     Matches if the task is a recurrence template
810                  TODAY        Matches if the task is due today
811                  TOMORROW     Matches if the task is due sometime tomorrow
812                  UDA          Matches if the task has any UDA values
813                  UNBLOCKED    Matches if the task is not blocked
814                  UNTIL        Matches if the task expires
815                  WAITING      Matches if the task is waiting
816                  WEEK         Matches if the task is due this week
817                  YEAR         Matches if the task is due this year
818                  YESTERDAY    Matches if the task was due sometime yesterday
819
820
821              You  can  use  +BLOCKED to filter blocked tasks, or -BLOCKED for
822              unblocked tasks.  Similarly,  -BLOCKED  is  equivalent  to  +UN‐
823              BLOCKED.  It  is  an error to attempt to add or remove a virtual
824              tag.
825
826
827       project:<project-name>
828              Specifies the project to which a task is related to.
829
830
831       priority:H|M|L or priority:
832              Specifies High, Medium, Low and no priority for a task.
833
834
835       due:<due-date>
836              Specifies the due-date of a task.
837
838
839       recur:<frequency>
840              Specifies the frequency of a recurrence of a task.
841
842
843       scheduled:<ready-date>
844              Specifies the date after which a task can be accomplished.
845
846
847       until:<expiration date of task>
848              Specifies the expiration date of a task, after which it will  be
849              deleted.
850
851
852       limit:<number-of-rows>
853              Specifies the desired number of tasks a report should show, if a
854              positive integer is given.  The value 'page' may also  be  used,
855              and  will  limit  the  report output to as many lines of text as
856              will fit on screen.  This defaults to 25 lines.
857
858
859       wait:<wait-date>
860              When a task is given a wait date, it is hidden from most  built-
861              in  reports,  which  exclude  +WAITING.  When the date is in the
862              past, the task is not considered  +WAITING,  and  again  becomes
863              visible.   Note  that, for compatibilty, such tasks are shown as
864              having status "waiting", but this will change in  a  future  re‐
865              lease.
866
867
868       depends:<id1,id2 ...>
869              Declares  this  task to be dependent on id1 and id2.  This means
870              that the tasks id1 and id2 should be completed before this task.
871              Consequently,  this  task will then show up on the 'blocked' re‐
872              port.  It accepts a comma-separated list  of  ID  numbers,  UUID
873              numbers  and ID ranges.  When prefixing any element of this list
874              by '-', the specified tasks  are  removed  from  the  dependency
875              list.
876
877
878       entry:<entry-date>
879              For report purposes, specifies the date that a task was created.
880
881

ATTRIBUTE MODIFIERS

883       Attribute modifiers improve filters.  Supported modifiers are:
884
885              before (synonyms under, below)
886              after (synonyms over, above)
887              by
888              none
889              any
890              is (synonym equals)
891              isnt (synonym not)
892              has (synonym contains)
893              hasnt
894              startswith (synonym left)
895              endswith (synonym right)
896              word
897              noword
898
899       They  can be applied to all regular attributes (see above) and the fol‐
900       lowing calculated attributes:
901
902              urgency (or short urg)
903
904       For example:
905
906              task due.before:eom priority.not:L list
907
908       The before modifier is used to compare values, preserving semantics, so
909       project.before:B  list  all projects that begin with 'A'.  Priority 'L'
910       is before 'M', and due:2011-01-01 is before due:2011-01-02.   The  syn‐
911       onyms  'under' and 'below' are included to allow filters that read more
912       naturally.
913
914       The after modifier is the inverse of the before modifier.
915
916       The by modifier is the same as 'before', except it  also  includes  the
917       moment in question.  For example:
918
919           task add test due:eoy
920
921       will be found when using the inclusive filter 'by':
922
923           task due.by:eoy
924
925       but not when the non-inclusive filter 'before' is used:
926
927           task due.before:eoy
928
929       this  applies  equally  to other named dates such as 'eom', 'eod', etc;
930       the modifier compares using '<=' rather than '<' like 'before' does.
931
932       The none modifier requires that the attribute does not  have  a  value.
933       For example:
934
935           task priority:      list
936           task priority.none: list
937
938       are equivalent, and list tasks that do not have a priority.
939
940       The any modifier requires that the attribute has a value, but any value
941       will suffice.
942
943       The is modifier requires an exact match with the value.
944
945       The isnt modifier is the inverse of the is modifier.
946
947       The has modifier is used to search for a substring, such as:
948
949           task description.has:foo list
950           task foo                 list
951
952       These are equivalent and will return any task that has 'foo' in the de‐
953       scription or annotations.
954
955       The hasnt modifier is the inverse of the has modifier.
956
957       The  startswith  modifier  matches against the left, or beginning of an
958       attribute, such that:
959
960           task project.startswith:H list
961           task project:H            list
962
963       are equivalent and will match any project starting with 'H'.   Matching
964       all projects not starting with 'H' is done with:
965
966           task project.not:H         list
967
968       The  endswith  modifier  matches against the right, or end of an attri‐
969       bute.
970
971       The word modifier requires that the attribute contain  the  whole  word
972       specified, such that this:
973
974           task description.word:bar list
975
976       Will match the description 'foo bar baz' but does not match 'dog food'.
977
978       The noword modifier is the inverse of the word modifier.
979
980

EXPRESSIONS AND OPERATORS

982       You can use the following operators in filter expressions:
983
984         and  or  xor  !               Logical operators
985         <  <=  =  ==  !=  !==  >=  >  Relational operators
986         (  )                          Precedence
987
988       For example:
989
990         task due.before:eom priority.not:L list
991         task '( due < eom or priority != L )' list
992         task '! ( project:Home or project:Garden )' list
993
994       The  = operator tests for approximate equality.  Dates compare equal if
995       they are on the same day (hour and minutes are ignored).  Strings  com‐
996       pare  equal  if the left operand starts with the right operand.  The ==
997       operator tests for exact equality.  The != and !==  operators  are  the
998       negation of = and == respectively.  The negation operator is !.
999
1000       Note  that  the  parentheses are required when using a logical operator
1001       other than the 'and' operator.  The reason is that some reports contain
1002       filters that must be combined with the command line.  Consider this ex‐
1003       ample:
1004
1005         task project:Home or project:Garden list
1006
1007       While this looks correct, it is not.  The 'list' report contains a fil‐
1008       ter of:
1009
1010         task show report.list.filter
1011
1012         Config Variable    Value
1013         -----------------  --------------
1014         report.list.filter status:pending
1015
1016       Which means the example is really:
1017
1018         task status:pending project:Home or project:Garden list
1019
1020       The implied 'and' operator makes it:
1021
1022         task status:pending and project:Home or project:Garden list
1023
1024       This  is a precedence error - the 'and' and 'or' need to be grouped us‐
1025       ing parentheses, like this:
1026
1027         task status:pending and ( project:Home or project:Garden ) list
1028
1029       The original example therefore must be entered as:
1030
1031         task '( project:Home or project:Garden )' list
1032
1033       This includes quotes to escape  the  parentheses,  so  that  the  shell
1034       doesn't interpret them and hide them from Taskwarrior.
1035
1036       There  is  redundancy  between operators, attribute modifiers and other
1037       syntactic sugar.  For example, the following are all equivalent:
1038
1039         task foo                      list
1040         task /foo/                    list
1041         task description.contains:foo list
1042         task description.has:foo      list
1043         task 'description ~ foo'      list
1044
1045

SPECIFYING DATES AND FREQUENCIES

1047   DATES
1048       Taskwarrior reads dates from the command line and displays dates in the
1049       reports.   The  expected  and  desired date format is determined by the
1050       configuration variable dateformat
1051
1052
1053              Exact specification
1054                     task ... due:7/14/2008
1055
1056
1057              ISO-8601
1058                     task ... due:2013-03-14T22:30:00Z
1059
1060
1061              Relative wording
1062                     task ... due:now
1063                     task ... due:today
1064                     task ... due:yesterday
1065                     task ... due:tomorrow
1066
1067
1068              Day number with ordinal
1069                     task ... due:23rd
1070                     task ... due:3wks
1071                     task ... due:1day
1072                     task ... due:9hrs
1073
1074
1075              Start of next (work) week (Monday),  calendar  week  (Sunday  or
1076              Monday), month, quarter and year
1077                     task ... due:sow
1078                     task ... due:soww
1079                     task ... due:socw
1080                     task ... due:som
1081                     task ... due:soq
1082                     task ... due:soy
1083
1084
1085              End  of current (work) week (Friday), calendar week (Saturday or
1086              Sunday), month, quarter and year
1087                     task ... due:eow
1088                     task ... due:eoww
1089                     task ... due:eocw
1090                     task ... due:eom
1091                     task ... due:eoq
1092                     task ... due:eoy
1093
1094
1095              At some point or later
1096                     task ... wait:later
1097                     task ... wait:someday
1098
1099                     This sets the wait date to 12/30/9999.
1100
1101
1102              Next occurring weekday
1103                     task ... due:fri
1104
1105
1106              Predictable holidays
1107                     task ... due:goodfriday
1108                     task ... due:easter
1109                     task ... due:eastermonday
1110                     task ... due:ascension
1111                     task ... due:pentecost
1112                     task ... due:midsommar
1113                     task ... due:midsommarafton
1114                     task ... due:juhannus
1115
1116
1117   FREQUENCIES
1118       Recurrence periods. Taskwarrior supports several ways of specifying the
1119       frequency of recurring tasks.
1120
1121
1122              daily, day, 1da, 2da, ...
1123                     Every day or a number of days.
1124
1125
1126              weekdays
1127                     Mondays,  Tuesdays,  Wednesdays,  Thursdays,  Fridays and
1128                     skipping weekend days.
1129
1130
1131              weekly, 1wk, 2wks, ...
1132                     Every week or a number of weeks.
1133
1134
1135              biweekly, fortnight
1136                     Every two weeks.
1137
1138
1139              monthly, month, 1mo, 2mo, ...
1140                     Every month.
1141
1142
1143              quarterly, 1qtr, 2qtrs, ...
1144                     Every three months, a quarter, or a number of quarters.
1145
1146
1147              semiannual
1148                     Every six months.
1149
1150
1151              annual, yearly, 1yr, 2yrs, ...
1152                     Every year or a number of years.
1153
1154
1155              biannual, biyearly, 2yr
1156                     Every two years.
1157
1158

CONTEXT

1160       Context is a user-defined query, which is automatically applied to  all
1161       commands  that  filter  the  task  list and to commands that create new
1162       tasks (add, log). For example, any report command will have its  result
1163       affected by the current active context.  Here is a list of the commands
1164       that are affected:
1165
1166                  add
1167                  burndown
1168                  count
1169                  delete
1170                  denotate
1171                  done
1172                  duplicate
1173                  edit
1174                  history
1175                  log
1176                  prepend
1177                  projects
1178                  purge
1179                  start
1180                  stats
1181                  stop
1182                  summary
1183                  tags
1184
1185              All other commands are NOT affected by the context.
1186
1187                  $ task list
1188                  ID Age Project  Description        Urg
1189                  1  2d  Sport    Run 5 miles        1.42
1190                  2  1d  Home     Clean the dishes   1.14
1191
1192                  $ task context home
1193                  Context 'home' set. Use 'task context none' to remove.
1194
1195                  $ task list
1196                  ID Age Project  Description        Urg
1197                  2  1d  Home     Clean the dishes   1.14
1198                  Context 'home' set. Use 'task context none' to remove.
1199
1200              Task list got automatically filtered for project:Home.
1201
1202                  $ task add Vaccuum the carpet
1203                  Created task 3.
1204                  Context 'home' set. Use 'task context none' to remove.
1205
1206                  $ task list
1207                  ID Age Project  Description         Urg
1208                  2  1d  Home     Clean the dishes    1.14
1209                  3  5s  Home     Vaccuum the carpet  1.14
1210                  Context 'home' set. Use 'task context none' to remove.
1211
1212              Note  that  the  newly  added  task  "Vaccuum  the  carpet"  has
1213              "project:Home" set automatically.
1214
1215              As  seen  in the example above, context is applied by specifying
1216              its name to the "context" command. To change the  currently  ap‐
1217              plied context, just pass the new context's name to the 'context'
1218              command.
1219
1220              To unset any context, use the 'none' subcommand.
1221
1222                  $ task context none
1223                  Context unset.
1224
1225                  $ task list
1226                  ID Age Project  Description         Urg
1227                  1  2d  Sport    Run 5 miles         1.42
1228                  2  1d  Home     Clean the dishes    1.14
1229                  3  7s  Home     Vaccuum the carpet  1.14
1230
1231              Context can be defined using the 'define' subcommand, specifying
1232              both the name of the new context, and it's assigned filter.
1233
1234                  $ task context define home project:Home
1235                  Are  you  sure  you  want  to add 'context.home.read' with a
1236              value of 'project:Home'? (yes/no) yes
1237                  Are you sure you want to  add  'context.home.write'  with  a
1238              value of 'project:Home'? (yes/no) yes
1239                  Context 'home' successfully defined.
1240
1241              Note  that  you  were  separately prompted to set the 'read' and
1242              'write' context.  This allows you to specify contexts that  only
1243              work  for  reporting  commands  or only for commands that create
1244              tasks.
1245
1246              To remove the definition, use the 'delete' subcommand.
1247
1248                  $ task context delete home
1249                  Are  you  sure  you  want  to  remove   'context.home.read'?
1250              (yes/no) yes
1251                  Are  you  sure  you  want  to  remove  'context.home.write'?
1252              (yes/no) yes
1253                  Context 'home' deleted.
1254
1255              To check what is the currently active context,  use  the  'show'
1256              subcommand.
1257
1258                  $ task context show
1259                  Context 'home' with
1260
1261                  * read filter: '+home'
1262                  * write filter: '+home'
1263
1264                  is currently applied.
1265
1266              Contexts can store arbitrarily complex filters.
1267
1268                  $  task  context  define  family  project:Family or +paul or
1269              +nancy
1270                  Are you sure you want to add  'context.family.read'  with  a
1271              value of 'project:Family or +paul or +nancy'? (yes/no) yes
1272                  Are  you  sure you want to add 'context.family.write' with a
1273              value of 'project:Family or +paul or +nancy'? (yes/no) no
1274                  Context 'family' successfully defined.
1275
1276              Contexts are permanent, and the currently set  context  name  is
1277              stored in the "context" configuration variable. The context def‐
1278              inition is stored  in  the  "context.<name>.read"  configuration
1279              variable  (for  reporting  commands)  and "context.<name>.write"
1280              configuration variable (for task additions, i.e. task add/log).
1281
1282              Note that in the example above, the user decided not  to  define
1283              the complex filter as writeable context. The reason for this de‐
1284              cision is that the complex filter in the example  does  not  di‐
1285              rectly  translate  to a modification. In fact, if such a context
1286              is used as a writeable context, the following happens:
1287
1288                  $ task add Call Paul
1289                  Created task 4.
1290                  Context 'family' set. Use 'task context none' to remove.
1291
1292                  $ task 4 list
1293                  ID Age  Project Tags       Description      Urg
1294                   4 9min Family  nancy paul or or Call Paul    0
1295
1296
1297              There is no clear mapping between the complex  filter  used  and
1298              the  modifications  (should  only  the  project be set? only the
1299              tags? both?). Additionally note the 'or' operators being present
1300              in  the  description. Taskwarrior does not try to guess the user
1301              intention here, and instead, the user is  expected  to  set  the
1302              "context.<name>.write"  variable  to  make  their  intention ex‐
1303              plicit, for example:
1304
1305                  $ task config context.family.write project:Family
1306                  Are you sure you want to change the value  of  'context.fam‐
1307              ily.write'   from   'project:Family   or  +paul  or  +nancy'  to
1308              'project:Family'? (yes/no) yes
1309                  Config file /home/tbabej/.config/task/taskrc modified.
1310
1311                  $ task context
1312                  Name   Type  Definition                        Active
1313                  family read  project:Family or +paul or +nancy yes
1314                         write project:Family                    yes
1315                  home   read  +home                             no
1316                         write +home                             no
1317
1318              Note how read and write contexts differ  for  context  "family",
1319              while for context "home" they stay the same.
1320
1321              In addition, every configuration parameter can be overridden for
1322              the current context,  by  specifying  context.<name>.rc.<parame‐
1323              ter>. For example, if the default command for the family context
1324              should be displaying the family_report:
1325
1326                  $ task config  context.family.rc.default.command  family_re‐
1327              port
1328
1329

COMMAND ABBREVIATION

1331       All  Taskwarrior commands may be abbreviated as long as a unique prefix
1332       is used, for example:
1333
1334              $ task li
1335
1336       is an unambiguous abbreviation for
1337
1338              $ task list
1339
1340       but
1341
1342              $ task l
1343
1344       could be list, ls or long.
1345
1346       Note that you can restrict the minimum abbreviation size using the con‐
1347       figuration setting:
1348
1349              abbreviation.minimum=3
1350
1351

SPECIFYING DESCRIPTIONS

1353       Some  task descriptions need to be escaped because of the shell and the
1354       special meaning of some characters to the shell. This can be  done  ei‐
1355       ther  by adding quotes to the description or escaping the special char‐
1356       acter:
1357
1358              $ task add "quoted ' quote"
1359              $ task add escaped \' quote
1360
1361       The argument -- (a double dash) tells Taskwarrior to  treat  all  other
1362       args as description:
1363
1364              $ task add -- project:Home needs scheduling
1365
1366       In  other  situations,  the  shell sees spaces and breaks up arguments.
1367       For example, this command:
1368
1369              $ task 123 modify /from this/to that/
1370
1371       is broken up into several arguments, which is corrected with quotes:
1372
1373              $ task 123 modify "/from this/to that/"
1374
1375       It is sometimes necessary to force the shell to pass quotes to Taskwar‐
1376       rior intact, so you can use:
1377
1378              $ task add project:\'Three Word Project\' description
1379
1380       Taskwarrior supports Unicode using only the UTF8 encoding, with no Byte
1381       Order Marks in the data files.
1382
1383

CONFIGURATION FILE AND OVERRIDE OPTIONS

1385       Taskwarrior stores its configuration in a file in the user's  home  di‐
1386       rectory:  ~/.taskrc.  The  default configuration file can be overridden
1387       with:
1388
1389
1390       task rc:<path-to-alternate-file> ...
1391              Specifies an alternate configuration file with highest priority.
1392
1393
1394       TASKRC=<path-to-alternate-file> task ..
1395              The environment variable specifies  an  alternate  configuration
1396              file to use.
1397
1398
1399       XDG_CONFIG_HOME=<path-to-alternate-config-home> task ..
1400              The  environment  variable  specifies an alternate configuration
1401              file to use.
1402
1403
1404       task rc.<name>:<value> ...
1405              task rc.<name>=<value> ...  Specifies  individual  configuration
1406              file overrides.
1407
1408
1409       TASKDATA=/tmp/.task task ...
1410              The   environment   variable  overrides  the  default,  and  the
1411              'data.location' configuration setting of the  task  data  direc‐
1412              tory.
1413
1414

MORE EXAMPLES

1416       For examples please see the online documentation starting at
1417
1418              <https://taskwarrior.org/docs>
1419
1420       Note  that  the online documentation can be more detailed and more cur‐
1421       rent than this man page.
1422
1423

FILES

1425       ~/.taskrc
1426              User configuration file - see also taskrc(5).   Note  that  this
1427              can  be overridden on the command line or by the TASKRC environ‐
1428              ment variable. Also, if ~/.taskrc  doesn't  exist  and  XDG_CON‐
1429              FIG_HOME environment variable is defined, taskwarrior will check
1430              if $XDG_CONFIG_HOME/task/taskrc exists and attempt to read it
1431
1432
1433       ~/.task
1434              The default directory where task stores its data files. The  lo‐
1435              cation can be configured in the configuration variable 'data.lo‐
1436              cation', or overridden with the TASKDATA environment variable..
1437
1438
1439       ~/.task/pending.data
1440              The file that contains the tasks that are not yet done.
1441
1442
1443       ~/.task/completed.data
1444              The file that contains the completed ("done") tasks.
1445
1446
1447       ~/.task/undo.data
1448              The file that contains information needed by the "undo" command.
1449
1450

CREDITS & COPYRIGHTS

1452       Copyright (C) 2006 - 2021 T. Babej, P. Beckingham, F. Hernandez.
1453
1454       Taskwarrior is distributed under the MIT license. See https://www.open
1455       source.org/licenses/mit-license.php for more information.
1456
1457

SEE ALSO

1459       taskrc(5), task-color(5), task-sync(5)
1460
1461       For more information regarding Taskwarrior, see the following:
1462
1463
1464       The official site at
1465              <https://taskwarrior.org>
1466
1467
1468       The official code repository at
1469              <https://github.com/GothenburgBitFactory/taskwarrior>
1470
1471
1472       You can contact the project by emailing
1473              <support@GothenburgBitFactory.org>
1474
1475

REPORTING BUGS

1477       Bugs in Taskwarrior may be reported to the issue-tracker at
1478              <https://github.com/GothenburgBitFactory/taskwarrior/issues>
1479
1480
1481
1482task 2.6.2                        2016-02-24                           task(1)
Impressum