danvratil/FBEventSync

Events persist in calendar when disabled in settings

visualcurrent opened this issue · 4 comments

Multiday events that I have explicitly marked as "Not Going" in Facebook persist in my local calendar regardless of refreshing either my local calendar or resyncing Event Sync for Facebook (ESF), even after waiting days or restarting phone.

"Events I'm not Attending" is disabled in ESF settings. Yet the declined events continue to show locally as if they were "Events I have not Responded To."

I wonder if this stems from the same bug from issue #32: Disabled calendars are not unsynced

ESF is otherwise fantastic!

Any chance the multiday events are/were already in progress?

There's a special check in the app that basically ignores any events that are in the past because Facebook no longer provides any information about them.

The obvious fix is to not ignore events that are still in progress, AFAIK Facebook should still be reporting those to us.

What's strange is that if Facebook no longer provides any information about them, how is your app holding on to the event?

When we no longer see the event in the sync from Facebook, but we have it in the local calendar, we just keep it in the calendar, if it's in the past. If the local event is in the future but disappeared, we assume the user has unsubscribed from the event and remove it.

The bug here then indeed is that we check if the event is in the past by checking its start date, not the end date, I'll fix it in the upcoming release.

And why is there no option to delete the event from my local calendar?

Because the calendar is marked as read-only, since there's no way for the app to sync any changes you would do in the phone calendar back to Facebook. Unfortunately Android does not allow more fine-grained access control to allow deleting only (and even then, it would be unclear what should happen - unsubscribe completely, or just move to declined?)