Tinderbox Forum

Tinderbox template for managing daily tasks

Silly question, but I’m having a bear of a time getting that I thought would be a simple thing done, a way to manage action items/tasks. I don’t have a single question. What I’m looking for is an example Tinderbox file with a set of agents and rules that someone would be willing to share with me so that I can try to deconstruct it and learn. I know I missing something simple, but I just can’t see it. I’d like to setup:

  1. Daily task list
  2. What’s due this week
  3. Move completed tasks to a completed task folder (perhaps with edict, does not have to happen immediately)
  4. Filter tasks owned by me and owned by others

I think I should use agents for this, but I’ afraid to create t0o many agents. maybe I’m thinking too small. I don’t know. Again, if someone can help me get going I think I can figure it out.

OK: let’s start with these. baby steps. We clearly want a pair of agents: one for what’s due today, one for what’s due this week.

For"what’s due today”, one approach would be an agent:

Query: $DueDate<date("tomorrow")

This might be too guilt-inspiring, as it will find tasks you meant to do in March but haven’t finished. We all have those! But it’s simple. :slight_smile:

The agent for “due this week” is left as an exercise for the reader.

1 Like

Thanks so much! Got this working and am doing my homework. :slight_smile: Will report back when I have something new and unique to share.

I realize that you are probably ten steps ahead of what I’ll list here. But in gratitude for your wonderful “how I have learned to use Tinderbox” post on Medium, which I tweeted about two days ago and will again soon, here are a few of the incremental steps I’ve done in the same direction over the years:

  1. For the daily task list, a query like the one @eastgate sets out above, based on the built-in system attribute $DueDate. (Or another related date-type attribute that you choose or create.) As @Eastgate suggests, I have related queries for items due in the next three days and the next week. They’re of this form: $DueDate < date("today + 3 days") etc. To narrow them down, you can add a $DueDate > date("today") term to the query.

  2. This kind of due-date dashboard is yet another function for which I find the Attribute Browser to be intuitive and effective. Here’s a quick sample of how I like these dashboards to look. (Obviously I have added some columns to the AB view. It’s also based on a new attribute I created, $DateDue, rather than the system attribute $DueDate.)

As you will have guessed, this AB view is filtered to show only items that have an assigned $DateDue value. The red rectangle highlights part of the query box, which is concealed in the previous screen shot:

  1. It’s easy to imagine the related Attribute Browser dashboard-type views you can create – for instance, one based on $Context or $Person, so it would group all of the “Email” related tasks, or those assigned to a particular person. Then the columns could show the relevant due dates and other data. I personally find this view more natural and informative than using, say, an Outline view based on Agents (though the underlying processes of filtering, sorting, and displaying data are of course the same). What I prefer about the AB is its ability to group things in categories I find useful.

Again, you probably already have done this. But in keeping with the spirit of your instructive posts, these are some very small specific illustrations of techniques.

Update: On some other points from your original list:

  • To filter tasks based on the person who owns them, I’d just have an attribute like $Owner (or $AssignedTo or whatever), and then set up an Attrib Browser tab that grouped all items based on that attribute. You could also filter that view so it only showed items due in the next week, or by any other criteria. The filtering query for an Attrib Browser view can be as complex and refined as that for any agent, and it uses the same syntax.

  • I have two ways of moving completed tasks to another folder – I use one approach in one file, and the other in some others. One approach is a Stamp. It simply says $Container(original)="Archives", the Archives folder being the one I have established to hold completed items. I have outline views sorted so that $Done items are at the bottom of a list, and also a Rule that gives them a particular flag, so it’s easy to see them at a glance. Periodically I select all of the done items and apply the stamp. The other is an Agent that searches for items with a true value for $Done, and then applies the same $Container(original)="Archives" to them. I use that in a file where I have auto-updating of agents turned Off; I run this periodically. Obviously you could do the same thing in a Rule or Edict with an if... statement:
    if($Done) {$Container(original)="Archives"}


