OmniFocus date manipulation with AppleScript

The extensibility of OmniFocus is nearly unlimited and AppleScript is the way of leveraging it. Ryan Davis posted a nice overview of AppleScripts that help him manipulating task dates.

  • Defer takes the selected tasks and shifts their start and due dates by a user defined number.
  • Skip filters on the selected repeating tasks, marks them as done, and then deletes them.
  • Stagger Dates takes the selected tasks and redistributes them one weekday at a time
  • Stagger Times does the same thing as Stagger Dates, but for a single day
  • Followup takes the currently selected task, duplicates it, prefixes with “Followup: “, and then schedules it for a week out
  • Fix Start Dates takes the selected tasks and makes sure that the Start Date is filled in to the same day as the Due Date, if any.

Ryan provides some examples of how he uses these scripts and a very simple AppleScript code example that let’s you build your own task focussed scripts.

Purging OmniFocus backups automatically with Hazel

Please have a look into OmniFocus backup folder now. It is typically at ‘~/Documents/OmniFocus Backups’ unless you configured differently it in OmniFocus’ preferences.

How big is it? 500MB? 2GB or even 16GB? Mine was 2GB yesterday since I didn’t clean up old backups since half a year.

There is of course a more efficient way that doesn’t even require you to remember this maintenance task. Using Hazel and the rule described by Christopher Mackay will do the job for you.

Clipping from nvALT into OmniFocus

I have started to use nvALT again to take my notes during meetings and calls. Yesterday was a rather epic call day with 8 out of the 10 hours I worked spent on the phone. Consequently many notes were taken and lots of actions had to be clipped from nvALT to OmniFocus for processing and tracking.

When I finished hitting my OmniFocus clipping hotkey (⌘⌥^-C) about twenty times, I was shocked looking at my OmniFocus inbox with each clipped actions looking like this:

Result of a line clipped from nvALT into OmniFocus

The actions I wanted to be captured ended up in the note field and the task itself just reference nvALT. Now this is not a hugh problem if you have just one or two things clipped, but it is if you have twenty or more.

Reaching out to my fellow tweeps for an script-based solution brought Ben Waldie, AppleScript guru by profession, to rescue me.

His neat little script does nothing else than swapping task title and note around for all tasks currently selected.

tell application "OmniFocus"
    tell content of front window
        set theTasks to value of every selected tree
        repeat with aTask in theTasks
            tell aTask
                set theName to name
                set theNote to note
                set name to theNote
                set note to theName
            end tell
        end repeat
    end tell
end tell

Be aware that the script is rather minimal in nature and has no error handling. Make sure you use it with tasks selected that do feature a title and a note.

Clever trick by Jamie Phelps to leverage the 1Password bookmark to allow you direct access to any key websites you need to complete OmniFocus tasks or routine. Get the detailed instructions.

Seems like 1Password bookmark integration becomes very popular lately as  the lasted version of Alfred also offers a great integration with 1Password. High-res

Clever trick by Jamie Phelps to leverage the 1Password bookmark to allow you direct access to any key websites you need to complete OmniFocus tasks or routine. Get the detailed instructions.

Seems like 1Password bookmark integration becomes very popular lately as the lasted version of Alfred also offers a great integration with 1Password.

Spring Cleaning OmniFocus’ Look & Feel

When I did the radical revamp of my OmniFocus setup last weekend, I also followed R-Miguel’s idea of refreshing the look & feel of the application I look at every day.

Until last week I was happily using the Light ‘Solarized’ theme by Ben Brooks, which is very good theme. But it was time for something fresh and hence I went out to OFThemes.com and checked out what was on display.

It was the ‘Reminder-ish’ theme that caught my attention aesthetically. Inspired by the iOS Apple Reminder App it provides quite a unique look.

However, the theme had a few things that didn’t work for me such as the dark sidebar. There where also some usability flaws, in particular the virtually unreadable font colour in OmniFocus’ quick entry box. So I went off and modified the theme to my practical and visual needs.

