Best solution for multiple dates for events

I developed an application for event scheduling and right now we have a field for the start date and one for the end date. Since most events are multiple days or repeat each week for a period of time, there is also a text field to list the days off, since holidays or events may cause an event to not happen during a particular week. The downside is the application doesn't really know about all of the individual dates of the event.

I am thinking about re-writing some of the application to track each day of an event. So far, the ideas I've come up with aren't all that elegant and am wondering if anyone has any feedback or other ideas.

Here's what I have thought of so far:

  1. Since most events won't have more than 10 repeating days or dates, I could create 10 different date fields that could be used to track all the days and could also create two calculated fields that could check the min/max of the range of fields to determine start date and end date. It would mean having to check up to 10 different fields to say send a reminder email for the instructor of the event.
  2. Use a connected field to an object that has an entry for each date on the calendar allowing for multiple selected records for that field. Downside is then having a drop down that would require the user to scroll through a lot of dates to find the one or ones they wanted, plus the further out you wanted to be able to schedule the more overall dates you would have to have in your connected record object.