I've set up a number of Automator workflows as iCal plugins, but it annoys me that when the alarm triggers, the plugin shows up in the Dock as an application and, worse yet, the focus switches to the plugin.
The solution is simple: Go to the ~/Library -> Workflows -> Applications -> iCal folder, choose the Automator plugin that you want to remain hidden while it runs, control-click on it, and choose Show Package Contents from the pop-up menu. Inside the Contents folder, open up Info.plist, and change LSUIElement from No to Yes (if using Property List Editor) -- or change the line after the LSUIElement key line to <true/> (if using a text editor). Save Info.plist.
Now when the alarm triggers, the Automator plugin will run in the background, without a Dock icon or a menu bar, and the focus will remain on the application you're using.
Three things to note:
Mac OS X Hints
http://hints.macworld.com/article.php?story=20051113095905227