Closed thommierother closed 5 years ago
2445 is obsolete. We implement https://tools.ietf.org/html/rfc5545
And rrule is the way to go afaik.
OK, but we have the same rule in the RFC 5545 on P. 38: "UNTIL or COUNT"
3.3.10. Recurrence Rule Value Name: RECUR Purpose: This value type is used to identify properties that contain a recurrence rule specification. [....] ; The UNTIL or COUNT rule parts are OPTIONAL, ; but they MUST NOT occur in the same 'recur'.
If I create a new reocurring event with the current calendar app, I see a rrule string in the ics which contains both UNTIL and COUNT values, which is not correct. If I understand the RFC correctly.
BEGIN:VCALENDAR PRODID:-//ownCloud calendar v1.6.1 VERSION:2.0 CALSCALE:GREGORIAN BEGIN:VEVENT CREATED:20181228T132119Z DTSTAMP:20181228T132216Z LAST-MODIFIED:20181228T132216Z UID:RCORTELEPH5LWU9CQOUPQ SUMMARY:Test recurrence CLASS:PUBLIC STATUS:CONFIRMED RRULE:FREQ=DAILY SEQUENCE:1 DTSTART;TZID=Europe/Berlin:20181228T103000 DTEND;TZID=Europe/Berlin:20181228T110000 END:VEVENT BEGIN:VTIMEZONE TZID:Europe/Berlin BEGIN:STANDARD TZNAME:CET TZOFFSETFROM:+0000 TZOFFSETTO:+0100 DTSTART:19791231T230000 RDATE:19791231T230000 END:STANDARD BEGIN:DAYLIGHT TZNAME:CEST TZOFFSETFROM:+0100 TZOFFSETTO:+0200 DTSTART:19810329T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 END:DAYLIGHT BEGIN:DAYLIGHT TZNAME:CEST TZOFFSETFROM:+0100 TZOFFSETTO:+0200 DTSTART:19800406T020000 RDATE:19800406T020000 END:DAYLIGHT BEGIN:STANDARD TZNAME:CET TZOFFSETFROM:+0200 TZOFFSETTO:+0100 DTSTART:19971026T030000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 END:STANDARD BEGIN:STANDARD TZNAME:CET TZOFFSETFROM:+0200 TZOFFSETTO:+0100 DTSTART:19800928T030000 RRULE:FREQ=YEARLY;UNTIL=19961027T030000;COUNT=16;BYDAY=-1SU;BYMONTH=9 RDATE:19950924T030000 END:STANDARD END:VTIMEZONE END:VCALENDAR
yeah that s not correct! But I can't reproduce that behavior. Do you have any steps for me?
based on OC 10.0.10 with calendar 1.6.1
I always see that strange "UNTIL=19961027T030000" string in it BUT: if I use a newly created calendar (not one which already existed on the host), the rrule is correct. I only see it if if I add the new calendar object to the one calendar which I used for some years .... Hmmmm, this is really strange ...
BEGIN:VCALENDAR PRODID:-//ownCloud calendar v1.6.1 VERSION:2.0 CALSCALE:GREGORIAN BEGIN:VEVENT CREATED:20181228T222411Z DTSTAMP:20181228T222446Z LAST-MODIFIED:20181228T222446Z UID:BFPS0GXJQWHMKNL65UJ5NQ SUMMARY:test 2 CLASS:PUBLIC STATUS:CONFIRMED DTSTART;TZID=Europe/Berlin:20181231T113000 DTEND;TZID=Europe/Berlin:20181231T120000 RRULE:FREQ=DAILY SEQUENCE:0 END:VEVENT BEGIN:VTIMEZONE TZID:Europe/Berlin BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0100 TZNAME:CET DTSTART:19701025T030000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 END:STANDARD END:VTIMEZONE END:VCALENDAR
Calendar object created in a fresh (!) calendar - all fine!
I tested again and the wrong rrule lines (with both UNTIL and COUNT) are NOT imported into a fresh calendar. So the validation seems to be correct - good work ;-) Will close this ...
Steps to reproduce
Expected behaviour
no validation error. OC calendar app follows RFC standard and/or validates imported data according to the standard . The calendar app either creates new or imports foreign calendar objects with inaccurate recurrence rules. Example string:
DTSTART:19800928T030000 RRULE:FREQ=YEARLY;UNTIL=19961027T030000;COUNT=16;BYDAY=-1SU;BYMONTH=9
The app shall respect the recurrence rule for newly created objects, as described in https://tools.ietf.org/html/rfc2445#page-40calendar :
4.3.10 Recurrence Rule
Value Name: RECUR
Purpose: This value type is used to identify properties that contain a recurrence rule specification.
Formal Definition: The value type is defined by the following notation:
The calendar importer should also validate calendar objects so that the recurrence rule is respected
For further reference: https://github.com/owncloud/calendar/issues/958#issuecomment-438825275 https://sourceforge.net/p/outlookcaldavsynchronizer/tickets/1057/
Note: currently the example string is parsed by the owncloud calendar without errors, there is only a validation error from other applications like caldavsynchronizer client who receive the data from owncloud
Actual behaviour
validation error in foreign application
Operating system: Ubuntu 18.04 LTS
Web server: Apache 2.4.x
Database: MariaDB
PHP version: 7.2
ownCloud version: (see your admin page) 10.0.10
Calendar version: (see the apps page) 1.6.1
Updated from an older installed version or fresh install: updated
Signing status (ownCloud 9.0 and above): signed