Commit graph

2 commits

Author SHA1 Message Date
0520ce3847 fix: handle Nextcloud CalDAV 429 rate limiting with Polly retry
Replaces hand-rolled retry logic with Microsoft.Extensions.Http.Resilience
(Polly v8). The named 'nextcloud' HttpClient retries up to 3 times on 429
with exponential backoff (2s, 4s, 8s). Also adds a 300ms delay after every
individual PUT/DELETE request to reduce burst rate.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 20:31:08 +02:00
e8e7e07ffc feat: add Nextcloud CalDAV calendar sync
Implements a provider-agnostic calendar sync feature with Nextcloud as the
first alternative to Google Calendar.

- Add ICalendarService interface and provider-agnostic API endpoints
- Implement NextcloudCalendarService using CalDAV (Ical.Net)
- Add CalendarEventBuilder to share event/transport logic across providers
- Add Nextcloud sync button to the UI (Index page)
- Centralise TargetFramework, Nullable and ImplicitUsings in Directory.Build.props (net9.0)
- Add .worktrees to .gitignore and Docker/Nextcloud config docs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 20:00:18 +02:00