This is a time schedule report for taskwarrior.
- Hook support
- Timebox support
- taskwarrior
- in
.taskrc
:# User Defined Attributes uda.estimate.type=duration uda.estimate.label=Est
- for timebox support, in
.taskrc
:# Timebox UDAs uda.tb_estimate.type=numeric uda.tb_estimate.label=Est uda.tb_real.type=numeric uda.tb_real.label=Real
First, clone the repo:
$ git clone https://github.com/nnist/taskschedule.git
$ cd taskschedule
Install the program using setup.py:
$ python3 setup.py install
$ taskschedule
Instead of installing, you can also just run the program directly:
$ pip3 install --user -r requirements.txt
$ python3 __main__.py
- Start taskschedule:
$ taskschedule
- In a new terminal, create a scheduled task:
$ task add Buy cat food schedule:17:00
Created task 62.
- The task will now be visible in taskschedule:
ID Time Description
16
17 ○ 62 17:00 Buy cat food
18
- Start the task in taskwarrior:
$ task 62 start
- The task is now displayed as active in taskschedule:
ID Time Description
16
17 ○ 62 17:00 Buy cat food <-- highlighted
18
- Mark the task as done:
$ task 62 done
ID Time Description
16
17 ○ 17:00 Buy cat food <-- barely visible
18
$ taskschedule -s tomorrow
$ taskschedule --from today-1week --to tomorrow
Scripts in the hook directory (default: ~/.taskschedule/hooks/
) are
automatically run on certain triggers. For example, the on-progress
hook
runs all scripts starting with on-progress
, e.g. on-progress-notify.py
.
This can be used to for things like notification pop-ups, alarm sounds, push notifications, etc.
The timeboxing functionality relies on two new UDAs, namely tb_estimate
and
tb_real
. Scheduled tasks with tb_estimate
will have their completed
and pending timeboxes rendered in the Timeboxes column.
When a timeboxed task is started, its time is tracked and a progress bar
will be shown. After the timebox time is up, the task will automatically
stop, tb_real
will be incremented and the Timeboxes column will be updated.
Currently only one active timeboxed task is supported.
First go to the repo root, then run the tests:
$ python3 -m unittest
This project is licensed under the MIT License - see the LICENSE
file for details.