TMTDT: The Missing ToDoist Tools 🎉
As the name implies, TMTDT started as a small collection of scripts that I used to augment ToDoist with features they can’t/won’t implement. It’s grown quite a bit since then.
Those scripts started as simple idea and quickly morphed into a creaky, but essential, tool. As more features were added it continued too morph into an unmaintainable mess. Untangling that mess was on my todo list but never a high priority partly because of issues TMTDT was designed to solve 🤦.
I lost my day job right as the spring of 2020 shelter in place order was put in place. TMTDT is certainly not how I thought early summer was going to be spent, but a useful way nonetheless.
One significant chunk of my newly-freed time and a lengthy re-write later, I had something that looked promising. After a lot more work and some tinkering, I’ve got something that feels like far more than a hacky tool for personal use.
I had several scripts that I would run on a regular basis to do things like:
- set up projects with multiple different types of templates based on things like the date
- fix typos i routinely made while quick adding tasks.
- re-schedule certain daily tasks if they had been missed
No joke, I’d spend a lot of time fixing typos, expanding ideas for a project into proper sub-tasks and sections and other routine administrative work:
In that specific week, I kept track of how 37 hours were spent. Of those 37, about 4 were spent on general Inbox review / process. At least 3 of those 4 were spent directly on task triage. 3/37 is about 8%. With no full time day job - hire me - that’s a fairly representative breakdown for a given week; some time planning the things, lots of time doing the things.
What would you do with 8% of your time back each week?
We all know that I’m not getting any free time back from this.
I’ve written this software to suit my needs, but the decision to make it a bit more robust and featured before release is because I’ve noticed a few ‘new’ tools to better augment ToDoist:
And I’m genuinely curious about how other people will user it. I am always appreciative when somebody finds a smart way to save some time and shares their trick. I’m hoping somebody figures out how to use this tool in a way that I can learn from.
An announcement post for TMTDT is now on /r/todoist.
The code and some documentation can be found on GitHub.
The demo gif at the top of this post illustrates a simple example, but more through (read: contrived) examples are included in the jobs directory.
The short version:
Scriptable tools for building jobs to manage a TooDoist account
Slightly longer version:
Architecture inspired by Elastic Search’s Curator. Functionality built for ToDoist.
The full set of resources for the demo are here, but the ‘meaningful’ parts are below:
# apply these labels... labels: - "at_work" # to tasks that... filters: - filter: # Any task that... task: # ... ends in 'at work' or 'the office' content: match: '(at work$|at the office$)' option: # remove portions of task content that match the query mutate: Yes # *AND* # ... has no labels labels: absent: Yes # *AND* # ... is in this project projects: name: match: 'Inbox'
# Create the projects... projects: # ... as child projects of `Garage Sale 🏚️💵` - parent: project: Garage Sale 🏚️💵 # ... populated with template tasks/sections template: file: ./templates/garage-sale.csv # where the name of the projects to create comes from ... from: filters: - filter: # Any task that... task: content: match: "." option: delete: yes projects: # ... is in this project name: match: 'Garage Sale 🏚️💵'