Taskbutler enriches your Todoist tasks by adding progress bars, Office365 Files and Dropbox Paper papers directly to your tasks.

Travis CodeFactor Maintainability Updates Documentation Status


  • add progress bars to task-lists in Todoist (unicode, cross-plattform)

    • Example usage: Create a new task list “File taxes” in your “personal” Todoist project. Add the label “progressbar” to the top task and always get the status of your taxes at a glance.
  • add and link a Word/Office365 template to tasks (with help of your Dropbox)

    • Example usage: Setup a letter template in Microsoft Word once and save it. Once you add the label “letter” to your Todoist task, the template gets uploaded to your Dropbox and the task get liked to Microsoft Office365. Now, by clicking the task in Todoist, Microsoft Word online opens in your browser and you can start writing.
  • add and link Dropbox Paper papers to tasks

    • Example usage: Tired of the missing task-note feature in Todoist? Add the label “paper” to a task. Now, with a click on the title, you’ll get a new Dropbox Paper with all its features just for this task.

Prerequisites and notes

Taskbutler is not associated or connected with Todoist, Dropbox, Github or Microsoft.

  1. You’ll need a Todoist premium account
  2. The Dropbox Paper and Github features require a free account at Dropbox. The Microsoft Office365 feature requires a paid Office365 subscription(or a free Microsoft Office 365 Education subscription).
  3. Taskbutler is tested on Ubuntu
  4. For optimal use, Taskbutler should run periodical on a server/computer to continuously update your tasks

Even though I never experienced any data loss, it’s nice to know thatTodoist provides a daily backup of your data.



  • Ubuntu 16 and up
  • tested with Python 3.5 and up


To install the latest taskbutler in your home, run this commands in your terminal:

cd ~
mkdir taskbutler && cd taskbutler
sudo apt-get install python3
python3 -m pip install --user --upgrade pip
python3 -m venv venv
pip install --upgrade pip
source venv/bin/activate
pip install taskbutler
cp config.ini.sample config.ini


Each feature can be disabled by leaving the corresponding labelname in the config.ini emtpy. Each feature is configured in the config.ini. Open, edit and save the file to configure Taskbutler.

If you used Taskbutler before and want to change a setting: Remember to stop Taskbutler before changing any setting and always update your existing Todoist tasks manually according to your changes before starting Taskbutler again.

Taskbutler is not aware of your changes and will mix and mess up your tasks. Changes can easily be tested by using a different/new labelname.

Setup Progress bars

Edit the config section in config.ini:

apikey =
label_progress = progressbar
Change progressbar symbols

The bar is implemented by adding ‘unicode charaters’_ to the existing text. e.g. ⬛⬛⬜⬜⬜ 33 %


To change the bar to e.g. empty/full bullets, just overwrite the characters with other characters ‘’⚫⚫⚫⚪⚪’‘.

Change progressbar seperator

To separate the task-text from the progressbar, a rare unicode character is used. To change the separator just change the line ‘’progress_seperator=‣’’ in the ‘’config.ini’’ file.


Just replace the existing character with the character of your choice. Remember to rename the separator manually in Todoist before running Taskbutler again!

Edit progressbar label

The bar added to every task with the label ‘’progressbar’‘. The label-name can be changed in the ‘’config.ini’’ file: ‘’label_progress=progressbar’’ To change the labelname after the “=”. Remember to rename the label in Todoist when renaming labels!

Setup Dropbox features

To use any Dropbox feature you need to create a Dropbox API token. You need to create an Dropbox app for that. Don’t worry, you only need to setup it once and it is only accessible for you.

Get a API key for your Dropbox(by creating a Dropbox app):

  1. Go to https://www.dropbox.com/developers/apps/create
  2. Select Dropbox API
  3. Select Full Dropbox- Access to all files and folders in a user’s Dropbox.
  4. Give it a name (doesn’t matter)
  5. Click Create app
  6. On the app settings page click Generated access token and copy the token

Setup Office365 Sync

You need:

  • an Dropbox account
  • an Microsoft Office365/office.com account
  • an .docx template you want to add by the label

Edit the config section in config.ini:

apikey =

labelname = letter
templatefile = ./templates/
dropbox_prepart_files = https://www.dropbox.com/ow/msft/edit/home/
  • apikey: add the Dropbox API key you created above
  • labelame: add the Todoist label you want to use for this feature
  • templatefile: add the path to your .docx file you want to add to your tasks (Linux style, full or relative from /tasbutler)
  • folder: add the Dropbox folder you created above
  • dropbox_prepart_files: don’t change. Needed to create the Office365 direct link

Setup Dropbox Paper


  • create a new folder in your Dropbox Paper. All papers will be saved here
  • Create an empty paper in this folder(Taskbutler only recognises folders once a paper is placed in it)
  • Edit your config.ini:

Edit the config section in config.ini:

apikey =

todoistfolderid =
url = https://paper.dropbox.com/doc/
labelname = paper
foldername = todoist
sharing = false
  • apikey: add the Dropbox API key you created above
  • todoistfolderid: don’t change. Will get set automatically by Taskbutler. ID of the Dropbox Paper folder you created above
  • url: don’t change. Needed to create the Dropbox Paper direct link
  • labelame: add the Todoist label you want to use for this feature
  • foldername: add the Dropbox Paper folder you created above
  • sharing: don’t change. Sets the created papers to “private only” (so only you, once logged into Dropbox, will be able to access it)

Start Taskbutler

source venv/bin/activate

Continuous progress-update

To continuously update your tasks run Taskbutler periodical on a server or your computer

Ubuntu Server

TODO: This section is not complete yet.

run programm every 20Min via crontab (see crontab.guru for setting time):

#! /bin/bash
# add the full path to your venv at PATH_VENV_TASKBUTLER

#activate taskbutler venv
source bin/activate

# run taskbutler
  1. save the script above on your computer
  2. adjust the PATH_VENV_TASKBUTLER
  3. remember the full path to the saved scriped
  4. type: crontab -e
  5. add a line: */20 * * * * ADD_THE_REMEMBERED_PATH_HERE

Taskbutler doesn’t need to run on a server. It is also possible to run Taskbutler on your running computer. Just start Taskbutler manually or add it to your scheduled tasks.


Taskbutler checks for updates by checking the ‘releases page’_ and leaves a message in the console.

To update:

  • See releasenotes at releases page and check for compatibility.
  • Backup your current configuration/setup-folder
  • Download release from ‘releases page’_ and overwrite files or “git pull origin” when you cloned this repository
  • Check and set all configurations. Use a different label name for testing (set ‘’label_progress’’ and create a task with the test label)


If a logfile is specified, Taskbutler logs into this file. If not, Taskbutler logs to the console only.


To activate dev-mode add to ini file:

devmode = true

Devmode doesn’t submit changes to Todoist, Dropbox or Github. Set the logging level to DEBUG to get all messages.

logfile = ./todoist.log

Built With


Please open a issue in the ‘Github issue tracker https://github.com/6uhrmittag/taskbutler/issues.

About Author

Marvin Heimbrodt - github.com/6uhrmittag