diff --git a/frontend/src/components/week_view.rs b/frontend/src/components/week_view.rs
index 34511cf..aea5f4a 100644
--- a/frontend/src/components/week_view.rs
+++ b/frontend/src/components/week_view.rs
@@ -585,11 +585,6 @@ pub fn week_view(props: &WeekViewProps) -> Html {
}
}).collect::()
}
- // Final boundary slot to complete the 24-hour visual grid - make it interactive like other slots
-
// Events positioned absolutely based on their actual times
@@ -1029,8 +1024,13 @@ fn calculate_event_position(event: &VEvent, date: NaiveDate) -> (f32, f32, bool)
let local_start = event.dtstart.with_timezone(&Local);
let event_date = local_start.date_naive();
- // Only position events that are on this specific date
- if event_date != date {
+ // Position events based on when they appear in local time, not their original date
+ // For timezone issues: an event created at 10 PM Sunday might be stored as Monday UTC
+ // but should still display on Sunday's column since that's when the user sees it
+ let should_display_here = event_date == date ||
+ (event_date == date - chrono::Duration::days(1) && local_start.hour() >= 20);
+
+ if !should_display_here {
return (0.0, 0.0, false); // Event not on this date
}
diff --git a/frontend/styles.css b/frontend/styles.css
index efbfc7c..c7353c2 100644
--- a/frontend/styles.css
+++ b/frontend/styles.css
@@ -685,12 +685,13 @@ body {
flex: 1;
overflow-y: auto;
overflow-x: hidden;
+ min-height: 0; /* Allow flex item to shrink below content size */
}
.time-grid {
display: grid;
grid-template-columns: 80px 1fr;
- min-height: 100%;
+ min-height: 1530px;
}
/* Time Labels */
@@ -700,6 +701,7 @@ body {
position: sticky;
left: 0;
z-index: 5;
+ min-height: 1440px; /* Match the time slots height */
}
.time-label {
@@ -725,12 +727,13 @@ body {
.week-days-grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
+ min-height: 1440px; /* Ensure grid is tall enough for 24 time slots */
}
.week-day-column {
position: relative;
border-right: 1px solid var(--time-label-border, #e9ecef);
- min-height: 1500px; /* 25 time labels × 60px = 1500px total */
+ min-height: 1440px; /* 24 time slots × 60px = 1440px total */
}
.week-day-column:last-child {