The recurrance_id in acs_events is shared for all the entries, so you could group on that and pick the minimum calendar_id to get the first entry for the recurring event.
Something like that, anyway, should give you a starting place.
You've hit one of the shortcomings of the calendar datamodel ... there should be one acs_event entry only and calendar item should be a many-to-one map of time descriptions to that single acs_event.
Someday we're going to rewrite this package ...