From b2f15f2d77f9d31f4f1fcf8fb05dce402e6618f7 Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Wed, 23 Jul 2025 18:04:19 +0200 Subject: [PATCH] fix: Add timezone-id support to mkcalendar --- crates/caldav/src/calendar/methods/mkcalendar.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/caldav/src/calendar/methods/mkcalendar.rs b/crates/caldav/src/calendar/methods/mkcalendar.rs index da56afc..c1ce2fa 100644 --- a/crates/caldav/src/calendar/methods/mkcalendar.rs +++ b/crates/caldav/src/calendar/methods/mkcalendar.rs @@ -82,12 +82,25 @@ pub async fn route_mkcalendar( request.displayname = None } + let mut timezone = request.calendar_timezone; + if let Some(tzid) = request.calendar_timezone_id.as_ref() { + // Validate timezone id and set timezone accordingly + timezone = Some( + vzic_rs::VTIMEZONES + .get(tzid) + .ok_or(rustical_dav::Error::BadRequest(format!( + "Invalid timezone-id: {tzid}" + )))? + .to_string(), + ); + } + let calendar = Calendar { id: cal_id.to_owned(), principal: principal.to_owned(), order: request.calendar_order.unwrap_or(0), displayname: request.displayname, - timezone: request.calendar_timezone, + timezone, timezone_id: request.calendar_timezone_id, color: request.calendar_color, description: request.calendar_description,