- Created calendar-models/ shared library with RFC 5545-compliant VEvent structures
- Migrated backend to use shared VEvent with proper field mappings (dtstart/dtend, rrule, exdate, etc.)
- Converted CalDAV client to parse into VEvent structures with structured types
- Updated all CRUD handlers to use VEvent with CalendarUser, Attendee, VAlarm types
- Restructured project as Cargo workspace with frontend/, backend/, calendar-models/
- Updated Trunk configuration for new directory structure
- Fixed all compilation errors and field references throughout codebase
- Updated documentation and build instructions for workspace structure
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add 8 attractive themes (Default, Ocean, Forest, Sunset, Purple, Dark, Rose, Mint)
- Extend theme system to calendar header, month view, and week view components
- Add dynamic theme-aware event color palettes that change with selected theme
- Implement CSS custom properties for consistent theming across all components
- Add localStorage persistence for user theme preferences
- Create theme-aware calendar styling including day states, headers, and grid lines
- Optimize dark theme with proper contrast and readability improvements
- Add reactive event color system that updates when themes change
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Enhanced the create event modal to include all major iCalendar properties:
- Event status (confirmed/tentative/cancelled)
- Privacy classification (public/private/confidential)
- Priority levels (0-9 numeric scale)
- Organizer email field
- Attendees list (comma-separated emails)
- Categories (comma-separated tags)
- Reminder options (none to 1 week before)
- Recurrence patterns (none/daily/weekly/monthly/yearly)
Updated backend to parse and handle all new fields, with proper enum conversion
and comma-separated list parsing. Events now generate complete iCal data with
STATUS, CLASS, PRIORITY, ORGANIZER, ATTENDEE, CATEGORIES, VALARM, and RRULE properties.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Restructure project with separate frontend/backend architecture
- Create dedicated backend with Axum, SQLite, JWT authentication
- Implement real API endpoints for register/login/verify
- Update frontend to use HTTP requests instead of mock auth
- Add bcrypt password hashing and secure token generation
- Separate Cargo.toml files for frontend and backend builds
- Fix Trunk compilation by isolating WASM-incompatible dependencies
- Create demo user in database for easy testing
- Both servers running: frontend (8081), backend (3000)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Features:
- Complete CalendarEvent struct with all iCal properties
- EventStatus and EventClass enums for proper typing
- CalDAVClient for server communication with:
- fetch_events() method using CalDAV REPORT queries
- discover_calendars() with intelligent path discovery
- Full iCal parsing using ical crate
- DateTime parsing with multiple format support
- XML response parsing with regex
Integration tests:
- Real server event fetching with calendar discovery
- iCal parsing validation with sample data
- DateTime parsing tests (UTC, local, date-only)
- Successful connection to configured calendar path
Dependencies added:
- regex crate for XML parsing
- Enhanced calendar module structure
Test results: ✓ All 7 tests pass
- Successfully connects to /calendars/test/ path
- Fetches 0 events (empty calendar, connection confirmed)
- No more 404 errors with improved discovery logic
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated base64 usage to new API (BASE64_STANDARD.encode)
- Added tokio dev dependency for async testing
- Created comprehensive integration tests:
- test_baikal_auth: Tests authentication with OPTIONS request
- test_propfind_calendars: Tests calendar discovery with PROPFIND
- Tests validate:
- HTTP Basic Auth with .env credentials
- DAV server capabilities detection
- CalDAV PROPFIND XML responses
- 207 Multi-Status handling
- Both tests pass successfully against Baikal server
- Tests marked as #[ignore] for CI/network isolation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Set up Cargo.toml with Yew dependencies
- Created main.rs entry point
- Added basic App component with counter functionality
- Included HTML template with styling
- Added Trunk.toml for build configuration
- Added .gitignore to exclude build artifacts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>