diff --git a/app/[locale]/calendar/page.tsx b/app/[locale]/calendar/page.tsx index 398abaa2..310b6dc1 100644 --- a/app/[locale]/calendar/page.tsx +++ b/app/[locale]/calendar/page.tsx @@ -615,7 +615,7 @@ export default function CalendarPage() { const visibleEvents = useMemo(() => events.filter((e) => { - if (!e.calendarIds) return false; + if (!e.start || !e.calendarIds) return false; const calIds = Object.keys(e.calendarIds); return calIds.some((id) => selectedCalendarIds.includes(id)); }), diff --git a/stores/calendar-store.ts b/stores/calendar-store.ts index 17f71f10..44f9b94b 100644 --- a/stores/calendar-store.ts +++ b/stores/calendar-store.ts @@ -110,10 +110,12 @@ export const useCalendarStore = create()( fetchEvents: async (client, start, end) => { set({ isLoadingEvents: true, error: null }); try { - const events = await client.queryAllCalendarEvents({ + const rawEvents = await client.queryAllCalendarEvents({ after: start, before: end, }); + // Filter out malformed events missing required 'start' field + const events = rawEvents.filter(e => typeof e.start === 'string' && e.start); set({ events, isLoadingEvents: false, dateRange: { start, end } }); } catch (error) { debug.error('Failed to fetch events:', error);