feat: Add --list-events debugging improvements and timezone support

- Remove debug event limit to display all events
- Add timezone information to event listing output
- Update DEVELOPMENT.md with latest changes and debugging cycle documentation
- Enhance event parsing with timezone support
- Simplify CalDAV client structure and error handling

Changes improve debugging capabilities for CalDAV event retrieval and provide
better timezone visibility when listing calendar events.
This commit is contained in:
Alvaro Soliverez 2025-10-13 11:02:55 -03:00
parent 37e9bc2dc1
commit f81022a16b
11 changed files with 2039 additions and 136 deletions

51
config/config.toml Normal file
View file

@ -0,0 +1,51 @@
# 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 }
# 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