Jade,
Right now, cal_items has a cal_item_id that is restricted to acs_events. Cal_item is an acs_object type subtyped from acs_event. My idea is to change cal_item_id to reference acs_objects, that way you allow any acs_object to be mapped to a calendar.
I think you actually might need to merge acs_events and cal_items so that you can store the date information along with the object mapping. That is the mapping of acs_object to calendar would be where the date attribute is stored.
Don,
Is this what you were thinking?