7538054b20d219fff6218b0b6b3fd6c8b24934a1
Aligns update_entire_series with the same metadata preservation approach used in this_only and this_and_future update methods. ## Key Changes: 1. **Clone-and-Modify Pattern**: - Clone existing event to preserve all metadata (organizer, attendees, etc.) - Only modify specific properties that need to change - Maintains consistency with other update methods 2. **Smart Field Handling**: - Preserve original values when request fields are empty - Only overwrite when new values are explicitly provided - Same selective update logic as other scopes 3. **RRULE Preservation**: - Keep existing recurrence pattern unchanged for simple updates - Suitable for drag operations that just change start/end times - Avoids breaking complex RRULE patterns unnecessarily 4. **Proper Timestamp Management**: - Update dtstamp and last_modified to current time - Preserve original created timestamp for event history - Consistent timestamp handling across all update types ## Benefits: - All three update scopes now follow the same metadata preservation pattern - Simple time changes (drag operations) work without side effects - Complex event properties maintained across all modification types - Better RFC 5545 compliance through proper event structure preservation ## Removed: - Complex RRULE regeneration logic (build_series_rrule function now unused) - Manual field-by-field assignment replaced with selective clone modification This ensures consistent behavior whether users modify single occurrences, future events, or entire series - all maintain original event metadata. 🤖 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)
- Shared Models: RFC 5545-compliant VEvent structures
- 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:
cd frontend trunk serve -
Open your browser to
http://localhost:8080
Building for Production
cd frontend
trunk build --release
Project Structure
This is a Cargo workspace with the following structure:
frontend/- Yew frontend applicationsrc/- Frontend source codeindex.html- HTML templatestyles.css- CSS stylesTrunk.toml- Trunk build configuration
backend/- Axum backend servercalendar-models/- Shared RFC 5545 VEvent modelsmigrations/- Database schema migrations
Description
Languages
Rust
76.9%
CSS
22.4%
JavaScript
0.4%
Dockerfile
0.2%
HTML
0.1%