1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| 51c6436b70 |
feat: implement CalDAV Nextcloud bidirectional calendar integration
Some checks failed
Enhanced CI/CD Pipeline / Code Quality (push) Has been cancelled
Enhanced CI/CD Pipeline / Security Scan (push) Has been cancelled
Enhanced CI/CD Pipeline / Tests (push) Has been cancelled
Enhanced CI/CD Pipeline / Build Application (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Preview (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Production (push) Has been cancelled
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Has been cancelled
Enhanced CI/CD Pipeline / Cleanup (push) Has been cancelled
Adds complete CalDAV integration for syncing appointments between the web app and Nextcloud calendars with real-time availability checking and conflict resolution. Core Features: - Bidirectional sync: Web ↔ Nextcloud calendars - Real-time availability checking with instant user feedback - Conflict detection (Nextcloud is source of truth) - Pending request workflow with 'REQUEST:' prefix for unconfirmed appointments - Hard time blocking - any calendar event blocks booking slots - Graceful degradation when CalDAV unavailable New Dependencies: - tsdav@^2.0.4 - TypeScript CalDAV client - ical.js@^1.5.0 - iCalendar format parser/generator Database Changes: - New table: artist_calendars (stores calendar configuration per artist) - New table: calendar_sync_logs (tracks all sync operations) - Added caldav_uid and caldav_etag columns to appointments table - Migration: sql/migrations/20250109_add_caldav_support.sql New Services: - lib/caldav-client.ts - Core CalDAV operations and iCalendar conversion - lib/calendar-sync.ts - Bidirectional sync logic with error handling New API Endpoints: - GET /api/caldav/availability - Real-time availability checking - POST /api/caldav/sync - Manual sync trigger (admin only) - GET/POST/PUT/DELETE /api/admin/calendars - Calendar configuration CRUD Updated Components: - app/api/appointments/route.ts - Integrated CalDAV sync on CRUD operations - components/booking-form.tsx - Added real-time availability indicator - hooks/use-availability.ts - Custom hook for debounced availability checking Documentation: - docs/CALDAV-SETUP.md - Complete setup guide with troubleshooting - docs/CALDAV-IMPLEMENTATION-SUMMARY.md - Technical implementation overview Pending Tasks (for future PRs): - Admin dashboard UI for calendar management - Background sync worker (Cloudflare Workers cron) - Unit and integration tests Tested with local database migration and linting checks passed. |