feat: Complete import functionality with RRULE fixes and comprehensive testing
- 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.
This commit is contained in:
parent
932b6ae463
commit
640ae119d1
14 changed files with 3057 additions and 182 deletions
31
test_rrule.rs
Normal file
31
test_rrule.rs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
use rrule::{RRuleSet};
|
||||
use chrono::{DateTime, Utc};
|
||||
|
||||
fn main() {
|
||||
let rrule_str = "FREQ=WEEKLY;BYDAY=MO,WE,FR;COUNT=10";
|
||||
println!("Testing RRULE: {}", rrule_str);
|
||||
|
||||
// Test different approaches
|
||||
match RRuleSet::from_str(rrule_str) {
|
||||
Ok(rrule_set) => {
|
||||
println!("Successfully parsed RRULE");
|
||||
|
||||
// Check available methods
|
||||
let start = Utc::now();
|
||||
let end = start + chrono::Duration::days(30);
|
||||
|
||||
// Try the between method
|
||||
match rrule_set.between(start, end, true) {
|
||||
Ok(occurrences) => {
|
||||
println!("Found {} occurrences", occurrences.len());
|
||||
}
|
||||
Err(e) => {
|
||||
println!("Error calling between: {}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(e) => {
|
||||
println!("Error parsing RRULE: {}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue