39aldo39 / DecSyncCC

Android app to sync contacts, calendars and tasks without a server using DecSync
GNU General Public License v3.0
241 stars 10 forks source link

Following update, only the most recent events were synced to Android #72

Open glocalglocal opened 3 years ago

glocalglocal commented 3 years ago

Making the transition to v2 solved most problems here, but with one out of 8 calendars I am getting this: out of 1700 events in Thunderbird on w10, only around 70 (all recent ones) show up on Android. On the w10 system I see:

syncthingfolder\decsync\calendars\my_calendar_id\stored-entries is 1244kB syncthingfolder\decsync\calendars\my_calendar_id\stored-entries\mobile_id is 1231kB syncthingfolder\decsync\calendars\my_calendar_id\stored-entries\PC_id is 13kB

syncthingfolder\decsync\calendars\my_calendar_id\v2\ is 163kB syncthingfolder\decsync\calendars\my_calendar_id\v2\mobile_id is 87kB syncthingfolder\decsync\calendars\my_calendar_id\v2\PC_id is 76 kB

So, stored-entries seems to contain the full set as seen by Thunderbird, but the v2 folder contains only the newer events, which is what Android sees. I am not sure if there is a way to make the remaining 1630 events visible on Android. Opening and just saving an older event in Thunderbird, forces Radicale and DecSync to treat that as an update and the event is then synced across devices. The problem is I'd rather not do that manually 1630 times and I can't tell Thunderbird to 'update' 1630 events automatically.

Android 7, Moto G4

39aldo39 commented 3 years ago

Hm, you do have some serious issues for which I don't really know the cause.

A workaround for this would be to export the calendar in Thunderbird as an .ics file and then import it again. Hopefully this will update all events.

glocalglocal commented 3 years ago

A workaround for this would be to export the calendar in Thunderbird as an .ics file and then import it again. Hopefully this will update all events.

I tried back then and again now to import the ics as a new calendar but TB fails with:

uncaught exception: 2152333314 calCachedCalendar.js:794:30
    adoptItem resource:///components/calCachedCalendar.js:794
    addItem resource:///components/calCachedCalendar.js:738
    promiseOperation resource:///modules/calendar/utils/calAsyncUtils.jsm:24
    get resource:///modules/calendar/utils/calAsyncUtils.jsm:36
    putItemsIntoCal chrome://calendar/content/import-export.js:199
    AsyncFunctionNext self-hosted:692
    handle resource:///modules/MessengerContentHandler.jsm:496
[Exception... "<error>'<error>' when calling method: [calICalendar::adoptItem]"  nsresult: "0x804a0002 (<unknown>)"  location: "JS frame :: resource:///components/calCachedCalendar.js :: adoptItem :: line 794"  data: no] calCachedCalendar.js:794:30
    adoptItem resource:///components/calCachedCalendar.js:794
    addItem resource:///components/calCachedCalendar.js:738
    promiseOperation resource:///modules/calendar/utils/calAsyncUtils.jsm:24
    get resource:///modules/calendar/utils/calAsyncUtils.jsm:36
    putItemsIntoCal chrome://calendar/content/import-export.js:199
    AsyncFunctionNext self-hosted:692
    handle resource:///modules/MessengerContentHandler.jsm:496

Uploading the .ics to Radicale generates a Error: 400 Bad Request which doesn't help either.

Ideally, Thunderbird and Radicale/decsync would be able to resync/refresh everything, but apparently it's not possible. The result is that in unusual scenarios you may end up with Radicale/decsync being aware of only a subset of the events TB stores.