diff --git a/package.json b/package.json index e9d5aac..760f62a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "my-weekly-todo-list", - "version": "1.57.6", + "version": "1.57.7", "description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view", "main": "index.js", "scripts": { diff --git a/src/components/WeeklyView.tsx b/src/components/WeeklyView.tsx index b007170..f2a2162 100644 --- a/src/components/WeeklyView.tsx +++ b/src/components/WeeklyView.tsx @@ -1597,18 +1597,7 @@ export default function WeeklyView() { // Extend events with editable flag from connections const calendarEvents = useMemo(() => { - // Deduplicate events that appear in multiple calendars - const seen = new Set(); - const deduped = rawCalendarEvents.filter((event) => { - const startVal = event.start?.dateTime || event.start?.date || ""; - const endVal = event.end?.dateTime || event.end?.date || ""; - const key = `${event.title}|${startVal}|${endVal}`; - if (seen.has(key)) return false; - seen.add(key); - return true; - }); - - return deduped.map((event) => { + return rawCalendarEvents.map((event) => { let isEditable = false; if (event.calendarId) { for (const conn of connections) { diff --git a/src/lib/calendar-events.ts b/src/lib/calendar-events.ts index 0443485..d00734a 100644 --- a/src/lib/calendar-events.ts +++ b/src/lib/calendar-events.ts @@ -371,7 +371,18 @@ export const getCalendarEvents = async ( // It is: export const getUserCalendars = validateCredentials; // validateCredentials: (email: string, appSpecificPassword: string) - const calendars = await getAppleCalendars(email, appPassword); + const freshCalendars = await getAppleCalendars(email, appPassword); + + // Use stored selection state if available, otherwise use all fresh calendars + let calendars = freshCalendars; + if (connection.calendars && Array.isArray(connection.calendars) && connection.calendars.length > 0) { + const storedCalendars = connection.calendars as any[]; + // Only fetch from calendars that are selected + calendars = freshCalendars.filter(fc => { + const stored = storedCalendars.find((sc: any) => sc.id === fc.id); + return stored ? stored.selected !== false : true; + }); + } const calendarIds = calendars.map(c => c.id); // Fetch events for each calendar