The end product is now a totally different theme, which I just called by the name of its creation date: May 4th (Star Wars Day).

The basic layout is pretty much the same as in “Reminder-ish”, but the colour-scheme is different, not only in the sidebar.

I also wanted to make better use of the different styles OmniFocus allows you to apply to different states like next action, blocked, due, …

  • Next actions are highlighted in purple and a soft underline setting themselves apart from single actions which miss the underlining
  • Blocked actions are smaller in font size and greyed out
  • Similar for completed actions incl. strike-through
  • Also actions groups are grey and smaller as they are typically not actionable themselves
  • Due Soon and Due actions catch your attention with slightly bigger font size and orange and red colour

Good old ‘Helvetica Neue’ is the font of choice for this theme to ensure it works the same for everyone (and just look classy).

If the OmniFocus ‘May 4th’ theme pleases your eye and supports your Spring Cleaning OmniFocus efforts go and grab it.

Spring Cleaning OmniFocus

I really went numb with my OmniFocus library recently. There was too much of everything: Tasks, projects, single action lists, folders, someday/maybe items and contexts. As a result OmniFocus became less trusted to me since I could not see the important stuff in all the clutter. Consequently I started procrastinating at my to-do list.

First thing to do when you fell of the bandwagon is to get back on. I had to do something radical to achieve this: I basically deleted 95% of everything in my OmniFocus library. Yep, I just threw it over board and started pretty much blank.

Rebuilding a new, simple structure (folders, contexts, single action lists) and doing a full mind-sweep felt really good. I now know again that everything that really has my attention is in OmniFocus and what has been there before - unfulfilled commitments with myself, ‘just said yes’-projects and issues that aren’t relevant (anymore) - is gone.

You don’t need to be as radical as this, but you want to Spring Clean using R-Miguel’s simple three-step process

  • Start by taking an inventory of your files, folders, projects, actions, perspectives and contexts.
  • Then, sort through everything, taking a very close look at each one.
  • Decide to drop or delete anything you honestly are not using, or, won’t for the rest of the year.

The key really is in the last point! Be determined, radical and do not cling on to old memories and commitments.

Refreshing the look & feel of OmniFocus as the last step of the Spring Cleaning, as suggested in R-Miguel’s post, helps immensely to give you that ‘fresh start’ feeling we all need from time to time. I switched to the Reminder-ish theme and modified it (severely) to fit my needs.

Finally: Really, really clean-up all these Someday/Maybe items. I moved most (wild) ideas, books and movie lists from OmniFocus into simple notes in nvALT to keep OmniFocus to it’s primary purpose.

Tagging in OmniFocus

Great hack by Jan-Yves Ruzicka to introduce the concept of ‘tagging’ to OmniFocus. He leverages the saved search functionality in Perspectives to do that.

There’s one more thing I can do to make this process easier, and that’s set up a perspective. Perspectives remember search terms, so I can take a snapshot of this view as it stands, and use it whenever I need to refer to my high-priority projects. And, of course, if I do want to remove a project from my high-priority list, all I need to do is edit the notes field and remove the “@30000ft”. If you want, you could collapse every project ever and make sure that your 30,000ft high-priority perspective saves expansion, to give you an ultra-brief run-down of what you consider high-priority right now.

OmniFocus and Basecamp

Amongst all online collaboration solutions Basecamp is the best one I ever came across. 37signals is putting a lot of thoughts and efforts into the platform to keep it simple, purpose driven and extremely user-friendly. Unfortunately I am required to use a different platform at work which has yet to adapt the design principles of Basecamp.

Those that manage their personal tasks in OmniFocus and leverage Basecamp for collaboration are always looking to integrate the two. At least to a certain extent.

Ryan Irelan has updated and reposted his AppleScript based solution that uses Mail.app rules to accomplish this. Check out his original description for instructions and more details.

The beauty of Ryan’s approach lies in its simplicity and the fact that you can use it with tools you have out of the box and consequently free of charge.

