Commit Graph

99 Commits

Author SHA1 Message Date
Nathan Panchout
32e00a2210 ♻️(front) improve React code quality and performance
- Remove all console.log debug statements from production code
- Fix useEffect dependency arrays (remove refs, fix dependency cycles)
- Add useMemo for sharedCalendars filtering in CalendarList
- Improve error handling in handleOpenSubscriptionModal
- Add proper cleanup pattern (isMounted) in CalendarContext
- Use i18n locale instead of hardcoded French in MiniCalendar

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
aa7939b527 🐛(front) fix CalDavService return type
Fix return type for respondToInvitation method to properly
wrap response in data property as expected by CalDavResponse.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
8a253950cc 📝(docs) update project documentation
Add CLAUDE.md for AI assistant guidance. Add documentation
for PR split plan, implementation checklist, and recurrence
feature specifications.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
a96be2c7b7 📝(docs) add OpenSpec workflow
Add OpenSpec workflow for AI-assisted change proposals
including proposal templates, archive commands, and
project configuration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
40b7d66bff (front) add Playwright e2e tests
Add end-to-end tests for calendar functionality including
locale switching and calendar operations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
d1e313c88b 🎨(front) add home banner asset
Add banner image for home page display.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
f518478ef8 (front) add DavClient utility
Add DavClient utility for creating authenticated CalDAV
client instances with proper configuration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
375e0ddb39 🔥(front) remove open-calendar package
Remove deprecated open-calendar package. Functionality has
been migrated to src/features/calendar/services/dav with
improved architecture and TypeScript support.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
afb4e35b1d ♻️(front) update pages and app structure
Update calendar page to use new Scheduler and CalendarContext.
Update styles, error pages, and app wrapper for new components.
Minor updates to Header, Toaster and Feedback components.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
48062a9988 🔥(front) remove unused UI components and utilities
Remove deprecated UI components (breadcrumbs, circular-progress,
infinite-scroll, info, responsive) and unused hooks (useCopyToClipboard,
useLayout, RhfInput) that are no longer needed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
578375c60f ♻️(front) update component exports and configuration
Update component index exports for new Scheduler and
CalendarList. Update Next.js config and Dockerfile for
CalDAV dependencies.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
85465628e1 🔥(front) remove deprecated calendar components
Remove old CalendarView, CalendarList, EventModal and
CreateCalendarModal replaced by new Scheduler and
CalendarList implementations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
4faa131878 🎨(front) update theme and styles
Update theme customization hook and CalendarList styles
for improved visual consistency and dark mode support.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
8ce3848a6f ♻️(front) update auth components
Minor updates to LoginButton and LogoutButton components
for consistency with new design system.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
51033d7457 ♻️(front) update calendar API and types
Update API functions and types for subscription management
and iCal export. Add fetchApi improvements for error handling.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
a5c10b2ca9 ♻️(front) update LeftPanel component
Update LeftPanel to use new CalendarList and MiniCalendar
components with CalendarContext integration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
717029bd96 ♻️(front) refactor MiniCalendar component
Update MiniCalendar for integration with CalendarContext
and improved locale support for date navigation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
8be9b1db52 ♻️(front) refactor RecurrenceEditor component
Improve RecurrenceEditor with better RRULE parsing, support
for all recurrence patterns (daily, weekly, monthly, yearly)
and cleaner UI with Cunningham components.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
833d14d796 (front) add AttendeesInput component
Add component for managing event attendees with email
validation, autocomplete and participation status display.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
3c1fa693d6 (front) add main CalendarList component
Add CalendarList component for managing user calendars with
visibility toggles, color customization and CalDAV sync.
Replaces previous monolithic implementation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
fcfa56e4f3 (front) add CalendarList subcomponents
Add modular subcomponents for CalendarList including item
menu, list item, create/edit modal, delete confirmation
and subscription URL display modals.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
cfae08451a 🏷️(front) add CalendarList types and constants
Add TypeScript types for CalendarList component state and
props. Add color palette constants and custom hook for
managing calendar list state.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
034e8f5c79 (front) add main Scheduler component
Add Scheduler component integrating FullCalendar for event
display with day/week/month views, drag-drop support and
CalDAV synchronization via CalendarContext.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
884062658a (front) add Scheduler modals
Add EventModal for creating and editing events with support
for recurrence, attendees and all-day events. Add DeleteEventModal
with options for recurring event deletion scope.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
63e91b5eb5 (front) add Scheduler utilities and hooks
Add date formatting utilities and custom hooks for
Scheduler initialization and event handlers including
drag-drop, resize and click operations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
da8ab3140c 🏷️(front) add Scheduler types
Add TypeScript type definitions for Scheduler component
including event props, modal states, and handler signatures.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
d2e912409b 🌐(front) add calendar translations
Add internationalization strings for Scheduler, CalendarList,
event modals and calendar operations in French and English.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
cb07b77389 (front) add calendar hooks
Add useCalendars hook for CalDAV calendar management and
useCalendarLocale for locale-aware date formatting.
Remove obsolete modal hooks replaced by Scheduler.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
0ddb47d095 (front) add CalendarContext for state management
Add React context for managing calendar state including
selected calendars, events, CalDAV service instance and
synchronization status.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
806ee1de85 (front) add CalDAV service tests
Add Jest unit tests for CalDAV helper functions, ICS
parsing/generation and event-calendar conversions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
0d3c381e80 (front) implement EventCalendarAdapter
Add EventCalendarAdapter for converting between CalDAV
events and scheduler-compatible format. Include VCard
component for contact handling in calendar invitations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
a4e2e14399 (front) implement CalDavService
Add CalDavService class providing high-level API for
CalDAV operations including calendar CRUD, event management,
synchronization and attendee handling via tsdav.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
158cbc8a7f (front) add DAV helper utilities
Add utility functions for DAV operations including ICS
parsing/generation, event-calendar conversions, timezone
handling and type helpers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
250e852762 (front) add CalDAV helper functions
Add helper functions for CalDAV operations including
date formatting, property extraction and default
values for calendar configuration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
1a26d9aac3 🏷️(front) add DAV service type definitions
Add TypeScript type definitions for CalDAV service including
calendar, event, addressbook and options types. Add global
type declarations for tsdav and ical.js libraries.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
1182400fb2 ♻️(sabredav) improve HttpCallbackIMipPlugin
Enhance IMIP plugin with better error handling, logging
and support for all scheduling methods (REQUEST, REPLY,
CANCEL). Update server configuration and SQL schema.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
5893d30996 (sabredav) add AttendeeNormalizerPlugin
Add SabreDAV plugin to normalize attendee properties in
calendar events. Ensures consistent mailto: prefix and
proper CN formatting for CalDAV compatibility.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
16af201959 (back) add subscription and iCal tests
Add pytest tests for calendar subscription API endpoints
and iCal export functionality. Covers token generation,
validation, expiration and .ics file generation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
f329de9354 (back) add subscription and iCal API
Add API endpoints for calendar subscription token management
and iCal export. Includes serializers, viewsets and URL
configuration for subscription URLs and .ics file generation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
7e90c960dc (back) add invitation email templates
Add HTML and text email templates for calendar invitations,
updates, cancellations and attendee reply notifications.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
c623596cbc (back) add CalendarInvitationService
Add service for handling calendar invitation emails via
IMIP protocol. Supports sending invitations, updates,
cancellations and processing attendee replies.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
81e8111988 (back) add CalDAV service
Add CalDAV service for server-side calendar operations
including calendar creation, event management and
synchronization with SabreDAV.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
9c414a19a6 (back) add subscription migrations
Add database migrations for CalendarSubscriptionToken model
and create index on token+is_active for efficient lookups.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
0cb9b40530 (back) add CalendarSubscriptionToken model
Add model for storing calendar subscription tokens with
secure token generation and expiration handling for
iCal/CalDAV subscription URLs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
08fbcc8cc5 🔧(config) add CalDAV environment variables
Add configuration for CalDAV server URL, credentials and
IMIP callback settings for calendar invitations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Nathan Panchout
a39047d474 📦(front) add CalDAV and ICS dependencies
Add tsdav, ical.js, ts-ics and related libraries for CalDAV
protocol support and ICS file handling.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:56:21 +01:00
Sylvain Zimmer
3ed52ca5d0 (scheduling) add callback from caldav to django for imip 2026-01-11 03:52:43 +01:00
Sylvain Zimmer
bc801d3007 🏗️(caldav) migrate from davical to sabre/dav 2026-01-11 02:28:04 +01:00
Sylvain Zimmer
a36348ead1 🎉(all) bootstrap the Calendars project
This repository was forked from Drive in late December 2025 and
boostraped as a minimal demo of backend+caldav server+frontend
integration. There is much left to do and to fix!
2026-01-09 00:51:25 +01:00