Expand description
A library to generate and parse iCalendars.
Contributions are very welcome.
Structure
Calendars consist ofComponentsComponents are e.g.EventorTodoComponents consist ofPropertysPropertys may haveParameters
let 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();
let bday = Event::new()
.all_day(NaiveDate::from_ymd(2023, 3, 15))
.summary("My Birthday")
.description(
r#"Hey, I'm gonna have a party
BYOB: Bring your own beer.
Hendrik"#
)
.done();
let todo = Todo::new().summary("Buy some milk").done();
let mut calendar = Calendar::new();
calendar.push(event);
calendar.push(todo);
calendar.push(bday);Breaking API Changes in version 0.7.0
Todo::dueandTodo::completednow take their date-time argument by value rather than by referenceTodo::completednow requires itschrono::DateTimeargument to have exactlychrono::Utcspecified as its time zone as mandated by the RFC.EventLike::starts,EventLike::endsandTodo::duenow take newly introducedCalendarDateTime(throughInto<CalendarDateTime>indirection). This allows callers to define time zone handling. Conversions fromchrono::NaiveDateTimeandchrono::DateTime<Utc>are provided for ergonomics, the latter also restoring API compatibility in case of UTC date-times.
Modules
Parsing iCalendar document parser
Structs
Represents a calendar
key-value pairs inside of
Propertyskey-value pairs inside of
ComponentsVVENUE (ical-venue)
Enums
Representation of various forms of
DATE-TIME per
RFC 5545, Section 3.3.5This property defines the access classification for a calendar component.
RFC 5545, Section 3.8.1.3
Either a
DATE-TIME or a DATE.Encodes the status of an
Event
RFC 5545, Section 3.8.1.11Alarm Trigger Relationship RFC 5545, Section 3.2.14
Encodes the status of a
Todo
RFC 5545, Section 3.8.1.11Describes when an alarm is supposed to occure.
see 8.3.4. Value Data Types Registry