protected bool NormalizeCalendarDateTime(CalendarDateTime property)
        {
            if (property == null)
            {
                return(true);
            }
            bool       flag     = true;
            ExTimeZone timeZone = ExTimeZone.UnspecifiedTimeZone;

            if (!string.IsNullOrEmpty(property.TimeZoneId))
            {
                timeZone = this.InboundContext.DeclaredTimeZones[property.TimeZoneId];
            }
            List <object> list = property.Value as List <object>;
            object        value2;

            if (list != null)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    object value;
                    if (!CalendarComponentBase.NormalizeSingleDateTime(timeZone, list[i], out value))
                    {
                        flag = false;
                        break;
                    }
                    list[i] = value;
                }
            }
            else if (!CalendarComponentBase.NormalizeSingleDateTime(timeZone, property.Value, out value2))
            {
                flag = false;
            }
            else
            {
                property.Value = value2;
            }
            if (!flag)
            {
                this.Context.AddError(ServerStrings.InvalidICalElement(property.CalendarPropertyId.ToString()));
            }
            return(flag);
        }