Forums

Discuss all things Remember The Milk.

Dynamic Packing Lists

evan.fredericks says:
Tags and Smart Lists are a powerful combo for customizing task list views based on context. I also use these for creating dynamic check-lists from a "master" list based on ad-hoc criteria.

For example, I have a master packing list with over 100 packing items for trips ranging from a quick weekend getaway to a 10 day international camping trip.

Within the master list, I have:
* Items that I'll pretty much always pack
** Examples: "c:jeans," "h:chapstick" (the first letter denotes the category of item - in this case 'c' for chap stick and 'h' for hygiene - and is used to keep the list sorted by category when sorting alphabetically)
* Items that are only packed based on specific criteria
** Example: "c:gloves" is tagged with "t-cold". ('t' is a prefix for "trip" so these tags also bunch together since RTM sorts these alphabetically in drop-downs/autocomplete)

I then make a smart list that has the following criteria:
List - is - Packing
Tag - is not - t-cold <-- modify this to whatever trip attributes you want to filter out, adding an additional "Tag - is not" criteria for each one. (some ideas for these tags are at the bottom of this post)
Tag - is not - skip <-- this will be used to filter out items that I am deciding not to bring on this trip for whatever reason (remember to make a task to remove the "skip" tag from all tasks in your master packing list when you get back from the trip so they don't get filtered out of future trips)

Which will include all of the universal packing items (they are un-tagged) and any tags that I didn't filter out.

As I go about my packing, I either:
1. Mark the items as complete once they are packed.
2. Tag them with "skip" to get them off the list.

This smart list stays in existence until I'm making my return trip, at which time, I can go into the completed list and "uncomplete" items when I pack them for the trip home, so I make sure that I bring back everything I packed.

Advanced tip:
You may find that there are some items that aren't universal packing items, but fit into more than one special criteria (e.g. you want to bring an umbrella on a trip in which you expect rain or one that is longer than a few days, since the weather could change unpredictably). If we filter out either of these tags, (e.g. we have a rainy trip that will only last a day or 2, so we include t-rain but exclude t-long) the umbrella will not show up. We could make two umbrella items in the master list and tag each one differently, but this would make the master list unwieldy to maintain if we have many items that could be used in many contexts.

To best handle this case, you'll need to use the query editor in your smart list (another feature that makes RTM extremely powerful). Using the wizard (I recommend starting in the wizard so you can use the drop-down tag selection), choose the tags that you want to include (rather than exclude) from your packing list in addition to the "tag - is empty" criteria. Going with our example, our search will be:

List - is - Packing
Tag - is empty
Tag - is - t-rain
Tag - is - t-long
Tag - is not - skip

As written, this will return an empty list due to the tag criteria. To fix this, click on the "Switch to the query editor" link. The scripted version of our search will now be:

list:Packing and isTagged:false and tag:t-rain and tag:t-long and not tag:skip

In order to get the desired behavior, change the "and" between the isTagged:false filter and each of the tag:t-*** filters to an "or". So you now have:

list:Packing and isTagged:false or tag:t-rain or tag:t-long and not tag:skip

This will work, but to make it easier to read and understand, you may want to add parentheses (I also like to capitalize the operators):

list:Packing AND (isTagged:false OR tag:t-rain OR tag:t-long) AND not tag:skip

Now all of your items that are tagged with "t-rain" or "t-long", as well as those that are tagged with both (the umbrella) will show up in the search.

This has really streamlined the packing process for me and you could apply the same concept to any check-list based workflow that changes slightly depending on context. This is just one of the many ways you can use tags and smart lists creatively to get on-demand lists in RTM.

Happy travels!

EXAMPLE PACKING LIST TAGS:
t-camping
t-cold
t-drive (for when I'm going somewhere by car)
t-fly (same as above for flying)
t-formal (will need formal attire)
t-hot
t-hotel (staying at a hotel)
t-international
t-long (trips longer than 3 days)
t-rain
Posted at 6:25am on October 6, 2018
emily (Remember The Milk) says:
Hi Evan,

This is an awesome use of tagging. :) You're this week's Tips & Tricks Tuesday winner, and we've added a free year of Pro to your Remember The Milk account. Thanks for sharing!
Posted 5 years ago
zaldin says:
Evan, any chance we can connect at some point. This seems brilliant but for some reason I am not understanding it. Would you be willing to help me?
Posted 5 years ago
jrothlis says:
Would love to get the whole list of items!
Posted 5 years ago
nodonovan says:
"** Examples: "c:jeans," "h:chapstick" (the first letter denotes the category of item - in this case 'c' for chap stick and 'h' for hygiene - and is used to keep the list sorted by category when sorting alphabetically)"

I think you meant, "in this case 'c' for CLOTHES not CHAP STICK didn't you, Evan?!
Posted 4 years ago
evan.fredericks says:
Haha yes! Good catch!
Posted 4 years ago
nodonovan says:
Hi Evan. Very impressed with your technique. I’ve just set it up myself, but I think I made a big mistake. I set up a TASK called packing and then listed all the ‘Items’ as subtasks with various tags attached to each subtask. This creates an error when I run a smart search as the TASK (‘packing’) is in a LIST called ‘Packing’. Presumably you set up a LIST called ‘Packing’ and then each item (shirts, sunglasses etc) are TASKS within that list rather than subtasks? If this is the case, any idea how I go about changing it all to your technique without starting afresh??! 😫
Posted 4 years ago
Log in to post a reply.