Better Things Shortcuts (finally!)

Things has new shortcuts actions!

Notably, we can now query the Things DB and not only create tasks.

I expect to use some of those capabilities to hold me accountable during my reviews (eg number of tasks in any, not to many goal-projects, …)

Also, I might automate moving all tasks tagged with “Evening” to “This Evening” shortly after midnight.

As we could already do all of this with JXA/Applescript, the benefit (for me) will be mostly on phones/tablets. And of course in running the same scripts/automations on all platforms.

Curios to hear what other Things user will use those new capabilities for!

Yikesy, looks like an AppleScript dictionary stuffed into Shortcut Actions. Can’t decide if this is heroic or terrible; probably bit of both.

Still, interesting heads-up. Tx.

On seeing this, I immediately built the checklist template feature I’ve been wanting from Things for years. Here’s the shortcut:

I have template projects in an area called Templates, and this shortcut presents them in a list. When I choose one, it duplicates it, removes it from the Templates area, and gives it a start date of Today.

Previously I had a super fragile system involving hardcoded project IDs and x-callback-urls, so this is a huge upgrade! I love the filtering actions in particular, and I’m so happy I can take things further if I need to (ba-dum tsss).


I currently have a different system for “recurring” projects (which are very similar to check list template but maybe they are not the same):

I just have a last task, to duplicate the project, uncheck all the tasks and clean it up.

The disadvantage of my method is that it takes more work. The advantage is that my “templates” stay alive/up to date. I often found myself editing the instance, but then forgetting to update the template with the recent changes.

What is your experience with keeping templates up to date?

EDIT: I’ve replaced the link with an updated version that doesn’t screw things up if you haven’t completed a project today. The previous version would open all closed tasks in the topmost project if it couldn’t find any completed projects.

I think your idea for repeating projects is better than mine, so I built a shortcut for it:

This shortcut lets you pick a project that was completed today, duplicates it, and resets it to incomplete.

To answer your question, I handle it pretty badly. I often find myself losing changes or having to manually diff the template and duplicated project, which is a sign that things can be improved. I think I’ll be trying your way for a while instead, and we’ll see how it goes!

Uh, nice, thx!

I’m gonna steal this shortcut!

I might change it so that it is specific to the project.
The idea is: tap on shortcut link in last task, shortcuts completes the old project, create a new one and then shows it in things.

When I get around to it, I’ll post it here.

1 Like

So here we are :slight_smile:

When run without input, it prompts for a project and adds a special task to it.

The special task contains a link to this shortcut with the project ID included. When run this way, the project gets duplicated, all dates are stripped and the original project is completed.

I have added a special syntax to allow setting dates for the duplicated project, but sadly the natural syntax parsing of Things within shortcuts is very limited compared to what you can do within the app.
It is just a json in the note of the special task, and it is explained in the shortcut.
It is not very useful atm as setting dates should be relative. I’ll wait and see what Things’s support tells me wrt to the natural language parsing in shortcuts. While it would be possible to do this on my own (as in own syntax and own parser), I think it is too cumbersome to do this in shortcuts.

Edit: Things’s support clarified that the natural language parsing in shortcuts is the natural language parsing of shortcuts. While this makes sense, my hope was that they pass the string to Things and do the parsing in-app.
Hmmm, so now I am thinking about a very simplified syntax for relative scheduling.

1 Like