One of iCal’s annoyances is that new events are always created with a duration of one hour. There’s no way to change this in iCal’s preferences, and if you prefer 30-minute, 15-minute, or some other period as a default for new events, it’s a pain to change each time. Thanks to Mac OS X Hints reader yesiamnhoj, however, there’s now a relatively easy fix for this problem (though it does require a quick Terminal trip). Note that this solution has only been tested with iCal 3.0.x; I don’t know if it works with earlier versions of iCal.
Quit iCal if it’s running, open Terminal (in Applications -> Utilities), and enter this command, then press Return.
defaults write com.apple.iCal 'Default duration in minutes for new event' 15
15 to whatever duration you’d prefer to use; it’s specified in minutes. You can even use
0, if you want, to create new events with the same start and end time. You won’t see anything other than the Terminal prompt back when you press Return, but the command will work.
Launch iCal and create a new event, and it should have your specified duration. If, for some reason, you ever want to go back to the one-hour default, the easiest way to do it is to delete the special setting you created. Quit iCal, go back to Terminal, and enter this command:
defaults delete com.apple.iCal 'Default duration in minutes for new event'
When you next launch iCal, new events will be back to their usual one hour duration. Hopefully this becomes a user-settable field in a future iCal release. Until then, though, this is a relatively simple workaround.