Recurring events for Advent days are added incorrectly to calendar



  • First, thanks for the great work on DAVDroid/ICSDroid.

    Second, I am unsure whether this issue is related to ICSDroid or the default LineageOS calendar, so I hope I am not wasting your time...

    I am using LineageOS (Android 7) and F-Droid, which is where I got ICSDroid from. The current version there is 1.5.5 as far as I can tell.

    I tried to set up recurring events for several holidays, therefore I created an ICS calendar, uploaded it to my webserver and tried to subscribe to. It worked quite good, except for the recurring events for the 1st to 4th advent. Instead of adding to events to the sundays, it will always add them to thursdays. Also, the 1st advent seems to be omitted if the thursday before that thursday the 2nd advent is assigned to is in november.

    Here is the excerpt of my holidays calendar, which results in incorrect entries in my calendar app after sync: 0_1525813012800_advent.ics.

    Steps to reproduce:

    • Use LineageOS 14.1
    • Download ICSDroid from F-Droid
    • Subscribe to the ICS Calendar I attached (upload it to some webserver beforehand)
    • Open the default LineageOS calendar app and go to december
    • For 2018, there is only the 2nd, 3rd and 4th advent added, to the first, second and third Thursday in December respectively. The first advent is ignored completely.

    I really hope I supplied all the information you need to track down my issue.

    Please pardon me if this issue is not related to ICSDroid, but my knowledge of calendar handling is rather limited.

    Again, thanks for providing and curating both DAVDroid and ICSDroid.


  • developer

    Hello,

    ICSdroid is not responsible for calculating recurrencies. This is done by Android. In your case, the start date is in year 0000:

    DTSTART;VALUE=DATE:00001127
    DTEND;VALUE=DATE:00011127
    RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=SU;BYMONTHDAY=27,28,29,30;BYMONTH=11
    

    which is not supported by Android:

    1. Android's calendar provider is unfortunately limited to 32-bit date values, which means that only recurring events between 1902 and 2037 can be calculated correctly.
    2. I don't know whether Android handles the date reform of 1582 correctly.

    Does it work when you use, for instance, 1950 for DTSTART/DTEND?


    0_1525863725606_Gregorianscher_Kalender_Petersdom.jpg
    Antonio Lilio is genuflecting before the pope, presenting his printed calendar.
    Camillo Rusconi (1658–1728); photograph de:User:Rsuessbr CC-BY-SA



  • Hello rfc2822,

    I understand that this issue is not related to ICSdorid, please excuse me.

    However, thank you very much for your suggestion - I was not aware of Android being limited in that way. I tried your suggestion and set all dates to a minimum of 1970 (just to be sure), and indeed, after a resync everything worked as expected.

    Thank you kindly for helping me out! Have a nice week 🙂


  • developer

    @charlydelta Thanks and I'm happy that it now works for you 🙂