ical on desktop

On my way to have a more organized life, I've tried to utilize iCal to the fullest. I have found the quickest way to add tasks and events to iCal, but have yet to find the quickest way to show them. I figure that instead of opening another app just to show my tasks and events, why not make them always available on the desktop?

If I could do that, I could just use Expose's shortcut (Command + F3 in my MacBook) - or the Show Desktop we've discussed before - to show the desktop to see everything that I have to do printed there. Of course, those with large screens will have everything visible at all time even without the trick.

With my recent adventure with GeekTool, everything comes full circle. Now my tasks and events can be shown beautifully on the desktop, and I can look at them anytime I need to with a single stroke of a shortcut key combination.

To be able to show tasks and events from iCal on the desktop, we need help from two freewares: the previously mentioned GeekTool and iCalBuddy.

In short, iCalBuddy is a command-line utility that can be used to query the OS X calendar database for items. Being a command-line based application, iCalBuddy is the perfect scripting solution to be used along with GeekTool.

The installation used to be something that ordinary people would try to avoid - involving working with command lines in the Terminal. But the latest version of iCalBuddy comes with an "install.command" file, which will make the process a snap. All you need to do is double-click it to start the installation in Terminal and then continue the process by pressing any key (or Ctrl + C to cancel).

ical on desktop

Now that the installation is done, let's add some to-dos and events to the desktop

After installing iCalBuddy, displaying iCal's to-do and events on the desktop is a matter of adding new shell items from GeekTool. This means dragging out shell geeklets from GeekTool prefPane to the desktop and editing the items.

The most important part of the geeklet is the Command pane. This is the place where you write the command line to tell GeekTool what to do. This is the basic command line for iCalBuddy:

/usr/local/bin/icalBuddy *****

ical on desktop

The "******" is where you put the customization strings. There are a whole lot of variations that you could use with iCalBuddy's command line. There are some manuals that come with the installation file of iCalBuddy that you can refer to for further information. You could also access the program's manual page by running "man icalBuddy" in the terminal to read the documentation for all of the arguments you can use when calling icalBuddy.

ical events on desktop

As for me, these are the strings that I use for my desktop.

To display iCal's to-do, I use:

/usr/local/bin/icalBuddy --excludeTaskProps "notes" -nc uncompletedTasks | sed -e "s/*/--/" | sed -e "s/!/!!/"

While to display iCal's events, I use:

/usr/local/bin/icalBuddy -nc eventsToday+7 | sed -e "s/*/--/" | sed -e "s/!/!!/"

These strings are not mine. I picked them up from a discussion between iCalBuddy users and the creator. So, the credit goes to them. And as you can see, what the customization strings do are:

  • removing notes from the tasks (--excludeTaskProps "notes")
  • removing the calendar name (-nc)
  • changing the * symbol in front of each item with -- symbols (sed -e "s/*/--/")
  • displaying events for one whole week (+7)
  • emphasizing the overdue tasks and events (sed -e "s/!/!!/)

You could do your own experiment adding and removing strings (or not).

Beautifying the look

Honestly, I spent so much more time experimenting on the look than on the function; dragging the position, changing the color, adjusting the size, that sort of thing. And here's the final result (for now).

ical events on desktop

You could just let your creativity run loose and design your own. But in case you are wondering, I'm using Apple's standard wallpaper, and Gill Sans - Regular and Thin - for the font. As for the layout, size and color, I think the screenshot has revealed them all.

While doing this article, I also found out several communities of GeekTool users who "show off" and share their desktop designs. If you've tried GeekTool and think that your design is cool enough, you could share them using the comments below.