Deprecated: Return type of I::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 62

Deprecated: Return type of I::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 91

Deprecated: Return type of I::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 71

Deprecated: Return type of I::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 101

Deprecated: Return type of I::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 53

Deprecated: Return type of Collection::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/collection.php on line 80

Deprecated: parse_str(): Passing null to parameter #1 ($string) of type string is deprecated in /home/public/kirby/toolkit/lib/url.php on line 135
One Tap Less | Tasks at the right time

Tasks at the right time


Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/public/kirby/toolkit/lib/str.php on line 506

Warning: Trying to access array offset on value of type null in /home/public/kirby/vendors/parsedownextra.php on line 305

Deprecated: substr(): Passing null to parameter #2 ($offset) of type int is deprecated in /home/public/kirby/vendors/parsedownextra.php on line 305

Warning: Trying to access array offset on value of type null in /home/public/kirby/vendors/parsedownextra.php on line 305

Deprecated: substr(): Passing null to parameter #2 ($offset) of type int is deprecated in /home/public/kirby/vendors/parsedownextra.php on line 305

There's one thing about GTD apps I'm uncomfortable with: badges. They're such a necessary evil. There are tasks that can only be done in specific moments of the day, so it doesn't help when the app displays a task to be done at noon that can only be done after I get back home. If you rely on your GTD app, then these tasks waste the scarce space of your phone screen. We're going to fix it today.

Eric Pramono made me learn to love Due again and as he has shown before, it is possible to attach links inside Due reminders. Are we in sync? Ok, instead of using Drafts to forward our tasks straight onto our GTD app, we'll use a reminder to add it solely when we need it. This reminder will store a link to send the task whenever we mark it as completed. Let's start with Things:

Things:

due://x-callback-url/add?title=[[title]]%20at%20[[body]]%0A{{drafts://x-callback-url/create?text=[[title]]&action=Send%20to%20Things}}&x-source=Drafts&x-success={{drafts://}}

I chose this rule to start because it is the most different among all the next examples. Since Things' scheme doesn't begin with ://, Due doesn't identify it as link., so to make it actually work, I make a detour at Drafts, where it activates the default rule Send to Things. If you miss that rule, pick it here.

It is easier when you use Omnifocus, as you can skip Drafts:

Omnifocus:

due://x-callback-url/add?title=[[title]]%20at%20[[body]]%0A{{omnifocus://add?name=[[title]]}}&x-source=Drafts&x-success={{drafts://}}

Just in case you're lost in life, you can grab a rule for Firetask1 or The Hit List. As the previous cases, the first line makes the task and the second line specifies the time for Due to define the reminder.

Firetask:

due://x-callback-url/add?title=[[title]]%20at%20[[body]]%0A{{firetask://addTask?subject=[[title]]}}&x-source=Drafts&x-success={{drafts://}}

The Hit List:

due://x-callback-url/add?title=[[title]]%20at%20[[body]]%0A{{thehitlist:///inbox/tasks?method=POST&index=0&title=[[title]]}}&x-source=Drafts&x-success={{drafts://}}

Perhaps you're a minimalist folk, or just a hipster, and prefers to use Clear or Ita, which brings you the possibility to select a list2 to add your task when the time comes. We can accomplish that easily with the new [[line]] tags from Drafts.

Clear:

due://x-callback-url/add?title=[[line|2]]%20at%20[[line|3]]%0A{{clearapp://task/create?listName=[[line|1]]&taskName=[[line|2]]}}&x-source=Drafts&x-success={{drafts://}}

Ita:

due://x-callback-url/add?title=[[line|2]]%20at%20[[line|3]]%0A{{ita://addItem?list=[[line|1]]&items=[[line|2]]}}&x-source=Drafts&x-success={{drafts://}}

In both actions, first line corresponds to the name of the list, while the second names the task and the third points the time for Due. With only a few modifications, any of the actions described here may contain an additional line to include more informations or you may cut a line if you use a specific time often, as my after work duties after 7 pm.

By the way, I've only testes this rule at Things, Clear and Ita, so if something goes around, leave me a message at App.net or Twitter.


  1. Even though barely no one uses Firetask, I found its URL scheme as one of the best among GTD apps. While adding a task, you can also add a description, due date, priority, project and category. You can check its docs in the bottom right of the support page

  2. You can select a project in Firetask as well.