NAME

Taskwarrior::Kusarigama::Plugin::Renew - create a follow-up task upon completion

VERSION

version 0.8.0

DESCRIPTION

The native recurring tasks in Taskwarrior create new tasks after a given lapse of time, no matter if the already-existing task was completed or not.

This type of recurrence will create a new instance of the task upon the completion of the previous one. This is useful for tasks where having hard-set periods don't make sense (think 'watering the plants').

Note that no susbequent task is created if a task is deleted instead of completed.

The plugin creates 4 new UDAs. renew, a boolean indicating that the task should be renewing, and rdue, rwait and rscheduled, the formula for the values to use upon creation/renewal.

renew is optional and only required if none of the r* attributes is present.

Since the waiting period is often dependent on the due value, as a convenience if the string due is found in rwait or rscheduled, it will be substitued by the rdue value. So

$ task add rdue:now+1week rwait:-3days+due Do Laundry

# equivalent to

$ task add rdue:now+1week rwait:now+1week-3days Do Laundry

Why -3days+due and not due-3days? Because it seems that task does some weeeeeird parsing with due.

$ task add project:due-b Do Laundry
Cannot subtract strings

(see https://bug.tasktools.org/browse/TW-1900)

Date calculations

This plugin adds a trinary operator to all of the r* attributes.

task add do the thing rdue:"eom - now < 1w ? eom+1m : eom"

In this example, we want to do the thing at least once a month, but if we do it in the last week of the month, we're satisfied and set the new deadline at the end of next month.

$ task add water the plants rdue:now+5d rwait:now+4d

AUTHOR

Yanick Champoux <yanick@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018, 2017 by Yanick Champoux.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 150:

Unknown directive: =head