1b57adab989ea00049d448f81b64241fb2f46ef1
Frontend Changes: - Add DeleteAction enum with DeleteThis, DeleteFollowing, DeleteSeries options - Update EventContextMenu to show different delete options for recurring events - Add exception_dates field to CalendarEvent struct - Fix occurrence generation to respect EXDATE exclusions - Add comprehensive RRULE parsing with UNTIL date support - Fix UNTIL date parsing to handle backend format (YYYYMMDDTHHMMSSZ) - Enhanced debugging for RRULE processing and occurrence generation Backend Changes: - Add exception_dates field to CalendarEvent struct with EXDATE parsing/generation - Implement update_event method for CalDAV client - Add fetch_event_by_href helper function - Update DeleteEventRequest model with delete_action and occurrence_date fields - Implement proper delete_this logic with EXDATE addition - Implement delete_following logic with RRULE UNTIL modification - Add comprehensive logging for delete operations CalDAV Integration: - Proper EXDATE generation in iCal format for excluded occurrences - RRULE modification with UNTIL clause for partial series deletion - Event updating via CalDAV PUT operations - Full iCal RFC 5545 compliance for recurring event modifications 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Calendar App
A full-stack calendar application built with Rust, featuring a Yew frontend and Axum backend with CalDAV integration.
Features
- Interactive calendar interface
- Event creation and management
- CalDAV server integration
- User authentication with JWT
- iCal format support
- Weekly recurrence patterns
- Responsive web design
Architecture
- Frontend: Yew (Rust WebAssembly)
- Backend: Axum (Rust async web framework)
- Protocol: CalDAV for calendar synchronization
- Database: SQLite (via migrations)
- Build Tool: Trunk for frontend bundling
Getting Started
Prerequisites
- Rust (latest stable version)
- Trunk (
cargo install trunk)
Development
-
Start the backend server:
cd backend cargo run -
Start the frontend development server:
trunk serve -
Open your browser to
http://localhost:8080
Building for Production
trunk build --release
Project Structure
src/- Frontend Yew applicationbackend/- Axum backend servermigrations/- Database schema migrationsdist/- Built frontend assets
Description
Languages
Rust
76.9%
CSS
22.4%
JavaScript
0.4%
Dockerfile
0.2%
HTML
0.1%