There’s something to be said for the idiom “if you want something done right, do it yourself.” In the world of software, “right” is perhaps not the word to use, as it’s more about personal preference than anything, but the end result is still the same. That’s why I finally threw Astrid out on its virtual butt and created my own todo list system.
(Turn down the audio on the video quite a bit, or you will get a heart attack when the Say actions trigger)
I cover Tasker quite a lot, for the simple reason that it’s capable of doing the work of hundreds of other single-purpose apps, hence I could cover hundreds of ways of using it. When I first started using Tasker, it confused me to no end. I got it because the combination of Tasker and Astrid allowed me to create intelligent todo list notifications that would trigger on events other than just time. Over the months that followed I experimented with different ways of triggering my tasks, until I settled down on two “special” todo item types: Morning and Shopping. I get notified of any Morning items when I wake up, and any Shopping items when I leave the house. On top of that I have my normal calendar that I use for time sensitive events, and a “dumb” todo list with items that I don’t need alerts for, normally things like ideas for articles to write or apps to check out.
Back then, this system was like magic to someone who’d been using an iPhone for too long. It also introduced me to Tasker, which I kept playing with and learning to do more with. The more I integrated Tasker into everything, the more annoyed I got at the Astrid system that once impressed me.
First of all, the Astrid/Tasker combo works only one way: Tasker can trigger Astrid. This means that Tasker can set off Astrid alerts, but Astrid alerts can’t set off Tasker tasks, at least not in any practical way. This means that I can’t e.g. incorporate a a spoken notification of new Astrid items in my existing Tasker morning message, the one that already tells me weather, how long I slept, and several other things. It also means that I can’t pass data from Astrid onto widgets, nor can I create custom notifications for Astrid events using Tasker.
These issues are however minor compared to the real problem with Astrid: Bugs. The only thing more consistent than the developer’s tendency to ignore emails is the introduction of new bugs into the app. Things like the widget becoming bugged when you check off items in it, sync not working properly, emailed tasks suddenly disappearing, and duplicate tasks appearing at will. When the app recently started forgetting list tags (which are essential for my Morning and Shopping systems to work) at random, I finally had enough of trying to use an app from a developer that doesn’t give a rat’s ass about anything.
One advantage I have now that I didn’t have when I first started using Astrid is that I know Tasker very well. Well enough to more or less create whatever I need with it, including a todo list system. My goal in creating the system was very simple: Create an replacement for the parts of Astrid that were unique, meaning Tasker integration. As such, the system complements my calendar and a widget-based todo list, the latter of which has all the todo items that I don’t need to be alerted of. That leaves the Morning and Shopping items.
I won’t go into exact details on how I set this up, as it’s frankly too far above beginner level to be tutorial material. I will however answer any specific questions on how the technical side works, if anyone should have any. Other than that, here’s how the system works, as demonstrated by the video at the top:
- Data input is done via a Tasker Scene (custom interface). It has a text input field for inputting the todo item title, buttons to select Morning or Shopping tags, a Save button, a confirm button to close out of the scene, as well as two text fields that list the contents of the two lists. The Save button saves the text in the text input field into one of two text files, one for each tag. Tapping one of the lists opens up the file in a simple text editor in case I want to edit it, while holding down on the list gives me the option to clear it. I didn’t create a system for checking off single items as both of these lists are things that I tend to clear all at once, and in the rare case I don’t, I can edit the files. The flashing you see when the scene disappears and reappears is a lazy way of updating/resetting all the elements at once by destroying and they showing the scene, with a one second delay between those to avoid it being too quick for its own good.
- The Shopping list is read into a variable as part of my Outside profile’s start task. If it contains any items, it plays a notification message saying “You have new items in your shopping list” and puts a notification with the list contents in my notification list. It also sends the contents of the list to a Minimalistic Text widget on my Widgetlocker lock screen, thus allowing me to check the list without ever unlocking my phone. The Widgetlocker list disappears when I come home, regardless of whether there are still items in the list. If the list contains no items, it does nothing.
- The Morning list triggers when my sleep mode is deactivated, which happens automatically when I unplug my phone from AC charging in the morning. If the item contains any items, it adds a message to my existing morning message, and puts a notification with the contents in my notification list. If not, nothing happens.
Compared to the Astrid system I used prior to this, the new DIY system has several advantages:
- More reliable, because, you know, Astrid isn’t.
- Being Tasker based means Tasker has access to the data (duh). This means that Tasker can change its behavior depending on the list content, i.e. include a message in my morning message and play a notification audio file when there are items in my Shopping list.
- Customized interface with only the buttons and features I need, not heaps of priority tags and whatnot that only end up annoying me.
- Ability to send and remove data from a widget.
- Separation from my “dumb” todo list. I have no need to see listing for “buy bananas” in between article ideas in my todo list widget, which was a necessary evil with Astrid. Having it separate means it’s out of sight, out of mind until I get the notification.
- Performance. This method doesn’t require anything additional to run in the background, only the existing Tasker process. This isn’t really noticeable in practice, but I might as well mention it.
- Sync. Not only is Astrid’s sync bugged, you also cannot control certain types of syncing from outside sources (Tasker). I don’t currently sync my DIY todo list, but should I ever need to, I just need to make Dropsync sync the text files, a system I’m already using for other things and that works perfectly.
At the end of the day, this isn’t exactly a solution that most people would go for. It isn’t really very hard to do if you know Tasker, but there are multiple scenes, tasks, and profiles that all work together in a way that is easily broken by a small mistake. I’m very pleased with how it worked out though, and this is tailored for my needs after all. I guess it’s kinda ironic that the app that made me start using Tasker, Astrid, eventually got replaced by it.



















Your Tasker articles are so motivating! No way better to learn how to work with Tasker than by tinkering with it. Practice, practice, practice. I will give this one a try myself.
Thank you! Let me know if you run into any problems.
I’m trying to create a similar to-do manager but I’m not sure how to set the variables. How do I create a variable that increases each time I add a new one? Not sure I asked that correctly
I use text files stored locally on the device. There’s a Write File action which writes to text files, and it has an Append option you can check that adds new info to the end of the file. You can then Read File into a variable when you need it. Using physical files has a couple of advantages, like being able to use the Open File option to prompt the text file to open in whatever text editor you’re using, giving you a simple way to edit it. You can also store the files in a directory and sync them to Dropbox with Dropsync, which gives you the ability to sync your todo tasks between devices, add items on your computer and have it appear on the device automatically, and so on
Perfect (especially since I use DropSync), I didn’t think of that. Only issue is formatting, all of the items are coming up on the same line. How do I get them to separate or, even better, be bullet points? Is there a way to designate were the change is going in the file?
Find a texbox that allows you to type in a lineshift. Type in ONLY the lineshift, then hold down on the text field, select all, copy. Paste it at the end of the variable you use to add to the text filed. Example:
You have a text box you type stuff into. Normally the action for that text field would be Set Variable %Todoitem (or whatever name you use) to %new_val. You then have a save/ok button that does Write File (append) todo.txt, text: %Todoitem[pasted lineshift]. To get bullet points, you could do *%Todoitem[pasted lineshift]. It would then append anything you input on a new line, starting with a *
Worked perfectly! Thank you
Another quick question (I’m needy). How do can I make the textbox be blank when the variable isn’t set rather than displaying %Variable?
Ask away, I’m here to help
I normally use Set Variable %Todolist to [empty space] IF %Todolist matches *Todolist*. %Todolist will match %Todolist when it’s blank, and set it to an empty space, making the text box display an empty space.
If you do want to stick with variables only though, you can just do like this:
Set Variable: %Todo
Text: %Todo
%Newitems
In other words, have it write the existing variable first when you write the updated one
I dread having to use scenes so a solution like yours wouldn’t be feasible for me.
Anyhow, I’m using Tasker to make Astrid behave better (at least regarding syncing) by sending an intent to force sync at regular intervals (and when connected, to avoid locks):
com.todoroo.astrid.actfm.SYNC
Just notice that the package is com.timsu.astrid and the target is a service.
By the way, when you talk about ‘no practical way’ to set up Tasker tasks do you mean [Events, UI, Notification]?
Yep, that’s exactly what I was referring to
Hey, I have figured most of it out, though it was a lengthy process. I have two questions though that are pretty closely related.
The first is that i get an error when I try to open the list for editing from another program. I have emailed Pent, but I wanted to get your take as well. It says that I don’t have the appropriate program to open up the file that Tasker made (it has no extention).
Also, when I go behind the scenes and edit the to do list from a file manager, I can’t get the scene to refresh the list. How do you go about that?
I already replied to you on the Tasker forum 2 days ago regarding what you did wrong
Also, the entire todo list is explained here: http://www.pocketables.com/2012/09/beginners-guide-to-tasker-part-3-scenes.html
However, this system is extremely inefficient and outdated compared to my V2, which will be “coming out” as an example in part 7 of the guide. Some day
Hey, thanks for the repsonse. I didn’t see the reply until just now. It works like a charm. Thanks for the help, and especially for the great ideas.
I’ve been reading a variety of your articles for the last week and I have to say I’m impressed with what you’ve done with Tasker. You’ve given me ideas I would never have been able to fathom before.
However, I’m not a fan of completely reinventing the wheel. I was wondering if you would share your profiles/projects?
Thank you! Unfortunately, I rarely provide any files for download, for several reasons. First off, most of what I have is so deeply integrated into everything else (i.e. a launch task is a button in another scene) that it would be like trying to to take a piece of bread and hand you the flour from it. Second, Tasker changes from time to time, and I’m not even using the latest version myself because of fixes that turned out to just break too much for me, and if you havent made it from the ground up, you dont know how it works well enough to fix it.
Great article, I was attempting to mess with Astrid and Tasker for location based to-do notifications and found that after i downloaded Astrid i never could find Astrid in either the plugin section or the 3rd party section of Tasker. After some googling i came across this. So i went into building my own, it was easier than I expected, and got me actually using arrays.
I plan on purchasing a Sony Smartwatch and taking a close look at your articles on that.