Skip to content

Fix recurring task sync: Preserve RRULE semantics and fix update bugs#5

Merged
deeqdev merged 2 commits intomainfrom
fix/recurring-task-sync
Feb 13, 2026
Merged

Fix recurring task sync: Preserve RRULE semantics and fix update bugs#5
deeqdev merged 2 commits intomainfrom
fix/recurring-task-sync

Conversation

@deeqdev
Copy link
Collaborator

@deeqdev deeqdev commented Feb 13, 2026

Summary

Fixed a bug where recurring tasks synced as one-time tasks or lost recurrence rules during updates.

Changes

  • Extended Fields: Now preserves explicit machine-readable RRULE strings in Google Tasks metadata alongside the human-readable summary.
  • Microsoft Provider:
    • Updated upsertTask to always send recurrence payload on PATCH (update) requests, ensuring one-time tasks can be converted to recurring and rule changes propagate.
    • Added fallback start date logic to deserializeRecurrence to prevent broken series when DTSTART is missing.
  • Parsing: Improved deserializeRecurrence to handle WKST and TZID properly.

Tests

  • Added test/extendedFields.test.ts to verify RRULE parsing/serialization round-trips.
  • Updated test/googleProvider.test.ts to verify persistence of machine-readable recurrence.
  • Updated test/microsoftProvider.test.ts to verify recurrence is sent on updates.
  • Verified all tests pass, including web UI tests.

@deeqdev deeqdev merged commit 872f495 into main Feb 13, 2026
3 checks passed
@deeqdev deeqdev deleted the fix/recurring-task-sync branch February 13, 2026 14:22
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.

2 participants