In 2007 I sought to find a dashboard widget that could handle an iCalendar subscription. The closest thing I found was iCal Events, but using that I had to subscribe to my calendars from Apple's iCal, and then launch iCal once a day so this widget could update. Since I could not find anyone else who has done this, I set off to create my own Dashboard widget.
This is the first widget I have ever created, so it was a nice learning experience. The widget works by making a call to a ruby script that retrieves the iCalendar, parses it, and returns the output as html. Rather than writing my own iCalendar parser, I made use of the Ruby Gem iCalendar. Right now it only shows non-recurring VEVENTS, but I might add more functionality to it later (ie: VTODO)
• iCalendar URL
The URL of the iCalendar file that you want to display
• Days to show
Show events up to this many days out from today
• Display Name
Simply the text that shows at the top of the widget. It is useful to give each calendar a unique display name when you have multiple instances of the widget running
• Update Interval
Automatically retrieve an updated calendar this often
The font that will be used to display the events
The color scheme that the widget will use (see below)
• Show end time / duration
If this is checked, the end time or the duration of the event will be displayed in italics underneath. According to the icalendar standard events can either have an end-time, a duration, or neither. I haven't seen too many calendars that are making use of duration, but the option is there should you want it.