I'd like to pre-fill the Zimbra calendars of our 2200 students and faculty with their class schedules. I've munged the schedule data into iCalendar format, or I could use Zimbra native/csv format if that's a little more efficient. So how do I get the data to the user accounts?

Obvious approaches include:

1) Stick each course's iCalendar data on a web server and automatically subscribe the users thereto. How? Would this store redundant data, or pointers?

2) Shove the iCalendar data into each individual calendar. Probably easiest, but would that store a lot of redundant data, or just pointers? And how would I synchronize changes? Students add/drop courses a lot during the first few weeks of the term.

3) a) Create all the course calendars within a system account, b) automatically set share permissions appropriately (and regularly update them as enrollments change), c) make those calendar shares appear for d) Outlook and e) webmail users, f) make sure that the right things hapen when courses drop/permissions revoke (i.e., no dangling share pointers in either Outlook or webmail), and g) make those calendars show up as "busy" in user free/busy lists.

I'm guessing that #3 would be most efficient, but I do not know how to do any of 3b-3g.

Oh, and ideally, this should all work for iSync/iCal/Zimbra Mobile users, too. Does that suggest #2?