| Welcome to the Zimbra - Forums! | |
Welcome, if you would like to post a comment please register.
We also encourage you to explore all things Zimbra with our team and members of the community.
|  | | 
03-27-2007, 09:08 AM
| | Outstanding Member | |
Posts: 596
| | Auto-provisioning calendar data/shared calendars 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? | 
03-28-2007, 12:41 AM
| | Special Member | |
Posts: 141
| | Quote:
Originally Posted by Rich Graves 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? | I'm contemplating a similar process. We're still considering Zimbra at this point, I'm just theorizing that this would be possible as a possible benefit of Zimbra's open architecture. Any updates on your progress and/or approach would be appreciated. | 
03-28-2007, 07:54 AM
| | | Quote:
Originally Posted by Rich Graves 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 currently have several 'calendar' users who have their calendars shared to employees. I manage the permissions and shares through these users. (they have no password so they're only accessible through the admin console)
b - I haven't seen any way to automatically do permissions for calendar shares, this would be something nice to have.
d - As long as the user has view permissions they should be able to add them in Outlook, however it is a manual process to add the shared calendar in Outlook, it does not automatically sync. We're using Outlook 2003. I don't think it's capable of using the automatic share messages sent by the calendar in Zimbra.
e - the webclient will add the calendar via the accept button in the share message.
f - That's a setting when the calendar is added to the user's calendars in the webclient. As for outlook, that's probably a setting in there.
As for 'a' - I also have this with a Holidays calendar, which is another calendar user that is pulling from a remote .ics file. You should be able to get it to do that so you can use your current schedules you have created if you find that easier.
Hope I've been some help
p24t | 
03-29-2007, 10:53 AM
| | Outstanding Member | |
Posts: 596
| | We haven't actually bought Zimbra either, so this is a pre-sales question (hint).
Is it even possible to do #2, administratively shove a bunch of events into a user's calendar? The REST interfaces all seem to assume that you know the user's password.
We are able to do https://webmail.carleton.edu/calendar.PNG today and would hate to lose that functionality. Admin staff who use calendaring every day might be motivated to manually enter global events that affect them. Students and faculty won't, and will need to be provisioned. While they don't know it, this has an effect on the squeaky-wheel admin staff as well -- imagine your a staff person trying to schedule your student employees, or a dean scheduling a faculty member for a committee meeting. That faculty member doesn't normally use online calendaring and has no real motivation to keep it up to date; but it would be pretty dumb if the system didn't know about his course schedules. We have hear from many faculty that online calendaring is not a productivity gain, but a shift of work from the secretary who used to schedule their meetings to the individual. | 
03-29-2007, 12:04 PM
| | Zimbra Employee | |
Posts: 1,434
| | Admin write access Quote:
Originally Posted by Rich Graves We haven't actually bought Zimbra either, so this is a pre-sales question (hint).
Is it even possible to do #2, administratively shove a bunch of events into a user's calendar? The REST interfaces all seem to assume that you know the user's password. | If you have an admin login, you can POST to any user's account via the REST interface on the admin port. | 
03-29-2007, 12:06 PM
| | Zimbra Employee | |
Posts: 228
| | Quote:
Originally Posted by Rich Graves 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? | For (1) you could do this with zmprov/zmailbox via: Code: /opt/zimbra/bin/zmprov
prov> sm user1
mailbox: user1@macpro.local, size: 8.40 MB, messages: 516, unread: 168
mbox user1@macpro.local> createFolder --view appointment --url http://server/cal.ics /schedule This would import the data into a calendar called "schedule", and also set that URL on the calendar.
Users could refresh manually or you could refresh it via: Code: mbox user1@macpro.local> syncFolder /schedule Doing this creates copy of all the appointments in a local calendar.
Unfortunately in testing the createFolder case above, it doesn't look like the URL got correctly passed on create. I'll file a bug and get it fixed in the next patch release. Quote:
Originally Posted by Rich Graves 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. | You can probably do this with: Code: mbox user1@macpro.local> postRestURL /calendar /tmp/data.ics though I'm not sure on the details of synchronizing. As long as the unique ical id in the appt stays the same I'm guessin updates would work ok. You might be able to handle deletes by treating them as appointment cancels when you post them. You potentially might have a chunk of work here.
The one benefit of this is I seem to recall Zimbra Mobile only supports syncing the primary calendar (due to a limitation in the protocol used by the phones). Quote:
Originally Posted by Rich Graves 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. | For this, you could do as you suggest:
1) create the special account
2) create a separate calendar for each class in that account
3) use zmmailbox modifyFolderGrant to grant access to a group/user (or grant access to everyone, if this is just public information)
4) for each user in that class, use zmailbox createMountpoint to mount the classes they have so they appear locally: Code: mbox user1@macpro.local> createMountpoint --view appointment -F # CS101 class-schedules@carleton.edu CS101 Where the first CS101 is what you want to call it in the users account, and the second is what it is called remotely.
This makes the data visible from within the calendar app, but doesn't copy it. It also lets users pick different colors for each calendar, turn them on/off, etc. Quote:
Originally Posted by Rich Graves 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? | Yes, 3 is probably the cleanest/easiest solution, with the potential gotcha being limitations in Zimbra Mobile. (3) should be ok with iSync, IIRC. If the Zimbra iSync plugin has issues with mountpoints though, users could always just subscribe directly to the each class calendar in iCal, which is another nice property of (3).
Hope that helps. There are definitely some outstanding enhancement requests that we are looking into for sharing in general, which could automate a lot of this process in the future. | 
03-29-2007, 12:08 PM
| | Zimbra Employee | |
Posts: 1,434
| | Some answers Quote:
Originally Posted by Rich Graves b) automatically set share permissions appropriately (and regularly update them as enrollments change), | Share the calendar with a group, then just keep the group's membership accurate. Quote:
Originally Posted by Rich Graves c) make those calendar shares appear for Outlook | Not sure how to do that programmatically. Sam? Quote:
Originally Posted by Rich Graves and e) webmail users, | You can probably script this with zmmailbox. Quote:
Originally Posted by Rich Graves f) make sure that the right things hapen when courses drop/permissions revoke (i.e., no dangling share pointers in either Outlook or webmail), | zmmailbox would be able to help with this, although it's probably significantly tougher to do since you'd have to first look at the folder list for the user before deciding which mountpoint to delete. Quote:
Originally Posted by Rich Graves and g) make those calendars show up as "busy" in user free/busy lists. | I'm not sure if shared calendars can be made to show up as busy in free/busy data. | 
03-29-2007, 12:22 PM
| | Zimbra Employee | |
Posts: 228
| | Quote:
Originally Posted by dkarp I'm not sure if shared calendars can be made to show up as busy in free/busy data. | yeah, I missed that for solution (3). I don't think there is a way to have shared calendars /mountpoints show up in freebusy today. | 
03-29-2007, 04:21 PM
| | Outstanding Member | |
Posts: 596
| | Oh, I hadn't realized that "Exclude this calendar when reporting free/busy times" is only for personal and imported remote calendars, not shared calendars. I though the only issue was administratively setting this option, but there ain't one. If there isn't an existing RFE for this, that'd be nice.
So for course schedules, it looks like the best approach, currently, is to administratively subscribe the user to an iCal feed. It means storing redundant data, but 15,000 or so rows shouldn't be that big a deal, should it? Not being able to set an option to "reload remote calendar every X" is a downer, but course schedules don't tend to change, and I'm sure there's an RFE for this. Oh, I guess you could cycle through the members of the group and syncFolder /schedule each one, but that would suck.
Runner-up would be posting to the user's personal calendar. Pluses: shows up in Zimbra Mobile (is there an existing RFE for selecting remote+shared calendars to overlay on Zimbra Mobile data?). Minuses: Would show up in the same color/layer as personal appointments. Much more difficult, if not impossible, to administratively remove course data (maybe we could use magical values for ical ids and do a complicated sync, or maybe we only add courses, and leave it to the user to remove dropped courses). | 
03-30-2007, 01:40 PM
| | Outstanding Member | |
Posts: 596
| | I guess another obvious approach would be
4) Forge iTIP invitations to the class meeting times from the course instructor to the students. But that has several issues, mainly that we don't want faculty inundated with accepts/declines. Also, a potential FERPA issue in showing the full list of students to each student (but obviously we could send individual invites).
Thanks, all. Still waiting for answer from sam (?) on programmatically adding shared calendars. We've got a few issues, but Zimbra is already ahead of the other candidates on this issue. It's just a little bit behind Horde Kronolith freeware. | | Thread Tools | | | | Display Modes | Linear Mode | | Why Join? Registering let's you ask questions, makes it easier to search, displays any files attached to posts, and notifies you about replies.  |