Fix series RRULE updates: editing 'all events' now properly updates original series RRULE

- Backend now updates RRULE when recurrence_count or recurrence_end_date parameters are provided
- Fixed update_entire_series() to modify COUNT/UNTIL instead of preserving original RRULE
- Added comprehensive RRULE parsing functions to extract existing frequency, interval, count, until, and BYDAY components
- Fixed frontend parameter mapping to pass recurrence parameters through update_series calls
- Resolves issue where changing recurring event from 5 to 7 occurrences kept original COUNT=5

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Connor Johnstone
2025-09-03 17:22:26 -04:00
parent 235dcf8e1d
commit 089f4ce105
4 changed files with 178 additions and 17 deletions

View File

@@ -1678,6 +1678,9 @@ impl CalendarService {
categories: String,
reminder: String,
recurrence: String,
recurrence_days: Vec<bool>,
recurrence_count: Option<u32>,
recurrence_until: Option<String>,
calendar_path: Option<String>,
update_scope: String,
occurrence_date: Option<String>,
@@ -1706,10 +1709,10 @@ impl CalendarService {
"categories": categories,
"reminder": reminder,
"recurrence": recurrence,
"recurrence_days": vec![false; 7], // Default - could be enhanced
"recurrence_interval": 1_u32, // Default interval
"recurrence_end_date": None as Option<String>, // No end date by default
"recurrence_count": None as Option<u32>, // No count limit by default
"recurrence_days": recurrence_days,
"recurrence_interval": 1_u32, // Default interval - could be enhanced to be a parameter
"recurrence_end_date": recurrence_until,
"recurrence_count": recurrence_count,
"calendar_path": calendar_path,
"update_scope": update_scope,
"occurrence_date": occurrence_date