Connor Johnstone a6aac42c78 Fix frontend to use series endpoint for single occurrence modifications
- Extended update callback signature to include update_scope and occurrence_date parameters
- Modified app.rs to detect when series endpoint should be used vs regular endpoint
- Updated calendar_service to automatically set occurrence_date for "this_only" updates
- Modified all callback emit calls throughout frontend to include new parameters
- Week_view now properly calls series endpoint with "this_only" scope for single occurrence edits

This ensures that single occurrence modifications (RecurringEditAction::ThisEvent)
now go through the proper series endpoint which will:
- Add EXDATE to the original recurring series
- Create exception event with RECURRENCE-ID
- Show proper debug logging in backend

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-30 14:01:30 -04:00

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

  1. Start the backend server:

    cd backend
    cargo run
    
  2. Start the frontend development server:

    cd frontend
    trunk serve
    
  3. 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 application
    • src/ - Frontend source code
    • index.html - HTML template
    • styles.css - CSS styles
    • Trunk.toml - Trunk build configuration
  • backend/ - Axum backend server
  • calendar-models/ - Shared RFC 5545 VEvent models
  • migrations/ - Database schema migrations
Description
A self-hostable calendar front-end for caldav servers
Readme 124 MiB
Languages
Rust 76.9%
CSS 22.4%
JavaScript 0.4%
Dockerfile 0.2%
HTML 0.1%