Results 1 to 10 of 19

Thread: Auto-provisioning calendar data/shared calendars

Hybrid View

  1. #1
    Join Date
    Jan 2007
    Location
    Minnesota
    Posts
    719
    Rep Power
    9

    Default 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?

  2. #2
    Join Date
    Mar 2007
    Location
    Austin
    Posts
    441
    Rep Power
    8

    Default

    Quote Originally Posted by Rich Graves View Post
    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

  3. #3
    Join Date
    Jan 2007
    Location
    Minnesota
    Posts
    719
    Rep Power
    9

    Default

    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.

  4. #4
    Join Date
    Aug 2005
    Posts
    1,433
    Rep Power
    12

    Default Admin write access

    Quote Originally Posted by Rich Graves View Post
    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.
    Bugzilla - Wiki - Downloads - Before posting... Search!

  5. #5
    Join Date
    Aug 2005
    Posts
    228
    Rep Power
    10

    Default

    Quote Originally Posted by Rich Graves View Post
    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 View Post
    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 View Post
    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 View Post
    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.
    Bugzilla - Wiki - Downloads - Before posting... Search!

  6. #6
    Join Date
    Aug 2005
    Posts
    1,433
    Rep Power
    12

    Default Some answers

    Quote Originally Posted by Rich Graves View Post
    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 View Post
    c) make those calendar shares appear for Outlook
    Not sure how to do that programmatically. Sam?

    Quote Originally Posted by Rich Graves View Post
    and e) webmail users,
    You can probably script this with zmmailbox.

    Quote Originally Posted by Rich Graves View Post
    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 View Post
    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.
    Bugzilla - Wiki - Downloads - Before posting... Search!

  7. #7
    Join Date
    Aug 2005
    Posts
    228
    Rep Power
    10

    Default

    Quote Originally Posted by dkarp View Post
    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.
    Bugzilla - Wiki - Downloads - Before posting... Search!

  8. #8
    Join Date
    Jan 2007
    Location
    Minnesota
    Posts
    719
    Rep Power
    9

    Default

    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).

  9. #9
    Join Date
    Jan 2007
    Location
    Minnesota
    Posts
    719
    Rep Power
    9

    Default

    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.

  10. #10
    Join Date
    Jan 2007
    Location
    Minnesota
    Posts
    719
    Rep Power
    9

    Default So, we'll be auto-provisioning course calendars this summer/fall...

    So, at long last, we've made a decision to license Zimbra for our 3000-some users, just as UW-Milwakee did for their 65,000 users. See https://apps.carleton.edu/campus/its...dar_Report.pdf and https://www4.uwm.edu/imt/about/news/zimbra/index.cfm

    Carleton College will be engaging Zimbra's professional services team to, essentially, determine the "right" answers to the various questions posed in this thread. To the maximum extent possible, all work done will be released under licenses at least as liberal as Zimbra itself. Everyone benefits when common solutions can be adopted.

    Our likely strategy will include designating our Moodle installation as the authoritative source and/or aggregation point for all course-related calendar and task data, so that professors need only make changes using appropriate Moodle tools, and the changes will cascade to each student's Zimbra calendar using iCalendar or XML protocols chosen with Zimbra professional services' help. There's some likelihood that some small amount of new code will need to be written on the Zimbra side to handle course adds, drops, and changes. That code probably won't be appropriate for general distribution along with Zimbra, but we won't consider it proprietary.

Similar Threads

  1. error in calendar resource Auto acceptdecline FALSE
    By kmuralidharan in forum Users
    Replies: 2
    Last Post: 07-10-2007, 08:35 AM
  2. Auto timezone problem in calendar
    By kdunphy in forum Administrators
    Replies: 8
    Last Post: 03-19-2007, 05:54 PM
  3. Outlook/Zimbra Private Appointments Issue
    By Smurthey in forum Zimbra Connector for Outlook
    Replies: 0
    Last Post: 03-09-2007, 06:29 AM
  4. Replies: 0
    Last Post: 10-04-2006, 06:09 AM
  5. M2 Experiences?
    By jordandeamattson in forum Users
    Replies: 17
    Last Post: 11-22-2005, 02:32 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •