Treating calendar information as page data is always horrible. Have a look at the event_calendar extension:
https://github.com/radiant/radiant-event-calendar-extension
With event_map and taggable_events it gives you this:
http://350.royalsociety.org/calendar/2010/june
or more prosaically, this:
http://bcrunners.org.uk/calendar
and it comes with a tolerable UI.
best,
Will