Benjamin Harley, creator of ABGMerge, the Gmail contacts-Address Book syncing app, has also scripted a powerful iCal action for Quicksilver
, which is more flexible and has more options than Quicksilver’s built-in iCal plugin.
It’s complicated (power comes at a cost) but offers a speedy way to quickly enter a complete iCal item on the fly whichever app you are in. I use the current public beta of MailTags
to do this when I am in Mail.app, which has the added bonus of automatically creating a URL link back to the email in question. But I’m not always in Mail (sadly).
UPDATE: You can get the latest version of the script here
Download and unzip it, then place it in your ~/Library/Application Support/Quicksilver/Actions folder.
You will need to restart Quicksilver and may need to add the Actions folders to your Quicksilver Catalog (Click the “plus” button and use the “File and Folder Scanner”) so that Quicksilver can find it.
UPDATE: You will also need to edit the script slightly. Open it up in Script editor or the app of your choice and change the property for the default calendar from “Home” to whatever calendar you would like the to-dos and events to be created in.
To use it, type “make ical” into Quicksilver’s first window, select “Process Text…” in the Action window and then type the text to create the to-do or event in the third pane.
For example:

This creates a to-do in my Trinity Calendar, specifies a date, adds an alarm and some notes so that I will know where to send the comments on this student’s work, and opens iCal to show me that it was created correctly:

Events are just as quick and just as clever:

