- Fix RRULE BYDAY filtering for daily frequency events (Tether sync weekdays only) - Fix timezone transfer in recurring event expansion - Add comprehensive timezone-aware iCal generation - Add extensive test suite for recurrence and timezone functionality - Update dependencies and configuration examples - Implement cleanup logic for orphaned events - Add detailed import plan documentation This completes the core import functionality with proper timezone handling, RRULE parsing, and duplicate prevention mechanisms.
87 lines
1.9 KiB
TOML
87 lines
1.9 KiB
TOML
[package]
|
|
name = "caldav-sync"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
authors = ["Your Name <your.email@example.com>"]
|
|
description = "A CalDAV calendar synchronization tool"
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://github.com/yourusername/caldav-sync"
|
|
keywords = ["caldav", "calendar", "sync", "productivity"]
|
|
categories = ["command-line-utilities", "date-and-time"]
|
|
readme = "README.md"
|
|
rust-version = "1.70.0"
|
|
|
|
[dependencies]
|
|
# Async runtime
|
|
tokio = { version = "1.0", features = ["full"] }
|
|
|
|
# HTTP client
|
|
reqwest = { version = "0.11", features = ["json", "rustls-tls"] }
|
|
|
|
# CalDAV client library
|
|
# minicaldav = { git = "https://github.com/julianolf/minicaldav", version = "0.8.0" }
|
|
# Using direct HTTP implementation instead of minicaldav library
|
|
|
|
# iCalendar parsing
|
|
icalendar = "0.15"
|
|
|
|
# RRULE recurrence processing
|
|
rrule = { version = "0.14", features = ["serde"] }
|
|
|
|
# Serialization
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
|
|
# Date and time handling
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
chrono-tz = "0.8"
|
|
|
|
# XML parsing for CalDAV
|
|
quick-xml = { version = "0.28", features = ["serialize"] }
|
|
|
|
# Error handling
|
|
thiserror = "1.0"
|
|
anyhow = "1.0"
|
|
|
|
# Configuration management
|
|
config = "0.13"
|
|
|
|
# Command line argument parsing
|
|
clap = { version = "4.0", features = ["derive"] }
|
|
|
|
# Logging and tracing
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
|
|
|
|
# UUID generation for calendar items
|
|
uuid = { version = "1.0", features = ["v4", "serde"] }
|
|
|
|
# Base64 encoding for authentication
|
|
base64 = "0.21"
|
|
|
|
# URL parsing
|
|
url = "2.3"
|
|
|
|
# TOML parsing
|
|
toml = "0.8"
|
|
|
|
# MD5 hashing for unique identifier generation
|
|
md5 = "0.7"
|
|
|
|
[dev-dependencies]
|
|
tokio-test = "0.4"
|
|
tempfile = "3.0"
|
|
|
|
[[bin]]
|
|
name = "caldav-sync"
|
|
path = "src/main.rs"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
|
|
[profile.dev]
|
|
debug = true
|
|
opt-level = 0
|