autodoist/README.md

117 lines
5.3 KiB
Markdown
Raw Normal View History

2020-05-21 13:06:31 -04:00
# Autodoist
2014-03-09 23:55:47 -04:00
2020-05-30 09:34:19 -04:00
This program adds three major functionalities to Todoist to help automate your workflow:
2020-06-13 12:27:15 -04:00
1) Assign automatic next-action labels for a more GTD-like workflow
- Additional posibilities: label tasks based on a start-date or hide future tasks based on due date
2020-05-30 08:46:19 -04:00
2) Enable regeneration of sub-tasks in lists with a recurring date
3) Postpone the end-of-day time to after midnight to finish your daily recurring tasks
2020-05-13 16:35:07 -04:00
If this tool helped you out, I would really appreciate your support by providing me with some coffee!
<a href=https://ko-fi.com/hoffelhas>
2020-05-15 15:35:47 -04:00
<img src="https://i.imgur.com/MU1rAPG.png" width="150">
2020-05-13 16:35:07 -04:00
</a>
2020-05-21 13:06:31 -04:00
# Requirements
2014-11-15 14:58:01 -05:00
2020-03-30 05:37:10 -04:00
* Python 3.8
* ```todoist-python``` package.
2014-11-15 14:58:01 -05:00
2020-05-21 13:06:31 -04:00
# Automatic next action labels
2020-05-09 16:48:50 -04:00
The program looks for pre-defined tags in the name of every project and parentless tasks in your Todoist account to automatically add and remove `@next_action` labels.
2020-05-09 16:48:50 -04:00
Projects and parentless tasks can be tagged independently from each other to create the required functionality. If this tag is not defined, it will not activate this functionality. The result will be a clear, current and comprehensive list of next actions without the need for further thought.
2020-03-30 05:37:10 -04:00
2020-05-30 08:46:19 -04:00
See the example given at [running autodoist](#running-autodoist) on how to run this mode. Make sure that the label exists in your Todoist before running. Todoist Premium is required in order to use labels and to make this functionality possible.
2020-06-13 12:27:15 -04:00
## Sequential processing
2020-05-12 17:29:56 -04:00
2020-06-13 12:27:15 -04:00
If a project or parentless task ends with `--`, both the parentless tasks and its sub-tasks will be treated as a priority queue and the most important will be labeled. Importance is determined by order in the list.
![Serial task](https://i.imgur.com/SUkhPiE.gif)
2020-06-13 12:27:15 -04:00
## Parallel processing
2020-05-21 13:06:31 -04:00
2020-06-13 12:27:15 -04:00
If a project or parentless task name ends with `//`, both the parentless tasks and its sub-tasks will be treated as parallel. A waterfall processing is applied, where the lowest possible sub-tasks are labelled.
2020-03-30 05:37:10 -04:00
![Parallel task](https://i.imgur.com/NPTLQ8B.gif)
2020-06-13 12:27:15 -04:00
## Added labelling flexibility
2020-05-21 13:06:31 -04:00
2020-06-13 12:27:15 -04:00
If a project ends with `-/`, all parentless tasks are processed sequentially, and its sub-tasks in parallel.
[See example](https://i.imgur.com/uGJFeXB.gif)
If a project ends with `/-`, all parentless tasks are processed in parallel, and its sub-tasks sequentially.
[See example](https://i.imgur.com/5lZ1BVI.gif)
Any parentless task can also be be given a type by appending `//` or `--` to the name of the task. This works if there is no project type, and will override a previously defined project type.
2014-11-15 14:38:44 -05:00
[See example 1 with a parallel project](https://i.imgur.com/d9Qfq0v.gif)
[See example 2 with a serial project](https://i.imgur.com/JfaAOzZ.gif)
2020-06-13 12:27:15 -04:00
## Start/End date enhanced experience
Two methods are provided to hide tasks that are not relevant yet.
- Prevent labels by defining a start-date. The label is only assigned if this date is reached. A start date can be added to a task by adding 'start-date=DD-MM-YYYY'.
[See an example of using start-dates](https://i.imgur.com/WJRoJzW.png).
- Prevent labels when the due date is too far in the future. Simply define how many days, and the label is only assigned if the due date is less than that amount. The amount can be determined by the argument '-hf NUMBER_OF_DAYS'.
[See an example of the hide-future functionality](https://i.imgur.com/LzSoRUm.png).
2020-05-21 13:06:31 -04:00
# Recurring lists
2020-05-30 08:46:19 -04:00
The program looks for all parentless tasks with a recurring date. If they contain sub-tasks, they will be regenerated in the same order when the parentless task is checked. Todoist Premium is not required for this functionality.
2020-05-09 14:26:56 -04:00
![See example](https://i.imgur.com/WKKd14o.gif)
2020-05-30 08:46:19 -04:00
# Postpone the end-of-day
You have a daily recurring task, but you're up working late and now it's past midnight. Todoist will automatically mark it overdue and when you check it, it moved to tomorrow. After a good nights rest you can't complete the task that day!
By setting an alternative time for the end-of-day you can now finish your work after midnight and the new date will automatically be corrected for you. Todoist Premium is not required for this functionality.
![See example 1](https://i.imgur.com/tvnTMOJ.gif)
2020-05-21 13:06:31 -04:00
# Executing Autodoist
2014-11-15 14:38:44 -05:00
You can run Autodoist from any system that supports Python.
2014-11-15 14:38:44 -05:00
2020-05-21 13:06:31 -04:00
## Running Autodoist
2014-11-15 14:38:44 -05:00
2020-05-30 08:46:19 -04:00
Autodoist will read your environment to retrieve your Todoist API key and additional arguments. In order to run on Windows/Linux/Mac OSX you can use the following commandlines.
If you want to enable labelling mode, run with the `-l` argument:
2014-11-15 14:38:44 -05:00
2020-05-30 08:46:19 -04:00
python autodoist.py -a <API Key> -l <LABEL_NAME>
2020-05-30 08:46:19 -04:00
If you want to enable regeneration of sub-tasks in recurring lists, run with the `-r` argument:
2020-03-30 05:37:10 -04:00
python autodoist.py -a <API Key> -r
2020-05-30 08:46:19 -04:00
If you want to enable an alternative end-of-day, run with the `-e` argument and a number from 1 to 24 to specify which hour:
2020-03-30 05:37:10 -04:00
2020-05-30 08:46:19 -04:00
python autodoist.py -a <API Key> -e <NUMBER>
These modes can be run individually, or combined with each other.
2020-03-30 05:37:10 -04:00
2020-05-30 08:46:19 -04:00
## Additional arguments
2020-03-30 05:37:10 -04:00
2020-05-30 08:46:19 -04:00
Several additional arguments can be provided, for example to change the suffix tags for parallel and sequential projects:
2020-03-30 05:37:10 -04:00
2020-05-30 08:46:19 -04:00
python autodoist.py --p_suffix <tag>
python autodoist.py --s_suffix <tag>
2020-05-24 12:10:06 -04:00
In addition, if you experience issues with syncing you can increase the api syncing time (default 5 seconds):
2020-03-30 05:37:10 -04:00
2020-05-09 12:15:46 -04:00
python autodoist.py --delay <time in seconds>
2020-05-30 08:46:19 -04:00
For all arguments check the help:
python autodoist.py --help