For a more professional grade integration between Basecamp and OmniFocus you should give Spootnik a go. It uses the WebDAV sync capabilities of OmniFocus not only to keep your data the same across your devices, but also between Basecamp and OmniFocus.

Spootnik also fulfils two very popular feature requests for OmniFocus by providing an web interface to your data and allowing you to email actions directly to your inbox.

While you can test drive it for 30 days, the subscription model starts at 3$ per month. 

Managing Email with Smart Mailboxes and MailTags

Email is not your main job, at least for most of us. But likely it is an important part of your job. Email has become a substantial part of our communication and unfortunately also a primary source of distraction.

You don’t need to like email, I certainly don’t. But you need to deal with it and since you may not like it and it is only a tool to get your real job done, you should deal with it in the most efficient way.

Time-boxing email activities is one element to make sure email does not take centre stage in your daily work. Finding an easy way to file, archive, track and retrieve email is another.

The Magic of MailTags

Many like tagging in Gmail/Sparrow and ‘topics’ in Postbox as a way to organise email. MailTags by Indev - plug-in for Mac OS X native Mail.app - has been around for a very long time and goes way beyond what Gmail and Postbox provide. The Lion-compatible version 3.0 of MailTags has been released recently and allows me to share how I use (a very small part of) it to get my email done.

MailTags allows you to do lots of things with your email. Key features include:

  • Assigning tags
  • Associate your email with a project (MailTags can access your OmniFocus or Things project list, provided the application is running)
  • Assign a tickler date to remind you of the email in the future
  • Create a event or task in iCal related to an email
  • Add notes
  • Assign different colours and up to five different priority levels (now you procrastinators get really excited, right? Five! priority levels!) to your emails

While you can do all of this without taking your hands off the keyboard, the real magic is how deep MailTags integrates with Mail.app. You can leverage all the functionality in searches, Smart Mailboxes and mail rules. And the OmniFocus clipper also works nicely with MailTags-

There is only one downside with MailTags: It is so powerful and feature rich that it invites you to tinker.

Basic email folder setup

My setup is extremely simple and has been recommended often: One single archive folder. Whenever I process new emails in my inbox and decide to keep them they go into my ‘Archive’ folder. No sub-folder structure, no complex filing and no time-consuming browsing to find them back.

Many of the emails I get every day (between 80-150) get automatically processed by rules and go straight to archive, trash or two folders I have for carbon copies and emails to mailing lists I am subscribed to. How these rules reduce my email load by about 50% is something I’ll cover in a future post.

I have been using a single archive folder since years now and have never failed to find back an email using search/Spotlight. In fact I have been faster using search and tags than people with folder structures in 99% of all cases.

Key tags to keep email under control

Tagging is only effective if you use as few tags as necessary. Otherwise you’ll end up in a bigger mess than with any folder hierarchy. I have just a dozen tags defined in MailTags and only six of them are really important to my email management.

  • @Action — assigned to emails I need to follow-up, read or respond to as they require more than 2 minutes of my time; Nowadays I often use a flag in Mail.app to mark them; Some emails get automatically flagged for follow-up on arrival
  • @Waiting — Waiting for response(s)
  • @OmniFocus — for tracking the email follow-up in OmniFocus using this outbox mail rules and this AppleScript
  • Expenses — Automatically assigned to expense reports (mine or the ones of my staff) before marked read and filed
  • Travel — Automatically assigned to itineraries (mine or the ones of my staff) before marked read and filed
  • Staff — Marks emails related to any HR or people management topics

I am not going to discuss the actually processing, whether its manual or automatic by use of Mail.app rules, but I generally process my inbox 3 times a day pretty much following the Inbox Zero methodology.

Navigating your email archive with Smart Mailboxes

When I engage with my email beyond the pure processing I leverage the tags and the tickler date functionality of MailTags heavily through Smart Mailboxes.

