42 lines
1.3 KiB
Rust
42 lines
1.3 KiB
Rust
use chrono::{Duration, NaiveDate, Utc};
|
|
use icalendar::{Calendar, Class, Component, Event, Property, Todo};
|
|
|
|
fn main() {
|
|
let my_calendar = Calendar::new()
|
|
.name("example calendar")
|
|
.push(
|
|
// add an event
|
|
Event::new()
|
|
.summary("test event")
|
|
.description("here I have something really important to do")
|
|
.starts(Utc::now())
|
|
.class(Class::Confidential)
|
|
.ends(Utc::now() + Duration::days(1))
|
|
.append_property(
|
|
Property::new("TEST", "FOOBAR")
|
|
.add_parameter("IMPORTANCE", "very")
|
|
.add_parameter("DUE", "tomorrow")
|
|
.done(),
|
|
)
|
|
.done(),
|
|
)
|
|
.push(
|
|
// add a todo
|
|
Todo::new()
|
|
.summary("groceries")
|
|
.description("Buy some milk")
|
|
.done(),
|
|
)
|
|
.push(
|
|
// add an all-day event
|
|
Event::new()
|
|
.all_day(NaiveDate::from_ymd(2016, 3, 15))
|
|
.summary("My Birthday")
|
|
.description("Hey, I'm gonna have a party\nBYOB: Bring your own beer.\nHendrik")
|
|
.done(),
|
|
)
|
|
.done();
|
|
|
|
println!("{}", my_calendar);
|
|
}
|