diff --git a/inc/RRule-v2.php b/inc/RRule-v2.php index 0d32b2b8..d06fbe59 100644 --- a/inc/RRule-v2.php +++ b/inc/RRule-v2.php @@ -946,6 +946,7 @@ function expand_event_instances( $vResource, $range_start = null, $range_end = n $expand = false; $dtstart = null; $is_date = false; + $has_repeats = false; foreach( $components AS $k => $comp ) { if ( $comp->GetType() != 'VEVENT' && $comp->GetType() != 'VTODO' && $comp->GetType() != 'VJOURNAL' ) { if ( $comp->GetType() != 'VTIMEZONE' ) $new_components[] = $comp; @@ -956,6 +957,8 @@ function expand_event_instances( $vResource, $range_start = null, $range_end = n $dtstart = new RepeatRuleDateTime( $dtstart_prop ); $is_date = $dtstart->isDate(); $instances[$dtstart->FloatOrUTC()] = $comp; + $rrule = $comp->GetProperty('RRULE'); + $has_repeats = isset($rrule); } $p = $comp->GetProperty('RECURRENCE-ID'); if ( isset($p) && $p->Value() != '' ) { @@ -1071,7 +1074,8 @@ function expand_event_instances( $vResource, $range_start = null, $range_end = n $component->ClearProperties( array('DTSTART'=> true, 'DUE' => true, 'DTEND' => true, 'RRULE' => true, 'RDATE' => true, 'EXDATE' => true) ); $component->AddProperty('DTSTART', $utc, ($is_date ? array('VALUE' => 'DATE') : null) ); - $component->AddProperty('RECURRENCE-ID', $utc, ($is_date ? array('VALUE' => 'DATE') : null) ); + if ( $has_repeats ) + $component->AddProperty('RECURRENCE-ID', $utc, ($is_date ? array('VALUE' => 'DATE') : null) ); $component->AddProperty('DURATION', $duration ); $new_components[] = $component; } diff --git a/testing/tests/binding/1009-REPORT-bound.result b/testing/tests/binding/1009-REPORT-bound.result index 68d54a8f..e69d5212 100644 --- a/testing/tests/binding/1009-REPORT-bound.result +++ b/testing/tests/binding/1009-REPORT-bound.result @@ -16,6 +16,7 @@ UID:33169d69-2969-4a96-a3e1-2e312b7614e6 SUMMARY:Near Daily Action Meeting X-MOZ-GENERATION:2 DTSTART:20081019T220000Z +RECURRENCE-ID:20081019T220000Z DURATION:PT30M END:VEVENT BEGIN:VEVENT @@ -95,6 +96,7 @@ UID:047871e3-6b70-4178-9af8-0ceb50f7b092 SUMMARY:Weekly Project Meeting X-MOZ-GENERATION:2 DTSTART:20081019T200000Z +RECURRENCE-ID:20081019T200000Z DURATION:PT1H END:VEVENT BEGIN:VEVENT @@ -130,6 +132,7 @@ UID:9429a973-2b13-4b1a-be09-948d75425c45 SUMMARY:Weekly catch-up X-MOZ-GENERATION:2 DTSTART:20081024T010000Z +RECURRENCE-ID:20081024T010000Z DURATION:PT1H END:VEVENT BEGIN:VEVENT @@ -167,6 +170,7 @@ CREATED:20080303T015329Z DTSTAMP:20080303T015422Z DURATION:P1D DTSTART:20081006T070000Z +RECURRENCE-ID:20081006T070000Z DURATION:P1D END:VEVENT BEGIN:VEVENT diff --git a/testing/tests/regression-suite/0959-REPORT-expanded.result b/testing/tests/regression-suite/0959-REPORT-expanded.result index fe0e4c27..23cb40ee 100644 --- a/testing/tests/regression-suite/0959-REPORT-expanded.result +++ b/testing/tests/regression-suite/0959-REPORT-expanded.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook -ETag: "8de0d254fb5a5aaeee4c7247782a544a" -Content-Length: 10328 +ETag: "1797b792419f24d15eab9c20154a9a11" +Content-Length: 10360 Content-Type: text/xml; charset="utf-8" @@ -390,6 +390,7 @@ DTSTAMP:20081123T210725Z DURATION:PT1H LOCATION: DTSTART:20081123T230000Z +RECURRENCE-ID:20081123T230000Z DURATION:PT1H END:VEVENT BEGIN:VEVENT diff --git a/testing/tests/regression-suite/0961-REPORT-public-expanded.result b/testing/tests/regression-suite/0961-REPORT-public-expanded.result index 209dfe7b..5527d2a4 100644 --- a/testing/tests/regression-suite/0961-REPORT-public-expanded.result +++ b/testing/tests/regression-suite/0961-REPORT-public-expanded.result @@ -1,8 +1,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, calendar-access -ETag: "19e6f18060210151545c2eead42ed1eb" -Content-Length: 5771 +ETag: "d19bcb248e8c45b4839ae6ace44bf39f" +Content-Length: 5803 Content-Type: text/xml; charset="utf-8" @@ -23,6 +23,7 @@ UID:33169d69-2969-4a96-a3e1-2e312b7614e6 SUMMARY:Near Daily Action Meeting X-MOZ-GENERATION:2 DTSTART:20081019T220000Z +RECURRENCE-ID:20081019T220000Z DURATION:PT30M END:VEVENT BEGIN:VEVENT diff --git a/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.result b/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.result index 14eda2ed..f0453638 100644 --- a/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.result +++ b/testing/tests/regression-suite/2000-REPORT-expanded-nz-holidays-2005.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook -ETag: "1ede6102fc1fe7d9d94f0e8f11fe6e42" -Content-Length: 13870 +ETag: "0d40303fa8e92937b6b3e1e54c1e30b4" +Content-Length: 14640 Content-Type: text/xml; charset="utf-8" @@ -24,6 +24,7 @@ UID:20081226-1-all-publicholidays-dol.govt.nz SUMMARY:Boxing Day TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20051226 +RECURRENCE-ID;VALUE=DATE:20051226 DURATION:P1D END:VEVENT END:VCALENDAR @@ -49,6 +50,7 @@ SUMMARY:New Year's Day TRANSP:TRANSPARENT X-MOZ-GENERATION:1 DTSTART;VALUE=DATE:20050101 +RECURRENCE-ID;VALUE=DATE:20050101 DURATION:P1D END:VEVENT END:VCALENDAR @@ -74,6 +76,7 @@ SUMMARY:Christmas Day TRANSP:TRANSPARENT X-MOZ-GENERATION:2 DTSTART;VALUE=DATE:20051225 +RECURRENCE-ID;VALUE=DATE:20051225 DURATION:P1D END:VEVENT END:VCALENDAR @@ -99,6 +102,7 @@ SUMMARY:Waitangi Day TRANSP:TRANSPARENT X-MOZ-GENERATION:4 DTSTART;VALUE=DATE:20050206 +RECURRENCE-ID;VALUE=DATE:20050206 DURATION:P1D END:VEVENT END:VCALENDAR @@ -124,6 +128,7 @@ SUMMARY:ANZAC Day TRANSP:TRANSPARENT X-MOZ-GENERATION:2 DTSTART;VALUE=DATE:20050425 +RECURRENCE-ID;VALUE=DATE:20050425 DURATION:P1D END:VEVENT END:VCALENDAR @@ -148,6 +153,7 @@ UID:20090601-1-all-publicholidays-dol.govt.nz SUMMARY:Queen's Birthday TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050606 +RECURRENCE-ID;VALUE=DATE:20050606 DURATION:P1D END:VEVENT END:VCALENDAR @@ -172,6 +178,7 @@ UID:20091026-1-all-publicholidays-dol.govt.nz SUMMARY:Labour Day TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20051024 +RECURRENCE-ID;VALUE=DATE:20051024 DURATION:P1D END:VEVENT END:VCALENDAR @@ -196,6 +203,7 @@ UID:20090102-1-all-publicholidays-dol.govt.nz SUMMARY:Day after New Year's Day TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050102 +RECURRENCE-ID;VALUE=DATE:20050102 DURATION:P1D END:VEVENT END:VCALENDAR @@ -221,6 +229,7 @@ SUMMARY:Boxing Day Holiday TRANSP:TRANSPARENT X-MOZ-GENERATION:1 DTSTART;VALUE=DATE:20051227 +RECURRENCE-ID;VALUE=DATE:20051227 DURATION:P1D END:VEVENT END:VCALENDAR @@ -245,6 +254,7 @@ UID:20091228-1-all-publicholidays-dol.govt.nz SUMMARY:Christmas Day Holiday TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20051226 +RECURRENCE-ID;VALUE=DATE:20051226 DURATION:P1D END:VEVENT END:VCALENDAR @@ -269,6 +279,7 @@ UID:20100101-1-all-publicholidays-dol.govt.nz SUMMARY:New Year's Day Holiday TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050103 +RECURRENCE-ID;VALUE=DATE:20050103 DURATION:P1D END:VEVENT END:VCALENDAR @@ -293,6 +304,7 @@ UID:20100607-1-all-publicholidays-dol.govt.nz SUMMARY:Day after New Year's Day Holiday TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050104 +RECURRENCE-ID;VALUE=DATE:20050104 DURATION:P1D END:VEVENT END:VCALENDAR @@ -317,6 +329,7 @@ UID:20081201-1-all-publicholidays-dol.govt.nz SUMMARY:Westland Anniversary Day (Monday nearest 1st December) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20051128 +RECURRENCE-ID;VALUE=DATE:20051128 DURATION:P1D END:VEVENT END:VCALENDAR @@ -341,6 +354,7 @@ UID:20081201-2-all-publicholidays-dol.govt.nz SUMMARY:Chatham Islands Anniversary Day (Monday nearest 30th November) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20051128 +RECURRENCE-ID;VALUE=DATE:20051128 DURATION:P1D END:VEVENT END:VCALENDAR @@ -365,6 +379,7 @@ UID:20090126-1-all-publicholidays-dol.govt.nz SUMMARY:Auckland Anniversary Day (Monday nearest 29th January) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050131 +RECURRENCE-ID;VALUE=DATE:20050131 DURATION:P1D END:VEVENT END:VCALENDAR @@ -389,6 +404,7 @@ UID:20090119-1-all-publicholidays-dol.govt.nz SUMMARY:Wellington Anniversary Day (Monday nearest 22nd January) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050124 +RECURRENCE-ID;VALUE=DATE:20050124 DURATION:P1D END:VEVENT END:VCALENDAR @@ -413,6 +429,7 @@ UID:20090119-2-all-publicholidays-dol.govt.nz SUMMARY:Southland Anniversary Day (Monday nearest 17th January) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050117 +RECURRENCE-ID;VALUE=DATE:20050117 DURATION:P1D END:VEVENT END:VCALENDAR @@ -437,6 +454,7 @@ UID:20090202-1-all-publicholidays-dol.govt.nz SUMMARY:Nelson Anniversary Day (Monday nearest 1st Feb) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050131 +RECURRENCE-ID;VALUE=DATE:20050131 DURATION:P1D END:VEVENT END:VCALENDAR @@ -462,6 +480,7 @@ SUMMARY: Hawkes' Bay Anniversary Day (Friday before 4th Monday of October) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20051021 +RECURRENCE-ID;VALUE=DATE:20051021 DURATION:P1D END:VEVENT END:VCALENDAR @@ -486,6 +505,7 @@ UID:20091102-1-all-publicholidays-dol.govt.nz SUMMARY:Marlborough Anniversary Day (Monday after 4th Monday of October) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20051031 +RECURRENCE-ID;VALUE=DATE:20051031 DURATION:P1D END:VEVENT END:VCALENDAR @@ -511,6 +531,7 @@ SUMMARY:Canterbury Anniversary Day (Second Friday after the first Tuesda y in November) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20051111 +RECURRENCE-ID;VALUE=DATE:20051111 DURATION:P1D END:VEVENT END:VCALENDAR @@ -535,6 +556,7 @@ UID:20090928-1-all-publicholidays-dol.govt.nz SUMMARY:South Canterbury Anniversary Day (4th Monday in September) TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050926 +RECURRENCE-ID;VALUE=DATE:20050926 DURATION:P1D END:VEVENT END:VCALENDAR diff --git a/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.result b/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.result index 3180d90f..ee936196 100644 --- a/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.result +++ b/testing/tests/regression-suite/2001-REPORT-expanded-queens-birthday-2005.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook -ETag: "f57bc105449e3d80e3411f3169b14ce4" -Content-Length: 722 +ETag: "9eda5c6028557b75a22a4328a90a6d08" +Content-Length: 757 Content-Type: text/xml; charset="utf-8" @@ -24,6 +24,7 @@ UID:20090601-1-all-publicholidays-dol.govt.nz SUMMARY:Queen's Birthday TRANSP:TRANSPARENT DTSTART;VALUE=DATE:20050606 +RECURRENCE-ID;VALUE=DATE:20050606 DURATION:P1D END:VEVENT END:VCALENDAR