Tasks are identifed in Remember The Milk API via their list_id, taskseries_id and task_id. Therefore, most methods in rtm.tasks require that these three arguments be provided (all three are checked for validity and permissibility prior to method execution).

The path to a task

list_id specifies the list in which a taskseries resides.

taskseries_id specifies the task series in which a task resides.

And finally, task_id specifies the task on which to operate.

What's a task series?

A task series is a grouping of tasks generated by a recurrence pattern (more specifically, a recurrence pattern of type every – an after type recurrence generates a new task series for every occurrence).

Task series' share common properties such as:

Name.

Recurrence pattern.

Tags.

Notes.

Priority.

Therefore, when invoking methods such as rtm.tasks.setRecurrence on a list_id/taskseries_id/task_id it is infact the task series state that is modified. task_id is required to establish consistency across the API, since the concept of a task series is somewhat of an implementation detail.

As we can see, the new task is now part of the list. We'll modify the priority of the task. Let's give it a priority of 2 by calling rtm.tasks.setPriority(list_id=387546,taskseries_id=650834,task_id=815784,priority=2).

The task now has a priority of 2. Let's imagine that Bob actually changed the priority of this task (he shares my account and is logged in via the web application). We don't want to retrieve the whole list every few minutes – a large list might take a long time to transfer or process by a client application. So we'll pass the last_sync parameter to the rtm.tasks.getList method.

We can use an arbitrary value (the last time we requested the list is a good candidate), or, perhaps, the creation date of the Demonstrate Tasks task. Calling rtm.tasks.getList(list_id=387546,last_sync="2006-05-08T13:52:26Z") returns: