diff --git a/frontend/src/components/week_view.rs b/frontend/src/components/week_view.rs index d027236..89c3d4a 100644 --- a/frontend/src/components/week_view.rs +++ b/frontend/src/components/week_view.rs @@ -316,10 +316,19 @@ pub fn week_view(props: &WeekViewProps) -> Html { week_days.iter().map(|date| { let is_today = *date == props.today; let weekday_name = get_weekday_name(date.weekday()); - let day_events = props.events.get(date).cloned().unwrap_or_default(); - // Filter for all-day events only - let all_day_events: Vec<_> = day_events.iter().filter(|event| event.all_day).collect(); + // Collect all-day events that span this date (from any day in the week) + let mut all_day_events: Vec<&VEvent> = Vec::new(); + for events_list in props.events.values() { + for event in events_list { + if event.all_day && event_spans_date(event, *date) { + all_day_events.push(event); + } + } + } + // Remove duplicates (same event might appear in multiple day buckets) + all_day_events.sort_by_key(|e| &e.uid); + all_day_events.dedup_by_key(|e| &e.uid); html! {