Bug
Bulwark creates recurring events with skip: "omit" by default.
This results in an iCalendar RRULE containing:
FREQ=YEARLY;WKST=MO;COUNT=100;INTERVAL=1;BYMONTH=8;BYMONTHDAY=22;SKIP=OMIT
DAVx5 4.5.14 cannot import this rule into the Android Calendar Provider and fails synchronization with:
java.lang.IllegalArgumentException: Invalid recurrence rule
Environment
- Bulwark: latest beta container
- Stalwart: 0.15.4
- DAVx5: 4.5.14-ose
- Android: 16
- Device: Samsung Galaxy S22 Ultra
Reproduction
- Create a recurring yearly event in Bulwark.
- Use a normal date such as August 22.
- Set a recurrence count.
- Sync the calendar with DAVx5.
- DAVx5 fails when inserting the recurring event into the Android Calendar Provider.
Expected behavior
A normal Gregorian recurrence should not contain SKIP=OMIT unless skip semantics are actually required.
Expected:
FREQ=YEARLY;WKST=MO;COUNT=100;INTERVAL=1;BYMONTH=8;BYMONTHDAY=22
Actual behavior
Bulwark creates the recurrence with:
rscale: "gregorian"
skip: "omit"
The resulting CalDAV response contains SKIP=OMIT, which causes DAVx5/Android Calendar Provider to reject the recurrence rule.
Additional information
Deleting the problematic event and recreating it on the Android phone fixes DAVx5 synchronization.
The problematic event was originally created in Bulwark.
The issue appears to originate from Bulwark's recurrence rule construction, specifically the unconditional default:
skip: "omit"
skip should probably only be included when explicitly required.
DAVx5 error
java.lang.IllegalArgumentException:
Invalid recurrence rule:
FREQ=YEARLY;WKST=MO;COUNT=100;INTERVAL=1;BYMONTH=8;BYMONTHDAY=22;SKIP=OMIT
Bug
Bulwark creates recurring events with
skip: "omit"by default.This results in an iCalendar RRULE containing:
FREQ=YEARLY;WKST=MO;COUNT=100;INTERVAL=1;BYMONTH=8;BYMONTHDAY=22;SKIP=OMIT
DAVx5 4.5.14 cannot import this rule into the Android Calendar Provider and fails synchronization with:
java.lang.IllegalArgumentException: Invalid recurrence rule
Environment
Reproduction
Expected behavior
A normal Gregorian recurrence should not contain
SKIP=OMITunless skip semantics are actually required.Expected:
FREQ=YEARLY;WKST=MO;COUNT=100;INTERVAL=1;BYMONTH=8;BYMONTHDAY=22
Actual behavior
Bulwark creates the recurrence with:
rscale: "gregorian"
skip: "omit"
The resulting CalDAV response contains
SKIP=OMIT, which causes DAVx5/Android Calendar Provider to reject the recurrence rule.Additional information
Deleting the problematic event and recreating it on the Android phone fixes DAVx5 synchronization.
The problematic event was originally created in Bulwark.
The issue appears to originate from Bulwark's recurrence rule construction, specifically the unconditional default:
skip: "omit"
skipshould probably only be included when explicitly required.DAVx5 error
java.lang.IllegalArgumentException:
Invalid recurrence rule:
FREQ=YEARLY;WKST=MO;COUNT=100;INTERVAL=1;BYMONTH=8;BYMONTHDAY=22;SKIP=OMIT