This commit is contained in:
Mylloon 2022-08-15 20:01:55 +02:00
parent d31a051217
commit b7d654b59d
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -1,4 +1,7 @@
use ics::{Event, ICalendar}; use ics::{
properties::{Class, Description, DtEnd, DtStart, Location, Summary, Transp},
Event, ICalendar,
};
type T = Vec<crate::timetable::models::Day>; type T = Vec<crate::timetable::models::Day>;
type D = std::collections::HashMap< type D = std::collections::HashMap<
@ -9,8 +12,26 @@ type D = std::collections::HashMap<
pub fn export(_timetable: T, _dates: D) -> ICalendar<'static> { pub fn export(_timetable: T, _dates: D) -> ICalendar<'static> {
let mut calendar = ICalendar::new("2.0", "cal8tor"); let mut calendar = ICalendar::new("2.0", "cal8tor");
let event = Event::new("uid", "dtstamp"); // Create event which contains the information regarding the course
let mut event = Event::new("uid", "dtstamp");
// Add properties
// Public event
event.push(Class::public());
// Consume actual time
event.push(Transp::opaque());
// Professor's name
event.push(Description::new("Jean-Jacques Bourdin"));
// Start time of the course
event.push(DtStart::new("20220919T123000Z"));
// End time of the course
event.push(DtEnd::new("20220919T033000Z"));
// Room location
event.push(Location::new("A188"));
// Course's name
event.push(Summary::new("Algorithmique avancée"));
// Add the course to the calendar
calendar.add_event(event); calendar.add_event(event);
calendar.save_file("target/debug2.ics").unwrap(); calendar.save_file("target/debug2.ics").unwrap();