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
23 recurrence. 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
41 sequence 'garden'. In this example, 'garden' is translated internally
42 to:
43
44 description.contains:garden
45
46 as a convenient shortcut. The 'contains' here is an attribute modi‐
47 fier, which is used to exert more control over the filter than simply
48 absence or presence. See the section 'ATTRIBUTE MODIFIERS' below for a
49 complete list of modifiers.
50
51 Note that a filter may have zero terms, which means that all tasks
52 apply to the command. This can be dangerous, and this special case is
53 confirmed, and cannot be overridden. For example, this command:
54
55 task modify +work
56 This command has no filter, and will modify all tasks. Are you sure?
57 (yes/no)
58
59 will add the 'work' tag to all tasks, but only after confirmation.
60
61 More filter examples:
62
63 task <command> <mods>
64 task 28 <command> <mods>
65 task +weekend <command> <mods>
66 task project:Home due.before:today <command> <mods>
67 task ebeeab00-ccf8-464b-8b58-f7f2d606edfb <command> <mods>
68
69 By default filter elements are combined with an implicit 'and' opera‐
70 tor, but 'or' and 'xor' may also be used, provided parentheses are
71 included:
72
73 task '( /[Cc]at|[Dd]og/ or /[0-9]+/ )' <command> <mods>
74
75 The parentheses isolate the logical term from any default command fil‐
76 ter or implicit report filter which would be combined with an implicit
77 'and'.
78
79 A filter may target specific tasks using ID or UUID numbers. To spec‐
80 ify multiple tasks use one of these forms (space-separated list of ID
81 numbers, UUID numbers or ID ranges):
82
83 task 1 2 3 delete
84 task 1-3 info
85 task 1 2-5 19 modify pri:H
86 task 4-7 ebeeab00-ccf8-464b-8b58-f7f2d606edfb info
87
88
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
120 invoking the mechanisms that create default files.
121
122
123 task <filter>
124 With no command specified, the default command is run, and the
125 filter applied.
126
127
128 task <filter> active
129 Shows all tasks matching the filter that are started but not
130 completed.
131
132
133 task <filter> all
134 Shows all tasks matching the filter, including parents of recur‐
135 ring tasks.
136
137
138 task <filter> blocked
139 Shows all tasks matching the filter, that are currently blocked
140 by other tasks.
141
142
143 task <filter> blocking
144 Shows all tasks matching the filter, that block other tasks.
145
146
147 task <filter> burndown.daily
148 Shows a graphical burndown chart, by day.
149
150
151 task <filter> burndown.weekly
152 Shows a graphical burndown chart, by week. Note that 'burndown'
153 is an alias to the 'burndown.weekly' report.
154
155
156 task <filter> burndown.monthly
157 Shows a graphical burndown chart, by month.
158
159
160 task calendar [due|<month> <year>|<year>] [y]
161 Shows a monthly calendar with due tasks marked. Shows one hori‐
162 zontal line of months. If the 'y' argument is provided, will
163 show at least one complete year. If a year is provided, such as
164 '2015', then that full year is shown. If both a month and a
165 year are specified ('6 2015') then the months displayed begin at
166 the specified month and year. If the 'due' argument is pro‐
167 vided, will show the starting month of the earliest due task.
168
169
170 task colors [sample | legend]
171 Displays all possible colors, a named sample, or a legend con‐
172 taining all currently defined colors.
173
174
175 task columns [substring]
176 Displays all supported columns and formatting styles. Useful
177 when creating custom reports. If a substring is provided, only
178 matching column names are shown.
179
180
181 task commands
182 Shows all the supported commands, with some details of each.
183
184
185 task <filter> completed
186 Shows all tasks matching the filter that are completed.
187
188
189 task <filter> count
190 Displays only a count of tasks matching the filter.
191
192
193 task <filter> export
194 Exports all tasks in the JSON format. Redirect the output to a
195 file, if you wish to save it, or pipe it to another command or
196 script to convert it to another format. The standard task
197 release comes with a few example scripts, such as:
198
199 export-csv.pl
200 export-sql.py
201 export-xml.py
202 export-yaml.pl
203 export-html.pl
204 export-tsv.pl
205 export-xml.rb
206 export-ical.pl
207 export-xml.pl
208 export-yad.pl
209
210
211 task <filter> ghistory.annual
212 Shows a graphical report of task status by year.
213
214
215 task <filter> ghistory.monthly
216 Shows a graphical report of task status by month. Note that
217 'ghistory' is an alias to 'ghistory.monthly'.
218
219
220 task help
221 Shows the long usage text.
222
223
224 task <filter> history.annual
225 Shows a report of task history by year.
226
227
228 task <filter> history.monthly
229 Shows a report of task history by month. Note that 'history' is
230 an alias to 'history.monthly'.
231
232
233 task <filter> ids
234 Applies the filter then extracts only the task IDs and presents
235 them as a space-separated list. This is useful as input to a
236 task command, to achieve this:
237
238 task $(task project:Home ids) modify priority:H
239
240 This example first gets the IDs for the project:Home filter,
241 then sets the priority to H for each of those tasks. This can
242 also be achieved directly:
243
244 task project:Home modify priority:H
245
246 This command is mainly of use to external scripts.
247
248
249 task <filter> uuids
250 Applies the filter on all tasks (even deleted and completed
251 tasks) then extracts only the task UUIDs and presents them as a
252 comma-separated list. This is useful as input to a task com‐
253 mand, to achieve this:
254
255 task $(task project:Home status:completed uuids) modify sta‐
256 tus:pending
257
258 This example first gets the UUIDs for the project:Home and sta‐
259 tus:completed filters, then makes each of those tasks pending
260 again.
261
262 This command is mainly of use to external scripts.
263
264
265 task udas
266 Shows a list of UDAs that are defined, including their name,
267 type, label and allowed values. Also shows UDA usage and any
268 orphan UDAs.
269
270
271 task <filter> information
272 Shows all data and metadata for the specified tasks. This is
273 the only means of displaying all aspects of a given task,
274 including the change history.
275
276
277 task <filter> list
278 Provides a standard listing of tasks matching the filter.
279
280
281 task <filter> long
282 Provides the most detailed listing of tasks matching the filter.
283
284
285 task <filter> ls
286 Provides a short listing of tasks matching the filter.
287
288
289 task <filter> minimal
290 Provides a minimal listing of tasks matching the filter.
291
292
293 task <filter> newest
294 Shows the newest tasks matching the filter.
295
296
297 task <filter> next
298 Shows a page of the most urgent tasks, sorted by urgency, which
299 is a calculated value.
300
301
302 task <filter> ready
303 Shows a page of the most urgent ready tasks, sorted by urgency.
304 A ready task is one that is either unscheduled, or has a sched‐
305 uled date that is past and has no wait date.
306
307
308 task <filter> oldest
309 Shows the oldest tasks matching the filter.
310
311
312 task <filter> overdue
313 Shows all incomplete tasks matching the filter that are beyond
314 their due date.
315
316
317 task <filter> projects
318 Lists all project names that are currently used by pending
319 tasks, and the number of tasks for each.
320
321
322 task <filter> recurring
323 Shows all recurring tasks matching the filter.
324
325
326 task <filter> unblocked
327 Shows all tasks that are not currently blocked by other tasks,
328 matching the filter.
329
330
331 task <filter> waiting
332 Shows all waiting tasks matching the filter.
333
334
336 task add <mods>
337 Adds a new pending task to the task list.
338
339
340 task <filter> annotate <mods>
341 Adds an annotation to an existing task.
342
343
344 task <filter> append <mods>
345 Appends description text to an existing task.
346
347
348 task <filter> delete <mods>
349 Deletes the specified task from task list.
350
351
352 task <filter> denotate <mods>
353 Deletes an annotation for the specified task. If the provided
354 description matches an annotation exactly, the corresponding
355 annotation is deleted. If the provided description matches anno‐
356 tations partly, the first partly matched annotation is deleted.
357
358
359 task <filter> done <mods>
360 Marks the specified task as done.
361
362
363 task <filter> duplicate <mods>
364 Duplicates the specified task and allows modifications.
365
366
367 task <filter> edit
368 Launches a text editor to let you modify all aspects of a task
369 directly. In general, this is not the recommended method of
370 modifying tasks, but is provided for exceptional circumstances.
371 Use carefully.
372
373
374 task import [<file> ...]
375 Imports tasks in the JSON format. Can be used to add new tasks,
376 or update existing ones. Tasks are identified by their UUID.
377
378 If no file or "-" is specified, import tasks from STDIN.
379
380 Setting rc.recurrence.confirmation to an appropriate level is
381 recommended if import is to be used in automated workflows. See
382 taskrc(5).
383
384 For importing other file formats, the standard task release
385 comes with a few example scripts, such as:
386
387 import-todo.sh.pl
388 import-yaml.pl
389
390
391 task log <mods>
392 Adds a new task that is already completed, to the task list.
393
394
395 task <filter> modify <mods>
396 Modifies the existing task with provided information.
397
398
399 task <filter> prepend <mods>
400 Prepends description text to an existing task.
401
402
403 task <filter> start <mods>
404 Marks the specified tasks as started.
405
406
407 task <filter> stop <mods>
408 Removes the start time from the specified task.
409
410
412 Miscellaneous subcommands either accept no command line arguments, or
413 accept non-standard arguments.
414
415
416 task calc <expression>
417 Evaluates an algebraic expression. Can be used to test how
418 Taskwarrior parses and evaluates the expression given on the
419 command line.
420
421 Examples:
422
423 task calc 1 + 1
424 2
425
426 task calc now + 8d
427 2015-03-26T18:06:57
428
429 task calc eom
430 2015-03-31T23:59:59
431
432
433 task config [name [value | '']]
434 Add, modify and remove settings directly in the Taskwarrior con‐
435 figuration. This command either modifies the 'name' setting
436 with a new value of 'value', or adds a new entry that is equiva‐
437 lent to 'name=value':
438
439 task config name value
440
441 This command sets a blank value. This has the effect of sup‐
442 pressing any default value:
443
444 task config name ''
445
446 Finally, this command removes any 'name=...' entry from the
447 .taskrc file:
448
449 task config name
450
451
452 task context <name>
453 Sets the currently active context. See the CONTEXT section.
454
455 Example:
456
457 task context work
458
459
460 task context delete <name>
461 Deletes the context with the name <name>. If the context being
462 deleted is currently set as active, it will be unset.
463
464 Example:
465
466 task context delete work
467
468
469 task context define <name> <filter>
470 Defines a new context with name <name> and definition <filter>.
471 This command does not affect the currently set context, just
472 adds a new context definition.
473
474 Examples:
475
476 task context define work project:Work
477 task context define home project:Home or +home
478 task context define superurgent due:today and +urgent
479
480
481 task context list
482 Outputs a list of available contexts along with their defini‐
483 tions.
484
485
486 task context none
487 Clears the currently active context, if any was set.
488
489
490 task context show
491 Shows the currently active context, along with its definition.
492
493
494 task diagnostics
495 Shows diagnostic information, of the kind needed when reporting
496 a problem. When you report a bug, it is likely that the plat‐
497 form, version, and environment are important. Running this com‐
498 mand generates a summary of similar information that should
499 accompany a bug report.
500
501 It includes compiler, library and software information. It does
502 not include any personal information, other than the location
503 and size of your task data files.
504
505 This command also performs a diagnostic scan of your data files
506 looking for common problems, such as duplicate UUIDs.
507
508
509 task execute <external command>
510 Executes the specified command. Not useful by itself, but when
511 used in conjunction with aliases and extensions can provide
512 seamless integration.
513
514
515 task logo
516 Displays the Taskwarrior logo.
517
518
519 task reports
520 Lists all supported reports. This includes the built-in
521 reports, and any custom reports you have defined.
522
523
524 task show [all | substring]
525 Shows all the current settings. If a substring is specified
526 just the settings containing that substring will be displayed.
527
528
529 task <filter> stats
530 Shows statistics of the tasks defined by the filter.
531
532
533 task <filter> summary
534 Shows a report of aggregated task status by project.
535
536
537 task <filter> tags
538 Show a list of all tags used. Any special tags used are high‐
539 lighted. Note that virtual tags are not listed - they don't
540 really exist, and are just a convenient notation for other task
541 metadata. It is an error to attempt to add or remove a virtual
542 tag.
543
544
545 task timesheet [weeks]
546 Shows a weekly report of tasks completed and started.
547
548
549 task undo
550 Reverts the most recent action. Obeys the confirmation setting.
551
552
553 task version
554 Shows the Taskwarrior version number.
555
556
558 task _aliases
559 Generates a list of all aliases, for autocompletion purposes.
560
561
562 task _columns
563 Displays only a list of supported columns.
564
565
566 task _commands
567 Generates a list of all commands, for autocompletion purposes.
568
569
570 task _config
571 Lists all supported configuration variables, for completion pur‐
572 poses.
573
574
575 task _context
576 Lists all available context variables, for completion purposes.
577
578
579 task <filter> _ids
580 Shows only the IDs of matching tasks, in the form of a list.
581 Deprecated in favor of _unique.
582
583
584 task _show
585 Shows the combined defaults and overrides of the configuration
586 settings, for use by third-party applications.
587
588
589 task <filter> _unique <attribute>
590 Reports a unique set of attribute values. For example, to see
591 all the active projects:
592
593 task +PENDING _unique projects
594
595
596 task <filter> _uuids
597 Shows only the UUIDs of matching tasks among all tasks (even
598 deleted and completed tasks), in the form of a list. Deprecated
599 in favor of _unique.
600
601
602 task _udas
603 Shows only defined UDA names, in the form of a list.
604
605
606 task <filter> _projects
607 Shows only a list of all project names used. Deprecated in
608 favor of _unique.
609
610
611 task <filter> _tags
612 Shows only a list of all tags used, for autocompletion purposes.
613 Deprecated in favor of _unique.
614
615
616 task <filter> _urgency
617 Displays the urgency measure of a task.
618
619
620 task _version
621 Shows only the Taskwarrior version number.
622
623
624 task _zshcommands
625 Generates a list of all commands, for zsh autocompletion pur‐
626 poses.
627
628
629 task <filter> _zshids
630 Shows the IDs and descriptions of matching tasks.
631
632
633 task <filter> _zshuuids
634 Shows the UUIDs and descriptions of matching tasks.
635
636
637 task _get <DOM> [<DOM> ...]
638 Accesses and displays the DOM reference(s). Used to extract
639 individual values from tasks, or the system. Supported DOM ref‐
640 erences are:
641
642 rc.<name>
643 context.program
644 context.args
645 context.width
646 context.height
647 system.version
648 system.os
649 <id>.<attribute>
650 <uuid>.<attribute>
651
652 Note that the 'rc.<name>' reference may need to be escaped using
653 '--' to prevent the reference from being interpreted as an over‐
654 ride.
655
656 Note that if the DOM reference is not valid, or the reference
657 evaluates to a missing value, the command exits with 1.
658
659 Additionally, some components of the attributes of particular
660 types may be extracted by DOM references.
661
662 $ task _get 2.due.year
663 2015
664
665 For a full list of supported attribute-specific DOM references,
666 consult the online documentation at: <http://taskwar‐
667 rior.org/docs/dom.html>
668
669
671 ID Tasks can be specified uniquely by IDs, which are simply the
672 indexes of the tasks in the data file. The ID of a task may
673 therefore change, but only when a command is run that displays
674 IDs. When modifying tasks, it is safe to rely on the last dis‐
675 played ID. Always run a report to check you have the right ID
676 for a task. IDs can be given to task as a sequence, for example,
677 task 1,4-10,19 delete
678
679
680 +tag|-tag
681 Tags are arbitrary words associated with a task. Use + to add a
682 tag and - to remove a tag from a task. A task can have any quan‐
683 tity of tags.
684
685 Certain tags (called 'special tags'), can be used to affect the
686 way tasks are treated. For example, if a task has the special
687 tag 'nocolor', then it is exempt from all color rules. The sup‐
688 ported special tags are:
689
690 +nocolor Disable color rules processing for this task
691 +nonag Completion of this task suppresses all nag mes‐
692 sages
693 +nocal This task will not appear on the calendar
694 +next Elevates task so it appears on 'next' report
695
696 There are also virtual tags, which represent task metadata in
697 tag form. These tags do not exist, but can be used to filter
698 tasks. The supported virtual tags are:
699
700 ACTIVE Matches if the task is started
701 ANNOTATED Matches if the task has annotations
702 BLOCKED Matches if the task is blocked
703 BLOCKING Matches if the task is blocking
704 CHILD Matches if the task has a parent
705 COMPLETED Matches if the task has completed status
706 DELETED Matches if the task has deleted status
707 DUE Matches if the task is due
708 DUETODAY Matches if the task is due today
709 LATEST Matches if the task is the newest added task
710 MONTH Matches if the task is due this month
711 ORPHAN Matches if the task has any orphaned UDA values
712 OVERDUE Matches if the task is overdue
713 PARENT Matches if the task is a parent
714 PENDING Matches if the task has pending status
715 PRIORITY Matches if the task has a priority
716 PROJECT Matches if the task has a project
717 READY Matches if the task is actionable
718 SCHEDULED Matches if the task is scheduled
719 TAGGED Matches if the task has tags
720 TODAY Matches if the task is due today
721 TOMORROW Matches if the task is due sometime tomorrow
722 UDA Matches if the task has any UDA values
723 UNBLOCKED Matches if the task is not blocked
724 UNTIL Matches if the task expires
725 WAITING Matches if the task is waiting
726 WEEK Matches if the task is due this week
727 YEAR Matches if the task is due this year
728 YESTERDAY Matches if the task was due sometime yesterday
729
730
731 You can use +BLOCKED to filter blocked tasks, or -BLOCKED for
732 unblocked tasks. Similarly, -BLOCKED is equivalent to
733 +UNBLOCKED. It is an error to attempt to add or remove a virtual
734 tag.
735
736
737 project:<project-name>
738 Specifies the project to which a task is related to.
739
740
741 priority:H|M|L or priority:
742 Specifies High, Medium, Low and no priority for a task.
743
744
745 due:<due-date>
746 Specifies the due-date of a task.
747
748
749 recur:<frequency>
750 Specifies the frequency of a recurrence of a task.
751
752
753 scheduled:<ready-date>
754 Specifies the date after which a task can be accomplished.
755
756
757 until:<expiration date of task>
758 Specifies the expiration date of a task, after which it will be
759 deleted.
760
761
762 limit:<number-of-rows>
763 Specifies the desired number of tasks a report should show, if a
764 positive integer is given. The value 'page' may also be used,
765 and will limit the report output to as many lines of text as
766 will fit on screen. This defaults to 25 lines.
767
768
769 wait:<wait-date>
770 When a task is given a wait date, it is hidden from most reports
771 by changing its status to 'waiting'. When that date is passed,
772 the status is changed back to 'pending', and the task becomes
773 visible.
774
775
776 depends:<id1,id2 ...>
777 Declares this task to be dependent on id1 and id2. This means
778 that the tasks id1 and id2 should be completed before this task.
779 Consequently, this task will then show up on the 'blocked'
780 report. It accepts a comma-separated list of ID numbers, UUID
781 numbers and ID ranges. When prefixing any element of this list
782 by '-', the specified tasks are removed from the dependency
783 list.
784
785
786 entry:<entry-date>
787 For report purposes, specifies the date that a task was created.
788
789
791 Attribute modifiers improve filters. Supported modifiers are:
792
793 before (synonyms under, below)
794 after (synonyms over, above)
795 none
796 any
797 is (synonym equals)
798 isnt (synonym not)
799 has (synonym contains)
800 hasnt
801 startswith (synonym left)
802 endswith (synonym right)
803 word
804 noword
805
806 For example:
807
808 task due.before:eom priority.not:L list
809
810 The before modifier is used to compare values, preserving semantics, so
811 project.before:B list all projects that begin with 'A'. Priority 'L'
812 is before 'M', and due:2011-01-01 is before due:2011-01-02. The syn‐
813 onyms 'under' and 'below' are included to allow filters that read more
814 naturally.
815
816 The after modifier is the inverse of the before modifier.
817
818 The none modifier requires that the attribute does not have a value.
819 For example:
820
821 task priority: list
822 task priority.none: list
823
824 are equivalent, and list tasks that do not have a priority.
825
826 The any modifier requires that the attribute has a value, but any value
827 will suffice.
828
829 The is modifier requires an exact match with the value.
830
831 The isnt modifier is the inverse of the is modifier.
832
833 The has modifier is used to search for a substring, such as:
834
835 task description.has:foo list
836 task foo list
837
838 These are equivalent and will return any task that has 'foo' in the
839 description or annotations.
840
841 The hasnt modifier is the inverse of the has modifier.
842
843 The startswith modifier matches against the left, or beginning of an
844 attribute, such that:
845
846 task project.startswith:H list
847 task project:H list
848
849 are equivalent and will match any project starting with 'H'. Matching
850 all projects not starting with 'H' is done with:
851
852 task project.not:H list
853
854 The endswith modifier matches against the right, or end of an
855 attribute.
856
857 The word modifier requires that the attribute contain the whole word
858 specified, such that this:
859
860 task description.word:bar list
861
862 Will match the description 'foo bar baz' but does not match 'dog food'.
863
864 The noword modifier is the inverse of the word modifier.
865
866
868 You can use the following operators in filter expressions:
869
870 and or xor ! Logical operators
871 < <= = == != !== >= > Relational operators
872 ( ) Precedence
873
874 For example:
875
876 task due.before:eom priority.not:L list
877 task '( due < eom or priority != L )' list
878 task '! ( project:Home or project:Garden )' list
879
880 The = operator tests for approximate equality. Dates compare equal if
881 they are on the same day (hour and minutes are ignored). Strings com‐
882 pare equal if the left operand starts with the right operand. The ==
883 operator tests for exact equality. The != and !== operators are the
884 negation of = and == respectively. The negation operator is !.
885
886 Note that the parentheses are required when using a logical operator
887 other than the 'and' operator. The reason is that some reports contain
888 filters that must be combined with the command line. Consider this
889 example:
890
891 task project:Home or project:Garden list
892
893 While this looks correct, it is not. The 'list' report contains a fil‐
894 ter of:
895
896 task show report.list.filter
897
898 Config Variable Value
899 ----------------- --------------
900 report.list.filter status:pending
901
902 Which means the example is really:
903
904 task status:pending project:Home or project:Garden list
905
906 The implied 'and' operator makes it:
907
908 task status:pending and project:Home or project:Garden list
909
910 This is a precedence error - the 'and' and 'or' need to be grouped
911 using parentheses, like this:
912
913 task status:pending and ( project:Home or project:Garden ) list
914
915 The original example therefore must be entered as:
916
917 task '( project:Home or project:Garden )' list
918
919 This includes quotes to escape the parentheses, so that the shell
920 doesn't interpret them and hide them from Taskwarrior.
921
922 There is redundancy between operators, attribute modifiers and other
923 syntactic sugar. For example, the following are all equivalent:
924
925 task foo list
926 task /foo/ list
927 task description.contains:foo list
928 task description.has:foo list
929 task 'description ~ foo' list
930
931
933 DATES
934 Taskwarrior reads dates from the command line and displays dates in the
935 reports. The expected and desired date format is determined by the
936 configuration variable dateformat
937
938
939 Exact specification
940 task ... due:7/14/2008
941
942
943 ISO-8601
944 task ... due:2013-03-14T22:30:00Z
945
946
947 Relative wording
948 task ... due:now
949 task ... due:today
950 task ... due:yesterday
951 task ... due:tomorrow
952
953
954 Day number with ordinal
955 task ... due:23rd
956 task ... due:3wks
957 task ... due:1day
958 task ... due:9hrs
959
960
961 Start of next (work) week (Monday), calendar week (Sunday or
962 Monday), month, quarter and year
963 task ... due:sow
964 task ... due:soww
965 task ... due:socw
966 task ... due:som
967 task ... due:soq
968 task ... due:soy
969
970
971 End of current (work) week (Friday), calendar week (Saturday or
972 Sunday), month, quarter and year
973 task ... due:eow
974 task ... due:eoww
975 task ... due:eocw
976 task ... due:eom
977 task ... due:eoq
978 task ... due:eoy
979
980
981 At some point or later
982 task ... wait:later
983 task ... wait:someday
984
985 This sets the wait date to 1/18/2038.
986
987
988 Next occurring weekday
989 task ... due:fri
990
991
992 Predictable holidays
993 task ... due:goodfriday
994 task ... due:easter
995 task ... due:eastermonday
996 task ... due:ascension
997 task ... due:pentecost
998 task ... due:midsommar
999 task ... due:midsommarafton
1000
1001
1002 FREQUENCIES
1003 Recurrence periods. Taskwarrior supports several ways of specifying the
1004 frequency of recurring tasks.
1005
1006
1007 daily, day, 1da, 2da, ...
1008 Every day or a number of days.
1009
1010
1011 weekdays
1012 Mondays, Tuesdays, Wednesdays, Thursdays, Fridays and
1013 skipping weekend days.
1014
1015
1016 weekly, 1wk, 2wks, ...
1017 Every week or a number of weeks.
1018
1019
1020 biweekly, fortnight
1021 Every two weeks.
1022
1023
1024 monthly, month, 1mo, 2mo, ...
1025 Every month.
1026
1027
1028 quarterly, 1qtr, 2qtrs, ...
1029 Every three months, a quarter, or a number of quarters.
1030
1031
1032 semiannual
1033 Every six months.
1034
1035
1036 annual, yearly, 1yr, 2yrs, ...
1037 Every year or a number of years.
1038
1039
1040 biannual, biyearly, 2yr
1041 Every two years.
1042
1043
1045 Context is a user-defined filter, which is automatically applied to all
1046 commands that filter the task list. In particular, any report command
1047 will have its result affected by the current active context.
1048
1049 $ task list
1050 ID Age Project Description Urg
1051 1 2d Sport Run 5 miles 1.42
1052 2 1d Home Clean the dishes 1.14
1053
1054 $ task context home
1055 Context 'home' set. Use 'task context none' to remove.
1056
1057 $ task list
1058 ID Age Project Description Urg
1059 2 1d Home Clean the dishes 1.14
1060 Context 'home' set. Use 'task context none' to remove.
1061
1062 As seen in the example above, context is applied by specifying its name
1063 to the "context" command. To change the currently applied context, just
1064 pass the new context's name to the 'context' command.
1065
1066 To unset any context, use the 'none' subcommand.
1067
1068 $ task context none
1069 Context unset.
1070
1071 $ task list
1072 ID Age Project Description Urg
1073 1 2d Sport Run 5 miles 1.42
1074 2 1d Home Clean the dishes 1.14
1075
1076 Context can be defined using the 'define' subcommand, specifying both
1077 the name of the new context, and it's assigned filter.
1078
1079 $ task context define home project:Home
1080 Are you sure you want to add 'context.home' with a value of
1081 'project:Home'? (yes/no) yes
1082 Context 'home' successfully defined.
1083
1084 To remove the definition, use the 'delete' subcommand.
1085
1086 $ task context delete home
1087 Are you sure you want to remove 'context.home'? (yes/no) yes
1088 Context 'home' successfully undefined.
1089
1090 To check what is the currently active context, use the 'show' subcom‐
1091 mand.
1092
1093 $ task context show
1094 Context 'home' with filter 'project:Home' is currently applied.
1095
1096 Contexts can store arbitrarily complex filters.
1097
1098 $ task context define family project:Family or +paul or +nancy
1099 Are you sure you want to add 'context.home' with a value of
1100 'project:Family or +paul or +nancy'? (yes/no) yes
1101 Context 'family' successfully defined.
1102
1103 Contexts are permanent, and the currently set context name is stored in
1104 the "context" configuration variable. The context definition is stored
1105 in the "context.<name>" configuration variable.
1106
1107
1109 All Taskwarrior commands may be abbreviated as long as a unique prefix
1110 is used, for example:
1111
1112 $ task li
1113
1114 is an unambiguous abbreviation for
1115
1116 $ task list
1117
1118 but
1119
1120 $ task l
1121
1122 could be list, ls or long.
1123
1124 Note that you can restrict the minimum abbreviation size using the con‐
1125 figuration setting:
1126
1127 abbreviation.minimum=3
1128
1129
1131 Some task descriptions need to be escaped because of the shell and the
1132 special meaning of some characters to the shell. This can be done
1133 either by adding quotes to the description or escaping the special
1134 character:
1135
1136 $ task add "quoted ' quote"
1137 $ task add escaped \' quote
1138
1139 The argument -- (a double dash) tells Taskwarrior to treat all other
1140 args as description:
1141
1142 $ task add -- project:Home needs scheduling
1143
1144 In other situations, the shell sees spaces and breaks up arguments.
1145 For example, this command:
1146
1147 $ task 123 modify /from this/to that/
1148
1149 is broken up into several arguments, which is corrected with quotes:
1150
1151 $ task 123 modify "/from this/to that/"
1152
1153 It is sometimes necessary to force the shell to pass quotes to Taskwar‐
1154 rior intact, so you can use:
1155
1156 $ task add project:\'Three Word Project\' description
1157
1158 Taskwarrior supports Unicode using only the UTF8 encoding, with no Byte
1159 Order Marks in the data files.
1160
1161
1163 Taskwarrior stores its configuration in a file in the user's home
1164 directory: ~/.taskrc. The default configuration file can be overridden
1165 with:
1166
1167
1168 task rc:<path-to-alternate-file> ...
1169 Specifies an alternate configuration file.
1170
1171
1172 TASKRC=/tmp/.taskrc task ..
1173 The environment variable overrides the default and the command
1174 line specification of the .taskrc file.
1175
1176
1177 task rc.<name>:<value> ...
1178 task rc.<name>=<value> ... Specifies individual configuration
1179 file overrides.
1180
1181
1182 TASKDATA=/tmp/.task task ...
1183 The environment variable overrides the default, the command
1184 line, and the 'data.location' configuration setting of the task
1185 data directory.
1186
1187
1189 For examples please see the online documentation starting at
1190
1191 <http://taskwarrior.org/docs>
1192
1193 Note that the online documentation can be more detailed and more cur‐
1194 rent than this man page.
1195
1196
1198 ~/.taskrc
1199 User configuration file - see also taskrc(5). Note that this
1200 can be overridden on the command line or by the TASKRC environ‐
1201 ment variable.
1202
1203
1204 ~/.task
1205 The default directory where task stores its data files. The
1206 location can be configured in the configuration variable
1207 'data.location', or overridden with the TASKDATA environment
1208 variable..
1209
1210
1211 ~/.task/pending.data
1212 The file that contains the tasks that are not yet done.
1213
1214
1215 ~/.task/completed.data
1216 The file that contains the completed ("done") tasks.
1217
1218
1219 ~/.task/undo.data
1220 The file that contains information needed by the "undo" command.
1221
1222
1224 Copyright (C) 2006 - 2016 P. Beckingham, F. Hernandez.
1225
1226 Taskwarrior is distributed under the MIT license. See http://www.open‐
1227 source.org/licenses/mit-license.php for more information.
1228
1229
1231 taskrc(5), task-color(5), task-sync(5)
1232
1233 For more information regarding Taskwarrior, see the following:
1234
1235
1236 The official site at
1237 <http://taskwarrior.org>
1238
1239
1240 The official code repository at
1241 <https://git.tasktools.org/scm/tm/task.git>
1242
1243
1244 You can contact the project by emailing
1245 <support@taskwarrior.org>
1246
1247
1249 Bugs in Taskwarrior may be reported to the issue-tracker at
1250 <https://bug.tasktools.org/>
1251
1252
1253
1254
1255task 2.5.1 2016-02-24 task(1)