Future tasks? (wait: )

Added by Timothy Bourke 241 days ago

Is there a way of adding tasks that don't become active until a future date?

For instance, if my passport needs to be renewed on June 1, 2015, can I add a task that appears on May 1, 2015?

Can this be done with the recur feature?

Tim.


Replies

RE: Future tasks? - Added by Paul Beckingham 241 days ago

Hi Tim, welcome!

There is a way to do what you are looking for. A task can exist in several states, (pending, done, deleted ...) including "waiting". Here is how it works:

$ task list
No matches.

$ task add Renew passport wait:5/1/2015
Created task 1

$ task list
No matches.

$ task waiting

ID Project Pri Wait     Age    Description   
 1             5/1/2015 9 secs Renew passport

1 task

The task was added with the additional "wait:..." attribute. This makes the task not visible until May 1st 2015. The task is still there, and when May 1st 2015 comes around, the task will flip back to the pending state and become more visible.

While the task is waiting, it can still be listed with the "waiting" command, and can still be modified and otherwise manipulated - it just doesn't show up on regular "list" type reports.

This wait feature is intended to be used to hide tasks that will not be due for some time, and therefore not clutter up the more immediate "what's next" lists - which is I think exactly what you wanted.

Paul

RE: Future tasks? - Added by Federico Hernandez 241 days ago

Timothy,

that could be done with the wait attribute.

$ task add wait:5/1/2015 due:6/1/2015 Renew passport

It will then disappear from the normal reports until May 1. To be able to list tasks with a set wait attribute you use the waiting command:

$ task waiting

/Fredde

RE: Future tasks? - Added by Timothy Bourke 241 days ago

Great, that's exactly what I was after.

Thank you Paul and Fredde!

RE: Future tasks? - Added by David Patrick 241 days ago

When date-references get a bit more sophisticated, you will also be able to go

$ task add Renew passport due:6/1/2015 wait:-2m

to have this task appear on April Fools Day 2015, giving you two months warning.


You should still find this task listed in any query that includes it explicitly, as in

$ task ls passport

and maybe even

$ task long due.after:2012

To include waiting tasks in the interactive ui reports, visibility of waiting tasks will be toggled with the (z) key.
At the cli, include waiting tasks using the "-z" flag, like

$ task -z list

To see the Waiting tasks report in (upcoming) interactive mode, hit the (W)aiting key,
At the cli, the report can simply be invoked with

$ task waiting

To mark a task as waiting interactively, select the task(s), hit (w) and a prompt will ask

mark (4) selected tasks as wait:-default- >

a default wait-value (eg "later" or "+1w", as set in .rc) will be chosen by hitting just <enter>, otherwise
enter the date, date-reference or a quoted text string
and hit <enter>
If selected tasks already have a wait-value, hitting (w) and then <enter> will clear it.

Command-line like most other attributes, but allowing more than one data type.

$ task ID(s) wait:< date | dateref | string >

and is cleared with

$ task ID(s) wait:< enter >

The -w flag will be used to assign the default wait-value to a task, or clear it, if there already is one

$ task -w add foo        # creates      ID foo wait:later

and

$ task -w ID pri:l        # would clear   "wait:+1w",

if it existed, assign it if it didn't, change the priority
and explain what's happening in a nice clear dialog.


Planned enhancements to the command structure will enable a set of records to be chosen and then actions performed against that set,
so that a project or tasks tagged with something specific, can be delayed or ignored using a command like

$ task proj:fubar +Baz update wait:+2w ann:"brainstorm and regroup"

to have everything tagged with +Baz and assigned to project:fubar disappear for two weeks, with an annotation explaining why

RE: Future tasks? - Added by David Patrick 241 days ago

Paul Beckingham wrote:

A task can exist in several states, (pending, done, deleted ...) including "waiting".

.. although recent revelations suggest that the state status:waiting may be unnecessary, and therefor dropped,
all of the examples listed on this page should still behave as indicated.. eventually.
The actions currently triggered by status:waiting will use instead wait:<not-nul>
This is only a clarification of the underlying mechanics, nothing to worry about, read, on.

RE: Future tasks? (wait: ) - Added by Gleb Javorsky 211 days ago

Hello,

I have as tasks "watch film Surrogates", "watch house.m.d season 6" etc. I'd like to hide those tasks and see them only when I, for example, do "task waiting +video".
Please advice, what should I use as argument for wait: ? I don't want to provide here a definite date. Is there already wait:later implemented?

also, maybe that will be interesting for you:

>task 8 info
Name Value
ID 8
Status Pending
...

>task 8 status:wait
Modified 1 task

>task 8 info
Name Value
ID 8
Status Waiting
...

>task waiting
No matches.

>task 8 info
Name Value
ID 8
Status Pending
...

RE: Future tasks? (wait: ) - Added by David Patrick 211 days ago

Gleb Javorsky wrote:

I have as tasks "watch film Surrogates", "watch house.m.d season 6" etc. I'd like to hide those tasks and see them only when I, for example, do "task waiting +video". Please advice, what should I use as argument for wait: ? I don't want to provide here a definite date. Is there already wait:later implemented?

"task wait:something" functionality may be experiencing some growing pains, and I'm not sure how much has been implemented and how much cruft from the older way remains,
Here's how it should work;

$ task 55 wait:2010-02-21

should cause that task to be hidden until the date

$ task 55 wait:later

should cause that task to be hidden indefinitely, unless found by an explicit query
(any not-nul value should hide it from view, so "task 55 wait:aliens-landing" would work as well)

$ task 55 status:wait

should no longer work (use of status for wait = deprecated)

The "wait:non-date" feature should work for you, for now, but a planned feature (user-defined-exclusions) is actually closer to what you need here.
With user-defined exclusions in place, you'll be able to identify any attribute that will hide the task under most circumstances.

(in .taskrc)
exclude=tag:video

should be all you will need to keep your whole TV viewing schedule from cluttering up your actual tasks, eventually.
Till then, using "wait:something", you should be able to see your shows with something like

$ task long +video

or

$task list wait:later

or

$task ls house.m.d

RE: Future tasks? (wait: ) - Added by Gleb Javorsky 210 days ago

Thank you for reply, David.

For me works:
$ task 55 wait:2010-02-21
$ task 55 wait:tomorrow

But I get:
$ task 55 wait:later
"later" is not a valid date.

My version of TW is 1.8.5. Maybe this is the reason.
Anyways I'll be waiting for User-defined Exclusions in 2.1.x - Wakizashi.

RE: Future tasks? (wait: ) - Added by Paul Beckingham 210 days ago

Hi Gleb,

Task 1.8.5 is the latest release, so this works:

task 123 wait:YYYY-MM-DD
task 123 wait:tomorrow
task 123 wait:friday
task 123 wait:31st

But the following:

task 123 wait:later

is not yet implemented. Don't forget that your setting of the config variable "dateformat" determines how that very first example is parsed.