diff --git a/frontend/src/components/calendar/EventDialog.tsx b/frontend/src/components/calendar/EventDialog.tsx
index 7f10c0a..1357d33 100644
--- a/frontend/src/components/calendar/EventDialog.tsx
+++ b/frontend/src/components/calendar/EventDialog.tsx
@@ -5,7 +5,7 @@ import {
addDays, allDayISO, dateFromInput, eventDay, nthOfMonth, timedISO,
toDateInput, toTimeInput, weekdayCodeOf, weekdayCodes,
} from './dates'
-import { CalendarPicker, ColorSwatches, Toggle } from './controls'
+import { CalendarSelect, ColorSwatches, Toggle } from './controls'
interface Props {
/** Fehlt er, entsteht ein neuer Termin. */
@@ -215,7 +215,7 @@ export default function EventDialog({ event, defaultStart, calendars, calendarId
Speichern die Sammlung, behält aber seine Kennung – für
CalDAV-Clients derselbe Termin an neuer Adresse, nicht ein
neuer. */}
-
+
{!!event && calId !== calendarId && (
Wird beim Speichern nach „{calendars.find(c => c.id === calId)?.name}" verschoben
diff --git a/frontend/src/components/calendar/controls.tsx b/frontend/src/components/calendar/controls.tsx
index a254190..d3d8045 100644
--- a/frontend/src/components/calendar/controls.tsx
+++ b/frontend/src/components/calendar/controls.tsx
@@ -1,4 +1,4 @@
-import type { CSSProperties } from 'react'
+import { useEffect, useRef, useState, type CSSProperties } from 'react'
/** Eine Palette für Kalender **und** Termine – zwei getrennte Listen liefen
* sonst mit der Zeit auseinander, und ein Termin in einer Farbe, die es als
@@ -95,55 +95,99 @@ export function ColorSwatches({ value, onChange, inherit, disabled }: {
}
/**
- * Kalenderwahl als farbige Plaketten statt als Auswahlfeld.
+ * Kalenderwahl als Ausklappliste – mit dem Farbpunkt des Kalenders.
*
- * Ein Auswahlfeld zeigt nur den Namen – die Farbe aber ist das, woran man
- * einen Kalender im Raster wiedererkennt. Wer „Arbeit" wählt, soll dabei
+ * Bewusst kein natives `