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

Quick update: Things’ Shortcuts actions continue to be awesome!

I’ve made two automations that give me persistent Evening tasks. By default Things moves Evening tasks into the Today list every night, and my brain wants them to stay in the evening so I made it happen. It’s actually pretty simple:

The first automation runs at 23:30 every night and tags all Evening tasks with an “Evening” tag. I had to manually create the tag in the Things app before Shortcuts would let me use it.

The second automations runs at 00:30 and moves all tasks tagged with “Evening” to the Evening list for the new day. Then it removes the tag.

All in all, it took 10 minutes to set up and it was super easy!

Haha, nice!

I already have most of my recurring tasks tagged with morning or evening, so I could use your idea to automate this!

My (only partially automated) version of this is when I stop my alarm, my today list filtered by the morning tag opens up. I then drag all morning tasks to the top. One of those tasks has a link to open today filtered by the evening task (this step could be automated).

Hmmm, not sure, if I can automate pulling the morning tasks to the top.

(The threefold today - morning, during the day, evening - is the only thing that makes me open OmniFocus sometimes and consider switching back for five to ten minutes.)

1 Like

You can automate this!

This shortcut finds items in your Today list that are tagged “Morning” and moves them to the top of the Today list. It works because Things puts new items at the top of your Today list, so I just removed the start time from the tasks and then added it back.

In my testing it works, but let me know if it falls down anywhere. I hope that helps!

Ah, the added to the top trick! Good one! I will try to save the start time so I don’t lose reminders, but otherwise works perfectly, thank you!

1 Like