A grab bag of GTD-ish scripts

Tags ( )

I've been tweaking these for a while, but figured I'd post them to give others an opportunity to improve my hack Applescript skills -- and also to give me a reason to get back to actual work.

The scripts:

"Maintenance" is a collection of scripts that I run upon launching Mori first thing in the day:
- a rolling weekly backup of the Mori document, like kGTD does
- a "review automator" (more on this below)
- a "tickler file" procedure that takes someday/maybe items and moves them to the Inbox when the due date is reached
- an "untitled killer" that erases all of those damn "Untitled" entries I seem to accumulate. (I hope this becomes unneccesary with upcoming 1.7 keyboard navigation improvements!)
- a basic sync with iCal, to get tasks from specific "mobile" contexts onto my Treo. The script also tracks completed or removed status, so it's not just a one-way task pusher, but I hesitate to cal it a full-fledged sync, as new iCal tasks won't make their way into Mori.

The "review automator" is my most recent addition; I was inspired to write this script after reading Jim Harrison's comments in an entry over on 43folders (http://www.43folders.com/2007/03/05/gtd-scientists/). I've never thought much of the ability to make aliases of entries, but it really works well in this scenario: the script scans for projects that need review (based on a defined schedule) and, if "ripe" for review, adds its alias to a "Review automator" folder. After running the script, all projects that need review are aliased in this folder, which allow me to review and adjust each project, and delete the alias when done. Give it a look, and let me know what sensible improvements could be made.

The other two script files are more straightforward. "Add Contact" looks up contact info based on a search string and adds it to the selected entry's note. (I was feeling a bit envious of how iGTD can import Address Book entries!) "Context" provides a "choose from" list to assign contexts to selected entries, one at a time. (Again, imitating the "Process/Review" function of iGTD, but without the Project aspect, which is best done with a good old drag and drop into a project folder.)

My Applescript skills are 100% stolen from existing examples, so I've probably written some clunky procedures; I welcome your feedback and suggestions.

- Mark

AttachmentSize
Grab bag of Mori scripts.zip29.9 KB

Grabbed some..

Hi Mark,

As it happens I came across your post a few days after I began thinking about what you named a 'Review Automator' - so I went 'ahhh' and started to decipher that part of your Maintenance script right away. I like the idea of putting a number of 'run always' routines in a single script.

I can't figure out how you use a smart folder to collect 'review candidates'. Do you use the modified date?
But why set up a smart folder when a script can get your projects list straight from any folder you want?
My thoughts:
A smart folder will reduce maintenance of the script; you can quickly modify it to include or exclude certain containers, or use the 'flagged' column to mark projects you want to see in that smart folder. An unflagged project would 'sleep' until you flag it again. Hmm... need yet another smart folder to gather unflagged projects. But I feel collection should not depend on some user action.
For me, a project can be both a folder and an entry. The defining attribute is their level, which is not available in a smart folder. Again, you must somehow mark individual projects, which is a hassle.
Or, you could set up a (hidden) column 'Level' wich can be filled by the maintenance script.

Another issue for me is when one gets behind with reviewing. You might have set some project to be reviewed once a week, but when it sits for 3 days in the Review Folder before you get around to reviewing it, it will pop up again in 4 days - seems unlikely that you'll keep up. And the script should not add an alias for a project that's already in Review!

The method I devised uses 2 custom columns: Review date (NSDateAttributeType) and Recurrence (NSInteger16AttributeType).
My Review Automator variant collects projects from a list of folders within the script; no smart folder(s) needed. It also looks in the Review Folder to check for projects that are still in there.
When you're done reviewing you run a script to set a new date, calculated from the Recurrence value. That is, with Recurrence set to 4 weeks, this project will show up again 4 weeks after the last review, and not every 4 weeks.

Re your Context script: as published it displays a list of all selected entries' names. No contexts in sight...
Reworked that too. Only problem is, the list sits right in front of Mori's entries panel - anyone know how to script moving a dialog window (if at all possible)?

Regards, Thijs

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.