closeio / closeio/sync-engine

Move Microsoft calendar event deletions from api to sync pods

Open
#425 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
30
Forks
13
Avg merge
1d 2h
Merged PRs (30d)
8

Description

In case of Google you can still fetch deleted events from the API even though they disappear in your calendar. In case of Microsoft they disappear both from the API and calendar, so they cannot be fetched in sync pods and synced there, the only way we can now something got deleted is in the webhook notifications.

To do less work (especially when cancelling recurrences with overrides) that could be potentially done in the background instead of marking events as cancelled directly in the api, store the uids of deleted events in a table event_cancellations(id PARIMARY KEY, calendar_id INT, uid TEXT, created_at DATETIME) and then change sync_events to fetch those events from database there, clone them, set as cancelled and then delete records from event_cancellations

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with inbox/events/microsoft/events_provider.py at the linked sync_events entry point, then trace the Microsoft deletion handling in the API path. Implement the event_cancellations persistence and deferred cancellation flow described in the issue, including cleanup after sync, and verify that deleted events are represented as cancelled without doing the work directly in the API.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, databases
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.