[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Zimbra appointments that recur "forever," don't.



Cool, thanks for the info. I'm not sure if we've hit this with anyone or 
not, we usually recommend people only set recurrences to max out at 1 
year...but I'm sure we'll have plenty of people that have more.


----- Original Message -----
From: Rich Graves <rgraves@carleton.edu>
To: zimbra-hied-admins <zimbra-hied-admins@sfu.ca>
Sent: Wed Dec 30 12:05:24 2009
Subject: Zimbra appointments that recur "forever," don't.

Your site will encounter the same problem  as your installation hits the 1, 
2, or 3 year mark. It is *not* related to our 6.0.4 upgrade; it happens in 
5.x as well.

For performance reasons, Zimbra, starting with version 5.0.7 (summer 2008), 
has certain default limits for appointments set to repeat "forever":

  zimbraCalendarRecurrenceDailyMaxDays: 730
  zimbraCalendarRecurrenceMaxInstances: 0
  zimbraCalendarRecurrenceMonthlyMaxMonths: 360
  zimbraCalendarRecurrenceOtherFrequencyMaxYears: 1
  zimbraCalendarRecurrenceWeeklyMaxWeeks: 520
  zimbraCalendarRecurrenceYearlyMaxYears: 100

What this means is that if you created a daily event two years ago, it will 
suddenly stop appearing on your calendar at the 730 day mark. The limit for 
weekly recurrence is 10 years. For monthly, 3 years. For yearly (like 
birthday reminders), 100 years. For "other," like a custom every-14-days 
recurrence, the limit is one year. If you open the item details, there is no 
explanation of the unexpected termination of the series.

Common reasons for meetings that recur "forever" are work schedules.

Developer comments from the creation of these tunables in early 2008:

		Previously the limits were hard-coded.  Max instances expanded were
		limited to 1200.  There weren't separate limits for recurrence
		frequency, and all rules were limited to 30 years.

		If you don't want any limits, set all limits to 0.  The downside of
		allowing huge or unlimited range for recurrence expansion is that
		the appointments stay live longer.  Let's say every recurring
		appointment had 50-year effective range.  When searching for
		appointments for today, we have to examine all appointments in the
		last 50 years.

		Server restart is required after adjusting limits.  Appointments
		created with old limits will still have range based on the old
		limits.  They will be updated to the new range upon any
		modification by the user.

		A migration script is needed to update all existing appointments.

The calendar data passed to mobile devices, Outlook, and Apple iCal has no 
limit. So it's entirely possible that if you created a recurring item two 
years ago, it will continue to show up in Outlook (which has a hard-coded 
5-year limit, I think) but not in Zimbra web or free/busy search.

Workarounds:

 1) Slide the series forward. When one year in (or when you notice that the 
2-year horizon is imminent), change the start date such that it extends 
farther into the future, and less far into the past. This is "cleanest" and 
performs best, but runs the risk of forgetting. It also makes your distant 
past calendars "untrue."
 2) When you hit the 2-year horizon, create a new recurrence. This will 
"look" right in the web interface, but will likely create duplicates in 
other clients with different limits for "infinite" recurrences.
 3) If you want to block off time every workday "forever," use 5 weekly 
recurrences (one per weekday) rather than 1 daily recurrence. Weeklies will 
then last 10 years. It's not forever, but it's more than 2.

References:

The configurable limits were defined here:
  http://bugzilla.zimbra.com/show_bug.cgi?id=24926
  http://bugzilla.zimbra.com/show_bug.cgi?id=30333
RFE to give users some clue what's going on:
  http://bugzilla.zimbra.com/show_bug.cgi?id=43753
Forum:
  http://www.zimbra.com/forums/administrators/36055-solved-recurrences-no-end-date-end-after-5000-occurrences.html
-- 
Rich Graves http://claimid.com/rcgraves
Carleton.edu Sr UNIX and Security Admin
CMC135: 507-222-7079 Cell: 952-292-6529