App for the milk - Documentation

App for the milk - Documentation


You can download the latest version of app for the milk here: download


After you downloaded the application simply doubleclick the file and follow the instructions.

If your computer prompts you to select an application to open the file with, you do not have the Adobe Air runtime installed. You can get it here: Adobe Air dowload


Adding tasks

In order to add a task simply click on the button in the upright corner and a prompt will appear which lets you input a new task. The default list to which the task will be added can be changed in the settings.

note: The rtm API works in a way that it searches the name of a new task for a due date and saves this date if it finds one. So if I put in “take out the trash today” the newly added task will have today as its due date. This will also work for other types of dates like 2.14.2009 etc.

Moving and deleting tasks

Tasks can be moved by selecting tasks and then pressing the arrow button and selecting a list to which the tasks should be move.

Deleting tasks works by selecting tasks and clicking on the delete button.

Editing tasks


To change the priority simply click on the priority indicator on the left of the task.

Due date

The due date can be changed by double clicking on the right corner of the task where it says “due” or the current due date.


In order to change the name, double click the task to enter the detail view. Then again double click the name of the task to edit it.

URL, Estimate, due date

These properties of a task can be edited in the info tab of the deail view.


Tags can be edited in the info tab of the detail view.


Notes can be edited in the notes tab of the deail view. In order to edit a note just double click in the text and it will become editable.

Repeating tasks

This feature is not yet implement but planed. If a task is repeating the app will only display the most recent instance.


searching in the application works very similar to the web application, although not all the features are yet implemented.

Advanced search methods

These are all advanced search methods that are currently implemented. They should all work just like on the rtm website. The documentation on each function is also copied from the rtm website.

Operator Definition Example Meaning
list: Used to specify list name. list:Work
list:Bob’s Homework
Tasks in Work list.
Tasks in Bob’s Homework list.
priority: Used to specify priority. priority:1
Tasks with priority 1.
Tasks with no priority.
status: Used to specify task status. status:completed
Tasks that have been completed.
Tasks that are incomplete.
tag: Used to specify tag. tag:bananas Tasks tagged with bananas.
tagContains: Used to specify a partial tag. tagContains:project Tasks where the tag contains project.
isTagged: Used to specify whether a task is tagged. isTagged:true Tasks that have been tagged.
isRepeating: Used to specify whether a task is repeating. isRepeating:true Tasks that repeat.
name: Used to specify task name. name:phone Tasks containing phone.
noteContains: Used to specify note contents. noteContains:monkey Tasks with notes containing monkey.
hasNotes: Used to specify whether a task has notes. hasNotes:true Tasks that have notes.
due: Used to specify due date. due:tomorrow
Tasks due tomorrow.
Tasks with no due date.
dueBefore: Used to specify due before date. dueBefore:today Tasks due before today (i.e. overdue).
dueAfter: Used to specify due after date. dueAfter:sunday Tasks due after Sunday.
completed: Used to specify completed date. completed:today Tasks completed today.
completedBefore: Used to specify completed before date. completedBefore:1/1/2007 Tasks completed before 2007.
completedAfter: Used to specify completed after date. completedAfter:31/12/2006 Tasks completed from the start of 2007.
added: Used to specify added date. added:today Tasks added today.
addedBefore: Used to specify added before date. addedBefore:1/1/2007 Tasks added before 2007.
addedAfter: Used to specify added after date. addedAfter:31/12/2006 Tasks added from the start of 2007.
timeEstimate: Used to specify time estimate. timeEstimate:1 hour
timeEstimate:> 1 hour
timeEstimate:< 1 hour
Tasks with a time estimate: equal to, greater than, and less than 1 hour.
postponed: Used to specify number of times the task has been postponed. postponed:3
postponed:> 3
postponed:< 3
Tasks that have been postponed: exactly, more than, and less than 3 times.

Methods that are not yet implemented:

* location based search

* sharing

* within search // this requires some serious string parsing, but it will come

* advanced logics like AND, OR, (),”"


One of the most important features is the online / offline syncronization. The application automatically detects if you are connected to the rtm server and auto switches between online and offline mode.

Online mode

This is indicated by the blue online indicator in the lower left corner. When working in this mode all changes are immediately sent to the rtm server and are NOT saved locally.

Offline mode

In this mode all changes that are made are saved to a local xml file that is maintained until the app syncs up with the rtm server. After the sync all local changes will be removed, in order to keep the performance up.

Manual sync

There are tow ways of causing the app to sync with the rtm server. The first is to simply click on the online indicator.

If for some reason changes are saved that can no be sent you can go to settings –> sync and click on the reset and sync button. This will cause all local changes to be discarded and the app will sync up fresh with the server.

Known bugs

This part will constantly be updated as user input comes in.

Syncing stops at “loading tasks”

Thanks to Justins patience and 8 debugging builds of the app I now know that this is caused by a bad response from the rtm server. I am already in touch with the rtm tech people who are looking into the problem.

possible solutions:

There is no general fix yet. The bug is inconsistent and without any pattern. We found out that it is related to some specific tasks and its not a general problem, so archiving the list that contained the “broken” task fixed the problem. It also happened that just out of nothing it started working a gain. So the only real solution as of now is to play around with the tasks on the website. Archiving unarchiving lists. As soon as I get word from the rtm people I will make it public.

The mac os X menu does not work

This is most likely a bug with the adobe air runtime. I am working on fixing it.