Commit Graph

  • bff9a244e7 feat: per-event reminders + default reminder setting (server) beta Scarriffle 2026-06-06 16:07:19 +02:00
  • fc00bf9114 feat(web): group members in the sidebar + per-user member colours Scarriffle 2026-06-01 20:32:45 +02:00
  • 817ce075d4 feat(web): non-emoji group icons (inline SVG) for consistent cross-platform look Scarriffle 2026-06-01 20:25:40 +02:00
  • 4b7e5799bf refactor: group icons are semantic keys, not emoji (display_title drops glyph) Scarriffle 2026-06-01 19:20:31 +02:00
  • 12c14e3c02 feat(web): hide individual member calendars in the group view Scarriffle 2026-06-01 18:16:25 +02:00
  • 447c3ddab1 feat(web): render server display_title in the group combined view Scarriffle 2026-06-01 17:54:22 +02:00
  • 6869a15bb8 fix(security): stop private-event leak in merge read + harden busy masking, uploads, profile Scarriffle 2026-06-01 17:49:56 +02:00
  • 0d15af736d feat: server-side display_title for the group combined view Scarriffle 2026-06-01 17:30:38 +02:00
  • f834ae5773 feat(web): modernize event popup (glass, colour accent, icon rows, animation) Scarriffle 2026-06-01 09:06:09 +02:00
  • 7be77da59f feat: Einstellungen in Kapitel (Profil/Darstellung/Ansicht/Kalender) Scarriffle 2026-05-31 19:05:39 +02:00
  • 8d605ab2cd fix: Monatszelle am Monatswechsel nicht mehr vertikal zentriert Scarriffle 2026-05-31 19:00:53 +02:00
  • a992d97796 feat: server-definierte Gruppenfarben (per API) + Gruppentermine überall erstellen Scarriffle 2026-05-31 18:52:40 +02:00
  • b0f1497bc8 fix: Monatsansicht-Layout bei Monatswechsel + Gruppenkalender in Sidebar Scarriffle 2026-05-31 18:45:49 +02:00
  • fd7f7ddfe0 feat: Gruppentermin-Button in der Gruppenansicht + Banner in Akzentfarbe Scarriffle 2026-05-31 18:38:35 +02:00
  • 7429a309c3 feat: wählbares Gruppen-Icon, geteilter Kalender markiert, Ersteller bei Gruppen-Terminen Scarriffle 2026-05-31 18:34:59 +02:00
  • 682f9613ec feat: schönere Gruppenansicht – Vorname statt Initialen + Farbe pro Person Scarriffle 2026-05-31 18:01:55 +02:00
  • 2033cf99d4 feat: Anzeigename im Web (Profil bearbeiten + Anzeige) Scarriffle 2026-05-31 17:49:19 +02:00
  • f9923b022e feat: Login-Name vs. Anzeigename (Server) Scarriffle 2026-05-31 17:40:38 +02:00
  • 28a7cbe94e fix: kaputtes Plus-Icon + Kalendernamen nicht vorzeitig abschneiden Scarriffle 2026-05-31 17:31:39 +02:00
  • cc4ccc7d81 feat: Live-Vorschau beim Kalender-Sortieren Scarriffle 2026-05-31 17:29:41 +02:00
  • c62b3df33a fix: Kalenderquelle als Tooltip statt inline (Namen nicht mehr abgeschnitten) Scarriffle 2026-05-31 17:25:47 +02:00
  • 8d2f487607 feat: flache sortierbare Kalenderliste (Drag&Drop) + Fixes Scarriffle 2026-05-31 17:23:28 +02:00
  • c7185a128e fix: Import-500 bei doppelten UIDs, Picker-UI & Settings-URL-State Scarriffle 2026-05-31 17:15:17 +02:00
  • 8abeefcb5a feat: Gruppen-Sichtbarkeit in Einstellungen + "Mit dir geteilt"-Sektion + Import-Fehler Scarriffle 2026-05-31 17:02:03 +02:00
  • 06ba9c2bb1 feat: Gruppen-Sichtbarkeit – genau ein designierter Kalender pro Person Scarriffle 2026-05-31 16:57:42 +02:00
  • 479da29bc4 fix: Gruppen-Mitgliederliste sauber ausrichten (Checkbox links, Name links) Scarriffle 2026-05-31 16:47:58 +02:00
  • f018f33f69 fix: JS/CSS immer revalidieren (no-cache) + Version v24 Scarriffle 2026-05-31 16:42:21 +02:00
  • e8a13ba33c feat: Gruppen im Web-Frontend + Gruppenkalender in /local/calendars Scarriffle 2026-05-31 16:37:08 +02:00
  • 8d2a697f8b feat: Web-Frontend – Sharing, iCal Import/Export, Ersteller & Privat-Flag Scarriffle 2026-05-31 16:30:47 +02:00
  • 32268a18b2 feat: Kalender-Sharing, Gruppen, iCal Import/Export & Ersteller (Server) Scarriffle 2026-05-31 16:05:18 +02:00
  • 58faf3876c fix: hartcodiertes Blau bei "heute"-Spalte & Admin-Badge entfernt master Scarriffle 2026-05-30 22:07:20 +02:00
  • 639d7f3c9c style: Feinschliff – Event-Popup, KW-Anzeige, Termin-Formular Scarriffle 2026-05-30 21:50:44 +02:00
  • a60c27f66f style: UI modernisiert – weniger Tabellen-Look, mehr Tiefe Scarriffle 2026-05-30 21:37:54 +02:00
  • 362cc7212c fix(version): Sidebar-Copyright wird jetzt auch aus version.js befuellt Scarriffle 2026-05-19 10:22:13 +02:00
  • 275e5a2ae0 fix: unaufgeloeste Merge-Konflikt-Marker aus i18n/calendar/week/css entfernt Scarriffle 2026-05-19 10:18:49 +02:00
  • f102f02cb9 fix(version): Tab-Titel + Impressum dynamisch aus version.js Scarriffle 2026-05-19 10:12:32 +02:00
  • 43575f9042 fix(theme): Defaults weiss-auf-schwarz + Kontrast-Sicherheitsbremse Scarriffle 2026-05-19 10:06:12 +02:00
  • fd7562966a fix(settings): Schrift-/Linien-/Hintergrundfarbe — Live-Vorschau + Hex ohne '#' Scarriffle 2026-05-19 09:57:40 +02:00
  • 8f9eafe561 feat(settings): Schriftfarbe, Linienfarbe und Hintergrundfarbe per Color-Picker Scarriffle 2026-05-19 09:49:45 +02:00
  • d3fa591bef merge: beta into master Scarriffle 2026-05-19 09:35:15 +02:00
  • 254adfa12a ui: Event-Popup-Aktionen modernisiert — kompakte Icon-Toolbar im Header Scarriffle 2026-05-11 09:10:07 +02:00
  • dc1cb4b57d fix: Popup-Action-Icons riesig, "copy" als Text — Cache-Robustheit Scarriffle 2026-05-11 08:54:20 +02:00
  • baa7e4c064 ui: Event-Popup neu strukturiert — Titel volle Breite, Actions im Footer Scarriffle 2026-05-11 08:24:48 +02:00
  • 1d6acceafc ui: Event-Popup-Aktionsbuttons polieren Scarriffle 2026-05-11 08:08:12 +02:00
  • 9013f57d02 feat(ui): Buttons im modernen Pill-Stil + Plus-Icon fixen Scarriffle 2026-05-11 07:56:13 +02:00
  • 199a65e2a5 fix: Caching auf max 2 h reduzieren Scarriffle 2026-05-11 07:44:25 +02:00
  • 3152c744a0 feat: URL-State – Reload erhält View und Datum statt auf heute zu springen Scarriffle 2026-05-10 13:15:28 +02:00
  • ba86092cc8 fix: Wochenansicht – ganztägige Termine spannen sich nicht mehr über zwei Tage Scarriffle 2026-05-10 11:01:13 +02:00
  • e744b1829e fix: Impressum – Open Home Foundation statt Home Assistant Foundation Scarriffle 2026-05-09 18:03:47 +02:00
  • 50c19c7999 fix: Impressum – Open Home Foundation statt Home Assistant Foundation Scarriffle 2026-05-09 18:03:47 +02:00
  • f09b5e7c48 fix: Impressum – Datenspeicherungsabschnitt korrigiert Scarriffle 2026-05-09 17:54:31 +02:00
  • 05e55b3326 fix: Impressum – Datenspeicherungsabschnitt korrigiert Scarriffle 2026-05-09 17:54:31 +02:00
  • 8a34618453 fix: Monatskürzel ~4px (≈1mm) nach rechts verschoben Scarriffle 2026-05-09 17:17:36 +02:00
  • 74ebf6465d fix: Monatskürzel ~4px (≈1mm) nach rechts verschoben Guido Schmit 2026-05-09 17:17:36 +02:00
  • 64d499647d fix: Stufenförmige Monatsgrenze – auch waagerechte Linie unter Vormonats-Tagen Scarriffle 2026-05-09 17:12:57 +02:00
  • 87ebc22d17 fix: Stufenförmige Monatsgrenze – auch waagerechte Linie unter Vormonats-Tagen Guido Schmit 2026-05-09 17:12:57 +02:00
  • b120d9d430 fix: Monatswechsel-Markierung – Linien über Events, mehr Abstand, immer waagerecht Scarriffle 2026-05-09 17:08:17 +02:00
  • 496d4e5745 fix: Monatswechsel-Markierung – Linien über Events, mehr Abstand, immer waagerecht Guido Schmit 2026-05-09 17:08:17 +02:00
  • 371678aac4 feat: Monatswechsel-Markierung in Monatsansicht Scarriffle 2026-05-09 16:49:52 +02:00
  • 006c1f994c feat: Monatswechsel-Markierung in Monatsansicht Guido Schmit 2026-05-09 16:49:52 +02:00
  • 6503d18637 fix(pwa): Layout berücksichtigt iOS-Safe-Area auch im Hauptbereich Scarriffle 2026-05-07 20:01:48 +02:00
  • 15b6c90b11 fix(pwa): Layout berücksichtigt iOS-Safe-Area auch im Hauptbereich Scarriffle 2026-05-07 20:01:48 +02:00
  • ebe250ca01 fix: Plus-Icon symmetrisch + Service-Worker Network-First für HTML Scarriffle 2026-05-07 19:49:48 +02:00
  • e52299fc08 fix: Plus-Icon symmetrisch + Service-Worker Network-First für HTML Scarriffle 2026-05-07 19:49:48 +02:00
  • f4bcdf458b fix(mobile): zweizeiliger Titel, kompaktes Event-Popup, keine Uhrzeit in Monatszelle Scarriffle 2026-05-07 19:40:20 +02:00
  • e7247d2ee1 fix(mobile): zweizeiliger Titel, kompaktes Event-Popup, keine Uhrzeit in Monatszelle Scarriffle 2026-05-07 19:40:20 +02:00
  • e0a61b7368 feat(mobile): Heute-Button im Topbar + runder FAB für Termin-Erstellen Scarriffle 2026-05-07 19:31:17 +02:00
  • 15388e5806 feat(mobile): Heute-Button im Topbar + runder FAB für Termin-Erstellen Scarriffle 2026-05-07 19:31:17 +02:00
  • 7cabfb10de perf: Event-Cache von ±8 Wochen auf ±10 Monate erweitern Scarriffle 2026-05-07 19:23:35 +02:00
  • 85d427f9b2 perf: Event-Cache von ±8 Wochen auf ±10 Monate erweitern Scarriffle 2026-05-07 19:23:35 +02:00
  • b9691ea209 feat(auth): "Angemeldet bleiben"-Checkbox auf Login-Screen Scarriffle 2026-05-07 19:17:26 +02:00
  • 2f8fed0600 feat(auth): "Angemeldet bleiben"-Checkbox auf Login-Screen Scarriffle 2026-05-07 19:17:26 +02:00
  • 49b1935a28 fix(mobile): Monatstitel sichtbar, KW-Bubble unten, Termine mit Text, Long-Press, Settings-Hamburger Scarriffle 2026-05-07 19:08:20 +02:00
  • 264c47fefd fix(mobile): Monatstitel sichtbar, KW-Bubble unten, Termine mit Text, Long-Press, Settings-Hamburger Scarriffle 2026-05-07 19:08:20 +02:00
  • 3d7779ae83 fix(mobile): Zoom blocken, Long-Press, KW-Bubble, Swipe-Nav, Safe-Area Scarriffle 2026-05-07 18:52:51 +02:00
  • fdf9af09cd fix(mobile): Zoom blocken, Long-Press, KW-Bubble, Swipe-Nav, Safe-Area Scarriffle 2026-05-07 18:52:51 +02:00
  • 6c7c8a4662 feat: PWA-Unterstützung und Mobile-Responsiveness Scarriffle 2026-05-07 10:35:42 +02:00
  • 528d63d7dd feat: PWA-Unterstützung und Mobile-Responsiveness Scarriffle 2026-05-07 10:35:42 +02:00
  • 0aeb421970 fix: HA Update-Fallback auf delete+create wenn Integration nicht unterstützt HA's Google-Calendar-Integration unterstützt kein calendar/event/update und gibt 'not_supported: Calendar does not support event update' zurück. In dem Fall wird jetzt automatisch der Termin gelöscht und neu erstellt (beide Operationen werden von der Integration unterstützt). Der Termin bekommt dabei eine neue UID, aber für den User sieht es wie ein Update aus. Scarriffle 2026-05-05 18:19:00 +02:00
  • 23a18b0a20 fix: HA Update-Fallback auf delete+create wenn Integration nicht unterstützt HA's Google-Calendar-Integration unterstützt kein calendar/event/update und gibt 'not_supported: Calendar does not support event update' zurück. In dem Fall wird jetzt automatisch der Termin gelöscht und neu erstellt (beide Operationen werden von der Integration unterstützt). Der Termin bekommt dabei eine neue UID, aber für den User sieht es wie ein Update aus. Guido Schmit 2026-05-05 18:19:00 +02:00
  • 29fef6ea77 fix: Ganztägig-Termine zeigen End-Datum jetzt korrekt inklusive iCal speichert DTEND exklusiv (Tag NACH dem letzten Tag). Bisher führte das dazu, dass ein Termin mit Ende=18.08 nur bis zum 17.08 angezeigt wurde, obwohl der User 18.08 als letzten Tag erwartete. Fix: Im Date-Picker arbeiten wir jetzt mit inklusiven End-Daten ('endet am 18.08' = 18.08 ist letzter Tag) und konvertieren beim Speichern auf exklusiv (DTEND=19.08). Beim Laden umgekehrt: -1 Tag fürs Anzeigen im Picker. Betrifft: openEditEventModal, openCopyEditModal, Save-Handler. Scarriffle 2026-05-05 18:16:56 +02:00
  • e7174770f3 fix: Ganztägig-Termine zeigen End-Datum jetzt korrekt inklusive iCal speichert DTEND exklusiv (Tag NACH dem letzten Tag). Bisher führte das dazu, dass ein Termin mit Ende=18.08 nur bis zum 17.08 angezeigt wurde, obwohl der User 18.08 als letzten Tag erwartete. Fix: Im Date-Picker arbeiten wir jetzt mit inklusiven End-Daten ('endet am 18.08' = 18.08 ist letzter Tag) und konvertieren beim Speichern auf exklusiv (DTEND=19.08). Beim Laden umgekehrt: -1 Tag fürs Anzeigen im Picker. Betrifft: openEditEventModal, openCopyEditModal, Save-Handler. Guido Schmit 2026-05-05 18:16:56 +02:00
  • dd18a0b594 feat: 'Vor dem Kopieren bearbeiten' Checkbox im Kopieren-Popup Über der Kalenderliste im Kopieren-Menü gibt es jetzt eine Checkbox 'Vor dem Kopieren bearbeiten'. Wenn aktiviert und ein Ziel-Kalender geklickt wird, öffnet sich der Termin-erstellen-Dialog mit allen Daten des Quell-Termins vorausgefüllt (Titel, Datum, Ort, Beschreibung, Farbe, Wiederholung) und dem Ziel-Kalender vorausgewählt. Scarriffle 2026-05-05 18:11:33 +02:00
  • c12f30cbbf feat: 'Vor dem Kopieren bearbeiten' Checkbox im Kopieren-Popup Über der Kalenderliste im Kopieren-Menü gibt es jetzt eine Checkbox 'Vor dem Kopieren bearbeiten'. Wenn aktiviert und ein Ziel-Kalender geklickt wird, öffnet sich der Termin-erstellen-Dialog mit allen Daten des Quell-Termins vorausgefüllt (Titel, Datum, Ort, Beschreibung, Farbe, Wiederholung) und dem Ziel-Kalender vorausgewählt. Guido Schmit 2026-05-05 18:11:33 +02:00
  • 4aaf6672f7 fix: Quell-Kalender wird beim Kopieren ausgeblendet buildWritableCalendars excluded jetzt den Kalender, in dem das Event bereits ist – so kann man nicht mehr in denselben Kalender kopieren. Scarriffle 2026-05-05 17:54:15 +02:00
  • da74e8dc78 fix: Quell-Kalender wird beim Kopieren ausgeblendet buildWritableCalendars excluded jetzt den Kalender, in dem das Event bereits ist – so kann man nicht mehr in denselben Kalender kopieren. Guido Schmit 2026-05-05 17:54:15 +02:00
  • ac5996693f fix: Termine in unchecked Kalendern erstellen + HA-Kalender als Kopier-Ziel - populateCalendarSelect: filtert jetzt nach !sidebar_hidden statt enabled. Unchecked (versteckte) Kalender bleiben so im Termin-erstellen-Dropdown verfügbar - buildWritableCalendars: HA-Kalender werden als Kopier-Ziele aufgeführt - copyEventToCalendar: routet HA-Ziele über /homeassistant/events Endpoint (vorher fielen sie in den CalDAV-Fallback) Scarriffle 2026-05-05 17:46:12 +02:00
  • b1b08072e7 fix: Termine in unchecked Kalendern erstellen + HA-Kalender als Kopier-Ziel - populateCalendarSelect: filtert jetzt nach !sidebar_hidden statt enabled. Unchecked (versteckte) Kalender bleiben so im Termin-erstellen-Dropdown verfügbar - buildWritableCalendars: HA-Kalender werden als Kopier-Ziele aufgeführt - copyEventToCalendar: routet HA-Ziele über /homeassistant/events Endpoint (vorher fielen sie in den CalDAV-Fallback) Guido Schmit 2026-05-05 17:46:12 +02:00
  • 0e6672b909 fix: CalDAV-Events bekommen source-Feld – Kalenderfarbe-Patch wirkt sofort CalDAV-Events hatten bisher kein source-Feld gesetzt. applyCalendarColor filtert aber via ev.source !== 'caldav', sodass der Patch nie auf CalDAV-Events angewendet wurde – die Farbe blieb sichtbar bis F5. Jetzt wird source: 'caldav' beim Anreichern der Events gesetzt. Scarriffle 2026-04-29 20:27:31 +02:00
  • b961cf94ef fix: CalDAV-Events bekommen source-Feld – Kalenderfarbe-Patch wirkt sofort CalDAV-Events hatten bisher kein source-Feld gesetzt. applyCalendarColor filtert aber via ev.source !== 'caldav', sodass der Patch nie auf CalDAV-Events angewendet wurde – die Farbe blieb sichtbar bis F5. Jetzt wird source: 'caldav' beim Anreichern der Events gesetzt. Guido Schmit 2026-04-29 20:27:31 +02:00
  • 8d95dd0b97 fix: Termin-Änderungen (Farbe, Titel, etc.) sofort ohne Reload anzeigen Nach dem Speichern eines Termins wird das gecachte Event-Objekt direkt in-place gepatcht und die View neu gerendert. Vorher war die neue Farbe erst nach F5 sichtbar, weil zwar fetchAndRender(true) aufgerufen wurde, aber der Render-Pfad das Update nicht zuverlässig übernommen hat. Scarriffle 2026-04-29 20:22:34 +02:00
  • dce9890bfa fix: Termin-Änderungen (Farbe, Titel, etc.) sofort ohne Reload anzeigen Nach dem Speichern eines Termins wird das gecachte Event-Objekt direkt in-place gepatcht und die View neu gerendert. Vorher war die neue Farbe erst nach F5 sichtbar, weil zwar fetchAndRender(true) aufgerufen wurde, aber der Render-Pfad das Update nicht zuverlässig übernommen hat. Guido Schmit 2026-04-29 20:22:34 +02:00
  • e99f91dcf3 feat: HA-Events über WebSocket API (calendar/event/delete und update) Manche HA-Integrationen registrieren nur den WebSocket-Handler, keinen Service-Call. Die HA-Web-UI nutzt deshalb den WebSocket-Pfad. Calendarr macht das jetzt auch: - _ha_ws_call: minimaler WebSocket-Client für eine einzelne Command - create: erst WS, dann Service-Call als Fallback - update: nur WS (Service-Call existiert oft nicht) - delete: nur WS (Service-Call existiert oft nicht) Neue Dependency: websocket-client==1.8.0 Scarriffle 2026-04-29 20:01:12 +02:00
  • 98870ccfb3 feat: HA-Events über WebSocket API (calendar/event/delete und update) Manche HA-Integrationen registrieren nur den WebSocket-Handler, keinen Service-Call. Die HA-Web-UI nutzt deshalb den WebSocket-Pfad. Calendarr macht das jetzt auch: - _ha_ws_call: minimaler WebSocket-Client für eine einzelne Command - create: erst WS, dann Service-Call als Fallback - update: nur WS (Service-Call existiert oft nicht) - delete: nur WS (Service-Call existiert oft nicht) Neue Dependency: websocket-client==1.8.0 Guido Schmit 2026-04-29 20:01:12 +02:00
  • 64f8b901dd fix: HA Delete – mehrere Body-Formate ausprobieren HA's Service-Call-Schema akzeptiert je nach Version verschiedene Body-Shapes für entity_id. Wir probieren jetzt der Reihe nach: 1. entity_id als String 2. entity_id als Liste 3. target-Wrapper Wenn alle fehlschlagen, klare Anweisung zum HA-Developer-Tools-Test. Scarriffle 2026-04-29 19:58:56 +02:00
  • 1f010078d3 fix: HA Delete – mehrere Body-Formate ausprobieren HA's Service-Call-Schema akzeptiert je nach Version verschiedene Body-Shapes für entity_id. Wir probieren jetzt der Reihe nach: 1. entity_id als String 2. entity_id als Liste 3. target-Wrapper Wenn alle fehlschlagen, klare Anweisung zum HA-Developer-Tools-Test. Guido Schmit 2026-04-29 19:58:56 +02:00
  • c61d7fd698 fix: HA Delete – Fallback auf REST DELETE und klarere Fehlermeldung calendar.delete_event schlägt mit 400 fehl, wenn die HA-Integration das Feature nicht unterstützt (z.B. Google-Calendar via HA hat nur CREATE_EVENT, kein DELETE/UPDATE). - Versucht erst Service-Call, dann REST DELETE als Fallback - Bei 400 wird der User aufgeklärt, dass die Integration vermutlich kein Löschen unterstützt Scarriffle 2026-04-29 19:55:04 +02:00
  • 80cde5aaee fix: HA Delete – Fallback auf REST DELETE und klarere Fehlermeldung calendar.delete_event schlägt mit 400 fehl, wenn die HA-Integration das Feature nicht unterstützt (z.B. Google-Calendar via HA hat nur CREATE_EVENT, kein DELETE/UPDATE). - Versucht erst Service-Call, dann REST DELETE als Fallback - Bei 400 wird der User aufgeklärt, dass die Integration vermutlich kein Löschen unterstützt Guido Schmit 2026-04-29 19:55:04 +02:00
  • b803d4bf4c fix: HA Datetime-Format mit Timezone, leere Strings filtern, Debug-Logs - _ha_format_dt: Parst ISO-Datetime zu datetime-Objekt, emittiert ohne Millisekunden, MIT Timezone-Offset. Vorher landeten Termine am falschen Datum, weil das Frontend UTC schickt aber wir die Timezone gestrippt haben → HA hat als lokale Zeit interpretiert - Leere Strings werden nicht mehr in den Body aufgenommen (HA Validator könnte diese ablehnen) - Logging in create/delete/update für besseres Debugging der HA-Calls Scarriffle 2026-04-29 19:50:52 +02:00
  • 0ea0a530f6 fix: HA Datetime-Format mit Timezone, leere Strings filtern, Debug-Logs - _ha_format_dt: Parst ISO-Datetime zu datetime-Objekt, emittiert ohne Millisekunden, MIT Timezone-Offset. Vorher landeten Termine am falschen Datum, weil das Frontend UTC schickt aber wir die Timezone gestrippt haben → HA hat als lokale Zeit interpretiert - Leere Strings werden nicht mehr in den Body aufgenommen (HA Validator könnte diese ablehnen) - Logging in create/delete/update für besseres Debugging der HA-Calls Guido Schmit 2026-04-29 19:50:52 +02:00