rem: url += ("&calid=" + encodeURIComponent(this.calId)); url += "&compressed=1&recurring=1"; 
add: url += ("&relativealarm=1&compressed=1&recurring=1" + "&fmt-out=text%2Fcalendar&calid=" + encodeURIComponent(this.calId)); 
context: calWcapCalendar.prototype.getItems = function(    itemFilter, maxResult, rangeStart, rangeEnd, iListener ){    // assure DATETIMEs:    if (rangeStart != null && rangeStart.isDate) {        rangeStart = rangeStart.clone();        rangeStart.isDate = false;    }    if (rangeEnd != null && rangeEnd.isDate) {        rangeEnd = rangeEnd.clone();        rangeEnd.isDate = false;    }    var zRangeStart = getIcalUTC(rangeStart);    var zRangeEnd = getIcalUTC(rangeEnd);    this.log( "getItems():\n\titemFilter=" + itemFilter +              ",\n\tmaxResult=" + maxResult +              ",\n\trangeStart=" + zRangeStart +              ",\n\trangeEnd=" + zRangeEnd );    try {        var url = this.session.getCommandUrl( "fetchcomponents_by_range" );        url += ("&calid=" + encodeURIComponent(this.calId));        url += "&compressed=1&recurring=1";                switch (itemFilter &                Components.interfaces.calICalendar.ITEM_FILTER_TYPE_ALL) {        case Components.interfaces.calICalendar.ITEM_FILTER_TYPE_TODO:            url += "&component-type=todo"; break;        case Components.interfaces.calICalendar.ITEM_FILTER_TYPE_EVENT:            url += "&component-type=event"; break;        }                const calIWcapCalendar = Components.interfaces.calIWcapCalendar;        var compstate = "";        if (itemFilter & calIWcapCalendar.ITEM_FILTER_REPLY_DECLINED)            compstate += ";REPLY-DECLINED";        if (itemFilter & calIWcapCalendar.ITEM_FILTER_REPLY_ACCEPTED)            compstate += ";REPLY-ACCEPTED";        if (itemFilter & calIWcapCalendar.ITEM_FILTER_REQUEST_COMPLETED)            compstate += ";REQUEST-COMPLETED";        if (itemFilter & calIWcapCalendar.ITEM_FILTER_REQUEST_NEEDS_ACTION)            compstate += ";REQUEST-NEEDS-ACTION";        if (itemFilter & calIWcapCalendar.ITEM_FILTER_REQUEST_NEEDSNOACTION)            compstate += ";REQUEST-NEEDSNOACTION";        if (itemFilter & calIWcapCalendar.ITEM_FILTER_REQUEST_PENDING)            compstate += ";REQUEST-PENDING";        if (itemFilter & calIWcapCalendar.ITEM_FILTER_REQUEST_WAITFORREPLY)            compstate += ";REQUEST-WAITFORREPLY";        if (compstate.length > 0)            url += ("&compstate=" + compstate.substr(1));                if (maxResult > 0)            url += ("&maxResult=" + maxResult);        // xxx todo: correctly normalized dates to zulu time?        url += ("&dtstart=" + zRangeStart);        url += ("&dtend=" + zRangeEnd);                var this_ = this;        this.session.issueAsyncRequest(            url + "&fmt-out=text%2Fcalendar", stringToIcal,            function( wcapResponse ) {                this_.getItems_resp( wcapResponse,                                     itemFilter, maxResult,                                     rangeStart, rangeEnd, iListener );            } );    }    catch (exc) {        if (iListener != null) {            iListener.onOperationComplete(                this.superCalendar, Components.results.NS_ERROR_FAILURE,                Components.interfaces.calIOperationListener.GET,                null, exc );        }        if (exc == Components.interfaces.calIWcapErrors.WCAP_LOGIN_FAILED) {            // silently ignore login failed, no calIObserver UI:            this.log( "getItems_resp() ignored: " + errorToString(exc) );        }        else            this.notifyError( exc );    }    this.log( "getItems() returning." );};
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/91e55737541dcc44b49686710a0aa3138569631e/calWcapCalendarItems.js/buggy/calendar/providers/wcap/calWcapCalendarItems.js