1task(1) User Manuals task(1)
2
3
4
6 task - A command line todo manager.
7
8
10 task <filter> <command> [ <mods> | <args> ]
11 task --version
12
13
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)