Major additions: - New NextcloudImportEngine with import behaviors (SkipDuplicates, Overwrite, Merge) - Complete import workflow with result tracking and conflict resolution - Support for dry-run mode and detailed progress reporting - Import command integration in CLI with --import-events flag Configuration improvements: - Added ImportConfig struct for structured import settings - Backward compatibility with legacy ImportTargetConfig - Enhanced get_import_config() method supporting both formats CalDAV client enhancements: - Improved XML parsing for multiple calendar display name formats - Better fallback handling for calendar discovery - Enhanced error handling and debugging capabilities Bug fixes: - Fixed test compilation errors in error.rs (reqwest::Error type conversion) - Resolved unused variable warning in main.rs - All tests now pass (16/16) Documentation: - Added comprehensive NEXTCLOUD_IMPORT_PLAN.md with implementation roadmap - Updated library exports to include new modules Files changed: - src/nextcloud_import.rs: New import engine implementation - src/config.rs: Enhanced configuration with import support - src/main.rs: Added import command and CLI integration - src/minicaldav_client.rs: Improved calendar discovery and XML parsing - src/error.rs: Fixed test compilation issues - src/lib.rs: Updated module exports - Deleted: src/real_caldav_client.rs (removed unused file)
72 lines
2.3 KiB
TOML
72 lines
2.3 KiB
TOML
# CalDAV Configuration for Zoho Sync
|
|
# This matches the Rust application's expected configuration structure
|
|
|
|
[server]
|
|
# CalDAV server URL (Zoho)
|
|
url = "https://calendar.zoho.com/caldav/d82063f6ef084c8887a8694e661689fc/events/"
|
|
# Username for authentication
|
|
username = "alvaro.soliverez@collabora.com"
|
|
# Password for authentication (use app-specific password)
|
|
password = "1vSf8KZzYtkP"
|
|
# Whether to use HTTPS (recommended)
|
|
use_https = true
|
|
# Request timeout in seconds
|
|
timeout = 30
|
|
|
|
[calendar]
|
|
# Calendar name/path on the server
|
|
name = "caldav/d82063f6ef084c8887a8694e661689fc/events/"
|
|
# Calendar display name (optional)
|
|
display_name = "Alvaro.soliverez@collabora.com"
|
|
# Calendar color in hex format (optional)
|
|
color = "#4285F4"
|
|
# Default timezone for the calendar
|
|
timezone = "UTC"
|
|
# Whether this calendar is enabled for synchronization
|
|
enabled = true
|
|
|
|
[sync]
|
|
# Synchronization interval in seconds (300 = 5 minutes)
|
|
interval = 300
|
|
# Whether to perform synchronization on startup
|
|
sync_on_startup = true
|
|
# Maximum number of retry attempts for failed operations
|
|
max_retries = 3
|
|
# Delay between retry attempts in seconds
|
|
retry_delay = 5
|
|
# Whether to delete local events that are missing on server
|
|
delete_missing = false
|
|
# Date range configuration
|
|
date_range = { days_ahead = 30, days_back = 30, sync_all_events = false }
|
|
|
|
[import]
|
|
# Target server configuration (e.g., Nextcloud)
|
|
[import.target_server]
|
|
# Nextcloud CalDAV URL
|
|
url = "https://cloud.soliverez.com.ar/remote.php/dav/calendars/alvaro/trabajo-alvaro"
|
|
# Username for Nextcloud authentication
|
|
username = "alvaro"
|
|
# Password for Nextcloud authentication (use app-specific password)
|
|
password = "D7F2o-fFoqp-j2ttJ-t4etE-yz3oS"
|
|
# Whether to use HTTPS (recommended)
|
|
use_https = true
|
|
# Request timeout in seconds
|
|
timeout = 30
|
|
|
|
# Target calendar configuration
|
|
[import.target_calendar]
|
|
# Target calendar name
|
|
name = "trabajo-alvaro"
|
|
enabled = true
|
|
|
|
|
|
# Optional filtering configuration
|
|
[filters]
|
|
# Keywords to filter events by (events containing any of these will be included)
|
|
# keywords = ["work", "meeting", "project"]
|
|
# Keywords to exclude (events containing any of these will be excluded)
|
|
# exclude_keywords = ["personal", "holiday", "cancelled"]
|
|
# Minimum event duration in minutes
|
|
min_duration_minutes = 5
|
|
# Maximum event duration in hours
|
|
max_duration_hours = 24
|