use chrono::{DateTime, TimeZone};
use rrule::{Frequency, RRule, Tz};
fn main() {
let tz = Tz::Europe__Berlin;
let start_date = tz.with_ymd_and_hms(2020, 1, 1, 9, 0, 0).unwrap();
let exdate = Tz::UTC.with_ymd_and_hms(2020, 1, 2, 8, 0, 0).unwrap();
let rrule_set = RRule::default()
.count(4)
.freq(Frequency::Daily)
.build(start_date)
.expect("RRule invalid")
.exdate(exdate);
let recurrences = rrule_set.all_unchecked();
assert_eq!(recurrences.len(), 3);
let _recurrences_in_moscow_tz: Vec<DateTime<chrono_tz::Tz>> = recurrences
.iter()
.map(|d| d.with_timezone(&chrono_tz::Europe::Moscow))
.collect();
println!("Done, everything worked.");
}