From 47b46cf41d0e6b15448f2369c3e2e8efdd0b0733 Mon Sep 17 00:00:00 2001 From: Philipp Hofer Date: Mon, 28 Apr 2025 22:20:06 +0200 Subject: [PATCH] format dtstart according to ics standard -> leading zero --- src/model/event.rs | 8 +++++++- src/model/trip.rs | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/model/event.rs b/src/model/event.rs index 90eb9c0..6258efb 100644 --- a/src/model/event.rs +++ b/src/model/event.rs @@ -457,10 +457,16 @@ WHERE trip_details.id=? format!("event-{}@rudernlinz.at", self.id), "19900101T180000", ); + let time_str = self.planned_starting_time.replace(':', ""); + let formatted_time = if time_str.len() == 3 { + format!("0{}", time_str) + } else { + time_str.clone() // TODO: remove again + }; vevent.push(DtStart::new(format!( "{}T{}00", self.day.replace('-', ""), - self.planned_starting_time.replace(':', "") + formatted_time ))); let original_time = NaiveTime::parse_from_str(&self.planned_starting_time, "%H:%M") diff --git a/src/model/trip.rs b/src/model/trip.rs index 9b14133..98dd878 100644 --- a/src/model/trip.rs +++ b/src/model/trip.rs @@ -148,10 +148,17 @@ WHERE trip_details.id=? pub(crate) async fn get_vevent(self, user: &User) -> ics::Event { let mut vevent = ics::Event::new(format!("trip-{}@rudernlinz.at", self.id), "19900101T180000"); + let time_str = self.planned_starting_time.replace(':', ""); + let formatted_time = if time_str.len() == 3 { + format!("0{}", time_str) + } else { + time_str + }; + vevent.push(DtStart::new(format!( "{}T{}00", self.day.replace('-', ""), - self.planned_starting_time.replace(':', "") + formatted_time ))); let original_time = NaiveTime::parse_from_str(&self.planned_starting_time, "%H:%M")