Thanks for the response. These are awesome suggestions. I did not consider the AB at all, that’s an elegant way of doing it, especially if you combine it with TextExpander (https://textexpander.com/). I’ve started to create snippets in TextExpander for the queries and actions that I find I’m reusing in the AB and Agents. Now that I have your suggestion, I can do this for running task reports. :slight_smile: Really helps.

I feel like the dam has broken since my breakthrough of a couple of weeks ago. I was so close, just need a few of the last pieces. Now that I have them, Tinderbox is becoming clearer to me every day. I’m not sure why I could not see it before. I’ve changed so many of my daily work behaviors, and the results have been paying off. Will be sharing shortly.

Actually, I think I do know of one reason why it is not clear, now that I think of it. As I’ve been reading comments and posts, I think the explanations would benefit significantly by having primary labels, e.g.: Query Ex., or Agent/Rule/Edict ex. or Export Ex. I know the code is very similar and can be replicated in different ways, but when explaining the example code I plan on starting with “I used this in a Query” or “I used this an agent with the associated action.” I think that would help.

I think I’m getting close to debuting a meeting/notes/tracking system that I’ve been refining over the last few days.

1 Like

FWIW, I think most posts here do state explicitly the purpose—query, action, export, etc. What I read from your post was it took a while for you to internalise the difference, differences templates (we don’t have) for code in forum posts would only solve in part. Until the reader understands the difference, the extra mark-up is moot in outcome and formatting t(volunteer) time perhaps better applied to answering (and un-seen time-consuming testing of problems/solutions to) other users’ questions. I do encourage users - both those asking and answering to use Discourses markdown mak-up for code sections. But one can only ask, it being a public forum.

Do Discourse forums offer such a feature for boilerplate inclusions?

Also bear in mind, queries as just a form of action code written to resolve to a Boolean (true/false) test per note tested: there is no magic difference for instance form a rule. It is about context /scope of execution. Rules/Edicts/Stamps/Action are different contexts for running action code at different scope. For instance, a rule only ever acts on its own note, whilst a stamp acts on the current selection of note(s); rules and edicts run at different repeating rates; and so on…

Also if you see code with carets, e.g. ^code^ it is export-related even if not marked as such.

@mwrat truer words were never said…[quote=“mwra, post:6, topic:3611”]
What I read from your post was it took a while for you to internalise the difference, differences templates (we don’t have†) for code in forum posts would only solve in part.
[/quote] :slight_smile:

It took me forever! Still working on it but definitely getting there. Thanks.

Like so many new students to a topic, I am at that stage where I feel like when I learn something new it is revolutionary. I then later find out that the “insight” is actually a well know and well-worn truth that seems for many, or at least for the community at large, to be well evidenced and common knowledge. This latter point brings up the power of this forum. So many of the answers already exist, the trick is sifting through the rough to find them, which requires one to become a Tinderbox linguist and for the community at large to be kind and to have the"patience of Job" as the newbie stumbles around. @mwrat et al. have mastered both.

Thanks, everyone.

I sometimes use crosstabs to look at tasks for which both the date and another characteristics of my tasks are of interest. For instance I can create a list of notes for all tasks next week ahead of time, adding details such as who will do the task, or with whom shall I meet, or which project does each task belong too. The cross tab feature in TB allows you to display all your tasks ready to be accomplished in a neat 2D grid.

An example below. I brainstorm and create a series of tasks for next week ahead of time. I use a modified version of the Task prototype which is a built-in to Tinderbox, adding the name of the person involved in the task. The two attributes I’m going to use are $DueDate and $FullName.

In a separate tab, I set the view the contents of container “/My Tasks” to crosstabs and setting the columns to $MyDate and the rows to $FullName. Et voila - for each day next week I have a list of my tasks, I know how many tasks I have each day and who is involved. If I for instance click on the note Play Hockey (I already know it going to be with Bob) I get the full details of the note in the right hand side.

You also mentioned that you would like to follow the status of each task. On method is to use a query and filter out all tasks that have already been done. In this case I’ve set up a query in the example above to select only those tasks which have not yet been checked. As soon as I’ve played hockey with Bob and check the note on the right hand side the task will disappear from the list. If your week goes well the tasks disappear, one by one, and you’re left with no tasks by Friday evening and can head out for a beer with a free mind.

Another way is to display the status of each task using the Display button on the top right. This allows you to see the status of each task. As an example using the same set of tasks but setting the Display attribute to $Checked I get the following. None of my tasks have been done yet.


However, if I manage to play hockey with Bob and thankfully tick it off my list I get the following (don’t forget to remove the Query before.

It’s worth trying this and other approaches on a small set of notes to make sure you get the functionality you want. Also note that crosstabs is still a relatively young feature with a few wrinkles in it. For instance you cannot yet as a user specify the subset of columns and rows that you would like. If you have many notes spanning weeks and months it’s best to filter through an Agent where you can control the set of notes to be retrieved and apply the cross tab view to this Agent.


Oh, Iike this VERY much.