web_ical
is an esay iCalendar Rust library. It’s goals are to read and write ics web files (Google Calendar, Airbnb Calendar and more) data in a developer-friendly way.
```rust extern crate web_ical;
use web_ical::Calendar;
fn main() { let icals = Calendar::new("http://ical.mac.com/ical/US32Holidays.ics");
for ical in &icals.events{
println!("Event: {}", ical.summary);
println!("Started: {}", ical.dtsart.format("%a, %e %b %Y - %T"));
}
} ```
```rust extern crate web_ical;
use web_ical::Calendar;
fn main() { let icals = Calendar::new("http://ical.mac.com/ical/US32Holidays.ics"); println!("UTC now is: {}", icals.events[0].dtsart); println!("UTC now in RFC 2822 is: {}", icals.events[0].dtsart.torfc2822()); println!("UTC now in RFC 3339 is: {}", icals.events[0].dtsart.torfc3339()); println!("UTC now in a custom format is: {}", icals.events[0].dtsart.format("%a %b %e %T %Y")); } ```
Create your own iCalendar instance
rust
let mut ical = Calendar::create(
"-//My Business Inc//My Calendar 70.9054//EN",
"2.0",
"GREGORIAN",
"PUBLISH",
"example@gmail.com",
"America/New_York");
Add events to the calendar.
```rust
let mut startcal: DateTime
match start { Some(x) => { startcal = x; }, None => () } let ownevent = Events{
dtsart: start_cal,
dtend: start_cal,
dtstamp: date_tz,
uid: "786566jhjh5546@google.com".to_string(),
created: date_tz,
description: "The description".to_string(),
last_modified: date_tz,
location: "Homestead FL".to_string(),
sequence: 0,
status: "CONFIRMED".to_string(),
summary: "My business (Not available)".to_string(),
transp: "OPAQUE".to_string()
};
let mut ical = Calendar::create( "-//My Business Inc//My Calendar 70.9054//EN", "2.0", "GREGORIAN", "PUBLISH", "example@gmail.com", "America/New_York");
ical.addevent(ownevent); println!("{}", ical.events[0].summary);
```
# iCalendar to a file Export iCalendar to a file.
```rust
match ical.exportics("ical.ics"){ Ok() => println!("OK"), Err(_) => panic!("Err") };
```