fix: deduplicate calendar events appearing in multiple calendars

Events with the same title, start, and end time from different calendars
are now shown only once instead of duplicated in the all-day and time grid.

v1.57.6

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
mARTin 2026-03-23 00:03:47 +01:00
parent af46c0c21f
commit 98f1c751e5
2 changed files with 13 additions and 2 deletions

View File

@ -1,6 +1,6 @@
{
"name": "my-weekly-todo-list",
"version": "1.57.5",
"version": "1.57.6",
"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": {

View File

@ -1597,7 +1597,18 @@ export default function WeeklyView() {
// Extend events with editable flag from connections
const calendarEvents = useMemo(() => {
return rawCalendarEvents.map((event) => {
// Deduplicate events that appear in multiple calendars
const seen = new Set<string>();
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) => {
let isEditable = false;
if (event.calendarId) {
for (const conn of connections) {