# # Create an event that repeats monthly, created on Feb 29th. # # Should only return busy times on months where the 29th is present. # TYPE=PUT URL=http://regression.host/caldav.php/user4/home/RFC5545-Compliance-MONTHLY-Feb.ics HEADER=Content-Type: text/calendar AUTH=user4:user4 HEAD BEGINDATA BEGIN:VCALENDAR VERSION:2.0 PRODID:-//davical.org//NONSGML AWL Calendar//EN CALSCALE:GREGORIAN BEGIN:VTIMEZONE TZID:Pacific/Auckland BEGIN:STANDARD TZOFFSETFROM:+1300 TZOFFSETTO:+1200 DTSTART:19900318T030000 RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU TZNAME:NZST END:STANDARD BEGIN:DAYLIGHT TZOFFSETFROM:+1200 TZOFFSETTO:+1300 DTSTART:19901007T020000 RRULE:FREQ=YEARLY;UNTIL=20060930T140000Z;BYMONTH=10;BYDAY=1SU TZNAME:NZDT END:DAYLIGHT END:VTIMEZONE BEGIN:VEVENT UID:RFC5545-Compliance-MONTHLY-Feb DTSTAMP:20210918T123000 SUMMARY:I repeat monthly on the 29th CREATED:20210918T123000 DTSTART;TZID=Pacific/Auckland:20240229T070000 DTEND;TZID=Pacific/Auckland:20240229T080000 RRULE:FREQ=MONTHLY;COUNT=12 END:VEVENT END:VCALENDAR ENDDATA QUERY SELECT caldav_data.user_no, caldav_data.dav_etag, caldav_type, logged_user, uid, dtstamp, dtstart at time zone olson_name as dtstart, dtend at time zone olson_name as dtend, due, summary, location, description, priority, class, transp, rrule, url, percent_complete, tz_id, status, caldav_data AS " CalDAV Data", calendar_item.last_modified, dtend - dtstart AS "~Duration" FROM caldav_data LEFT JOIN calendar_item USING(dav_name) LEFT JOIN timezones ON (tz_id=tzid) WHERE caldav_data.dav_name = '/user4/home/RFC5545-Compliance-MONTHLY-Feb.ics'; ENDQUERY