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>
* Initial plan
* Fix PDF export filename: use JavaScript download with proper .pdf extension
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Remove test PDF file from repository
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add year and month
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>