The most important Smart Mailboxes live as links in my Mail.app Favourites Bar while I typically have the Mailbox List in the left panel hidden. In a typical scenario I engage with them one by one.

@Action

Looking for emails that have either the ‘@Action’ and/or are flagged, this smart mailbox shows me all the emails I need to read or respond to. Typically they require some more time, quick research or more focus than what I apply during processing.

Most of my email actions are tracked this way. Only emails that require substantial action outside of my email application get clipped to OmniFocus.

Waiting For and Tickler

It always amazes me how much you achieve if you only follow-up consistently. At least you appear on top of things which results in lots of recognition by your staff, peers and bosses.

My ‘Waiting For’ Smart Mailbox, which I look at once a day, gives me exactly that opportunity. It looks for all emails tagged with ‘@Waiting’ and sorts them by tickler date (if applied), allowing me to follow-up on the most urgent, outstanding responses first.

The Tickler Smart Mailbox only looks for emails with Tickler dates, but not tagged ‘Waiting For’. These are typically emails that require some incubation or action in the future. Again, if the resulting action or project is likely to require substantial action outside of my email client, I would clip the email to OmniFocus and tickle it there.

Handy Smart Mailboxes for recently sent or viewed

These two Smart Mailboxes go back to a 43 folders post from 2007 and come in extremely handy during your daily email war.

Recently Sent - Need to quickly forward the email you just sent to another colleague? Add something you forgot to mention to that email that just went out? This Smart Mailbox is the solution as it does not require to scan through your entire, typically huge sent folder. Remember that Smart Mailboxes in Mail.app also define the search scope once selected.

Recently Viewed - If you have a single archive folder and process your inbox with the right level of discipline, you may face the situation where you remember that you have looked at an email yesterday which you need right now.

Corporate mailbox server quota (still exists)

Yes, there are still companies out there that give you a (relative small) email quota on Exchange. Not everyone lives on the endless storage supply that Google provides (for the price of ‘reading’ all your email).

I am required to manage my server space actively to prevent annoying ‘warning’ emails and eventually suspension of my email service. Sounds dramatic, but can be addressed with two simple Smart Mailboxes.

This example also nicely illustrates how you can use one Smart Mailbox as the source for another one.

First I create an ‘Archives’ mailbox which spans multiple folders, most notably the actual archive folder and the sent folder.

My second Smart Mailbox looks at the above Smart Mailbox, but only displays message that have been received or sent more than 30 days ago. Once a month I go into this Smart Mailbox, select all messages and move them into my permanent, local archiving folder.

MailTags and OmniFocus Projects

As mentioned in the overview of the MailTags functionality, it pulls the list of projects from OmniFocus (if running) and allows you to associate emails with a certain OmniFocus project.

There are two reasons why I do not use this functionality at present:

  1. MailTags pulls all Projects and Single Action Lists from OmniFocus, regardless of their status, i.e. projects with future start dates appear as well. If you have 60-90 projects like myself, you’d also like to see your folder structure for easier association.
  2. My projects typically have a relatively short lifespan and change frequently; Consequently it provides little value to me spending time associating emails to projects that might be done next week

However, I can see where this makes sense for others. If you only have two dozens of projects in OmniFocus or some of your projects have a very long lifespan this feature is definitely worth a consideration.

In summary

MailTags lets you do lots of great things and even offers full AppleScript for those that like to tinker even more. It’s the most powerful solution for Mail.app and you should really consider it, if you are sick of email taking control. Start with a simple setup before exploring and exploiting it. And remember that the tool itself doesn’t really solve the problem you have, it only helps once you have decided to change your approach and habit.

OmniFocus Mail.app rule with attachments

Bryan Kyle had an itch and scratched it.

One things that has always bothered me about it is that it doesn’t do anything with attachments. If you create one of these specially formatted messages and attach a file, you would expect that the attachment would be added to the newly minted action.

With his modified AppleScript Mail.app will now honour the attachments in any email being processed by the magic OmniFocus mail rule. Good luck with all these images people still have in their corporate signatures.