Skip to content

Avoid creating duplicate events by respecting the UID field#712

Merged
dbarnett merged 2 commits intomasterfrom
respect_uid
Aug 27, 2024
Merged

Avoid creating duplicate events by respecting the UID field#712
dbarnett merged 2 commits intomasterfrom
respect_uid

Conversation

@dbarnett
Copy link
Copy Markdown
Collaborator

For events that contain a UID field, use Google Calendar's event import feature instead of insert to avoid creating duplicates.

Note that events with UID populated may still get processed as new/updated events if the SEQUENCE number is also incremented (https://www.kanzaki.com/docs/ical/sequence.html).

Fixes #492 & #583.

For events that contain a UID field, use Google Calendar's event
"import" feature instead of "insert" to avoid creating duplicates.

Note that events with UID populated may still get processed as
new/updated events if the SEQUENCE number is also incremented
(https://www.kanzaki.com/docs/ical/sequence.html).
@dbarnett
Copy link
Copy Markdown
Collaborator Author

Alright, I figured I may not get feedback on the quality of this until after it's released, so I took another look through the changes with a paranoid eye, caught and fixed a couple issues, and added an opt-out flag --use-legacy-import along with more in-app messaging about it.

With that I'm going to go ahead and merge this in a bit if nobody objects.

Comment on lines +1532 to +1535
if is_skipped_dupe:
# TODO: #492 - Offer to force import dupe anyway?
self.printer.msg(
f'Skipped duplicate event {event_label}.\n')
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI in my testing the API didn't seem to respect the "sequence" number and still considered the events duplicates.

And another confusing corner case: seems like deleted events can still be considered "duplicates" and skipped.

Those could both be helped if we added more explicit detection and prompted users for how to resolve weird cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Import ics duplicates

2 participants