add: var alarmComp = icalcomp.getFirstSubcomponent("VALARM"); if (alarmComp) { var triggerProp = alarmComp.getFirstProperty("TRIGGER"); var duration = Components.classes["@mozilla.org/calendar/duration;1"] .createInstance(Components.interfaces.calIDuration); duration.icalString = triggerProp.stringValue;  if (duration.minutes) { this.setProperty("alarmLength", duration.minutes); this.setProperty("alarmUnits", "minutes"); } else if (duration.hours) { this.setProperty("alarmLength", duration.hours); this.setProperty("alarmUnits", "hours"); } else if (duration.days) { this.setProperty("alarmLength", duration.days); this.setProperty("alarmUnits", "days"); }  var related = triggerProp.getParameter("RELATED"); if (related && related == "END") this.setProperty("alarmRelated", "END"); else this.setProperty("alarmRelated", "START");  var email = alarmComp.getFirstProperty("X-EMAILADDRESS"); if (email) this.setProperty("alarmEmailAddress", email); } 
context:     setItemBaseFromICS: function (icalcomp) {        this.modify();        this.mapPropsFromICS(icalcomp, this.icsBasePropMap);        for (var attprop = icalcomp.getFirstProperty("ATTENDEE");             attprop;             attprop = icalcomp.getNextProperty("ATTENDEE")) {                        var att = new CalAttendee();            att.icalProperty = attprop;            this.addAttendee(att);        }        var orgprop = icalcomp.getFirstProperty("ORGANIZER");        if (orgprop) {            var org = new CalAttendee();            org.icalProperty = orgprop;            this.mOrganizer = org;        }                var gen = icalcomp.getFirstProperty("X-MOZILLA-GENERATION");        if (gen)            this.mGeneration = parseInt(gen.stringValue);        // find recurrence properties        var rec = null;        for (var recprop = icalcomp.getFirstProperty("ANY");             recprop;             recprop = icalcomp.getNextProperty("ANY"))        {            var ritem = null;            if (recprop.propertyName == "RRULE" ||                recprop.propertyName == "EXRULE")            {                ritem = new CalRecurrenceRule();            } else if (recprop.propertyName == "RDATE" ||                       recprop.propertyName == "EXDATE")            {                ritem = new CalRecurrenceDate();            } else {                continue;            }            ritem.icalProperty = recprop;            if (!rec) {                rec = new CalRecurrenceInfo();                rec.item = this;            }            rec.appendRecurrenceItem(ritem);        }        this.mRecurrenceInfo = rec;    },
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/c5d97f5484b4e0cb157dd7e7278df7d99f23d168/calItemBase.js/clean/calendar/base/src/calItemBase.js