This creates an event for a meeting tomorrow.
I don’t need to go back to iCal to edit the event; everything I want to add I can add via the Quicksilver action.
The text for this one adds a note about how the meeting might unfold, a location, a date, a starting time, a two hour duration, specifies which calendar to add it to and adds an alarm so that my boss won’t sack me for forgetting to meet with him.
The only downside is that you need to remember the letter for each option.
Benjamin has provided some initial documentation.
The commands can be entered in any order and they are:
t-- [title of to-do]
e-- [title of event] (use t-- or e-- to determine whether the script will create a to-do or an event. The default is a to-do. So if you just type some text (without t--) it will come out as a to-do)
d-- [start date (or due date for to-dos) in m/d/y format (or whatever your system is set to). The default is today for events (in 3 days for to-dos), +n to set that many days from today], [hour in hh:mm format, 24hr clock], [end date in m/d/y format, or +n for number of days if it is an all day event, default is same as start date], [end hour in hh:mm format, +n is number of hours from start date, default is +1], [a for an all-day event].
a-- [set an alarm (default for events is -1 hour, for to-dos 10 am on due date)
n-- [to add to notes section]
l-- [location]
c-- [calendar - default is home]
p-- [priority n,l,m,h (for to-dos only)]
u-- [URL reference]
cb-- [copy contents of clipboard to notes section - will always come after the text in the n-- section]
s-- or show-- [show the event or to-do in iCal after creation so you can check and see if it is right]
Examples
‘do this d-- a-- c--Work cb-- s-- p--h’ will create a to-do with title “do this”, with the clipboard copied to the notes, with a due date in 3 days, an alarm at 10 am and in the calendar named “Work” (if it exists, otherwise in the default which is “Home’), with a high priority and open iCal and show this to-do as soon as it has been created
‘e-- meet someone l--someone’s house n-- the directions a--2 d-- +2 17:00 +2′ will create an event “meet someone” two days from now starting at 5 pm and lasting for 2 hours with an alarm 2 hours before hand with a location “someone’s house” with “the directions” in the notes.
Get a copy of this list here.
[Big hat tip to Benjamin for sharing]
Tags: action, events, iCal, on the fly, Productivity, quicksilver, Script, to dos
Looks excellent, but the download link 404s…
Whoops. Try it now.
Thanks. Works a treat – the syntax is a wee bit fiddly, but I imagine it won’t take long to get used to.
I’m guessing the answer is probably UNO – but how did you get iCal to look so nice?
Hi Jon — I guess it must be UNO, as I haven’t tweaked it in any other way.
Very nice indeed.
(How on earth do you manage to type: ‘make ical’ that fast in QS? I had to let QS find the script ‘manually’. :-) )
I am so glad you find this useful. thanks for the positive feedback. BTW – if the script is in the ~/Library/Application Support/Actions/ folder, you can type the commands (press ‘.’ to get a text pane in QS) and in the actions list will be ‘make ical’ (or whatever name the file has. you probably have to quit and restart QS for the action to appear. the script is available on my script site, with the very limited instructions in the comments at the beginning of the script file.
i added the clipboard feature (cb–) because it seemed really useful to be able to copy some text (from a website or an email – say the directions to someplace, or a description of the party, or what to bring . . .) and have it automatically added to the notes section.
last comment, if you are into applescripting (even just a little), you could easily change the commands to whatever you want (just replace them everywhere they appear in the script) – but make sure they are a sequence of characters you would never want to use in an ical field (and that they have nothing in common with each other (ie. cp– and p– would not work).
@Sigurdur: To tell you the truth, the screenshot was not taken from my first attempt ;-)
One more note – there were a couple wee bugs that prevented the script from creating events when you use the “a” or “A” flag in the date field, and also that prevented the script from showing events after they are created.
If you put an “a” somewhere in the datefield, the script is supposed to create an all day event, and if you use the + to indicate duration, the number following it should set a number of days. I fixed the bug – and the improved script is on the website. (in the script it says v 0.1.2) Sorry about that!
usage: “e– X-mas and Boxing day d– 12/25 +2 a”
Not to be contrary, but that looks a lot more complicated than just switching to iCal and creating a task.
Contrary is good. I learn a lot from the readers of Hawk Wings who disagree with me. Fire away! :)
One question, how do you get Quicksilver to look like that? Is it a skin, theme?
Ups, sorry. Strike that, found it :D
Isko, it’s just the “Bezel” interface, which you can easily install and use yourself through Quicksilver’s Prefereces > Plugins pane.
I’m having trouble entering an “all day” task. Let’s say I want to make an all-day event called “Credit card payment due,” on the date 1/3/07, with an alarm 5 days before the date.
I put:
e–credit card payment d–1/3a a–5
it gives:
“credit card payment,” all day event, on 4/3/03, alarm the day before at 7am.
What do I have to change?
I meant to put e[hyphen-hyphen] credit card payment d[hyphen-hyphen]1/3 a[hyphen-hyphen]5
(for some reason the blog comments automatically turns hyphen-hyphens to dashes “–”)
btw…I tried your xmas and boxing day example from above without luck. I’ve found that if I put a space between a date and the letter “a” the script will not run. I most interested in creating all-day events, and how to set alarms for “days before.”
This script is amazing!
This is a nifty idea. But, I agree that it’s a bit more complicated than just opening iCal. Kudos, though– the faster thinkers/typers among us will definitely benefit!
After many moments of scratching my head trying to figure out why this script was working some of the time, but not all of the time…
I figured it out.
I don’t have a calendar named “Home”.
Essentially, the script was working only when I specified the calendar I wanted it task/event to be added to.
Not a problem with the script, but a problem with my understanding (and perhaps I didn’t read everything well enough).
Opening up the script, I changed the default Calendar to “@work” and now this script is a wonderful addition to my Quicksilver productivity toolset.
Thanks!
Hope this helps someone else.
Maarburg.
Excellent news.
I should have mentioned the need to edit the script in the post. I’ll fix that now.
How do you change the alarm time on to dos? Using a– has the default at 10:00 am, but my attempts to change it to let’s say 12:00 included
a–12:00
Or
d–xx/xx/xxxx 14:00 a–2
Any ideas?
It works much better if you go straight to text mode and start typing, and then call make ical. The biggest advantage is that if you need to go look up the syntax or anything else for that matter, and you’ve already started typing, you can abandon quicksilver for a moment, and when you come back whatever you already typed will still be in the box.
to alvin – you may still have the old version of the script. download the one from my site (see the post i made above), and be sure it has the v.0.1.2 in the initial comments. if you want to set an alarm 5 days before hand – you’ll have to tell it in number of hours. that would be: e-–credit card payment d–-1/3 a a-–120. [note: because it is an all day event, 120 hours will set the alarm at midnight. if you want the alarm at a reasonable time in the day, you'll have to subtract that from 120. ie. 10 am would be 110]
to jeremy – the alarm time for todos is set as a default at 10 am on whatever the duedate is (the default due date is three days from the day of creation, but you can use the d– flag to set any due date, either in date format, or using +n to indicate the number of days in the future). for me, i just want to be reminded to do something at some point during day. if something has to be attened to at a specific time, i usually create an event.
the script would require a small but thoughtful adjustment to be able to assign specific alarm times for todos. you could easily change the default, however, to a different time. just change the variable defaultduedatealarm.
hope that is helpful.
The file linked on http://www.hawkwings.net/2006/12/12/a-powerful-new-ical-action-for-quicksilver/ to the file http://www.hawkwings.net/files/makeical.zip
is the old one version.. The newer version is at:
http://homepage.mac.com/bharley/BenAppleScripts/FileSharing19.html
I had a little difficulty tracking it down… heh
Thanks, Dinh. I’ll update the link.