fix: HA-Events bearbeitbar, Selected≠Today Styling, Serien-Löschung

- HA-Events: Update/Delete-Endpoints via HA REST API implementiert
- HA read-only Guard entfernt, stattdessen korrekte API-Anbindung
- Selected-Day: Outline-Ring statt gefüllter Kreis (Today bleibt gefüllt)
- Serien-Löschung: RECURRENCE-ID aus CalDAV-Events erkennen, damit
  expandierte Serientermine als recurring markiert werden und der
  Lösch-Dialog Einzel-/Serienlöschung anbietet
This commit is contained in:
Guido Schmit
2026-04-29 18:31:58 +02:00
parent 3e204d3355
commit e5265b3694
4 changed files with 127 additions and 7 deletions

View File

@@ -107,6 +107,8 @@ def _parse_ics(raw: str, event_url: str) -> List[Dict]:
color = str(component.get("X-CALENDARR-COLOR", "") or "")
rrule_prop = component.get("RRULE")
rrule_str = rrule_prop.to_ical().decode("utf-8") if rrule_prop else None
recurrence_id = component.get("RECURRENCE-ID")
is_recurring = rrule_str is not None or recurrence_id is not None
dtstart_prop = component.get("DTSTART")
dtend_prop = component.get("DTEND")
@@ -157,6 +159,7 @@ def _parse_ics(raw: str, event_url: str) -> List[Dict]:
"description": description,
"color": color or None,
"rrule": rrule_str,
"recurring": is_recurring,
}
)
except Exception as exc: