Merge pull request 'diday-end-recurrence' (#47) from hauke/www:diday-end-recurrence into staging
All checks were successful
deploy blog / deploy (push) Successful in 1m0s

Reviewed-on: #47
This commit is contained in:
yrrsinn 2026-07-05 00:18:48 +02:00
commit 42f999443f
3 changed files with 20 additions and 2 deletions

View file

@ -0,0 +1,15 @@
---
title: "Kein DI.Day am 5. Juli im CCCB"
date: 2026-07-04T12:00:00+02:00
showHero: false
tags: ["di.day", "Ankündigung"]
---
**Kurzfristige Änderung:** Der [Digital Independence Day](/veranstaltungen/didit/) findet am **Sonntag, dem 5. Juli 2026, nicht** im Chaos Computer Club Berlin (Marienstraße 11) statt.
Wer trotzdem am DI.Day teilnehmen und den Weg in die digitale Unabhängigkeit weitergehen möchte, ist herzlich bei den anderen Berliner Veranstaltungen willkommen:
- [„Let's DID it!" mit Linux & Sommerfest der BELUG](https://f.termine.di.day/events/ee48fdda-a134-4f27-932e-b87c7a9fa24a) in der c-base
- [DI.Day im Stadtschloss Moabit](https://f.termine.di.day/events/41ab17fe-05ab-4308-9abb-d38d9485fd4f)
Weitere Termine und Orte findet ihr wie immer auf [termine.di.day](https://termine.di.day/).

View file

@ -4,7 +4,7 @@ subtitle: "Digital Independence Day im CCCB"
date: 2026-01-04T12:23:00+01:00
dtstart: 20260104T122300
dtend: 20260104T174200
rrule: "FREQ=MONTHLY;INTERVAL=2;BYDAY=1SU;WKST=MO"
rrule: "FREQ=MONTHLY;INTERVAL=2;BYDAY=1SU;WKST=MO;UNTIL=20260503T235959Z"
menu:
main:
parent: "Veranstaltungen"

View file

@ -44,7 +44,10 @@ def parse_recurring_event(event, start, end):
logging.info(f"Processing recurring event {event['SUMMARY'].to_ical().decode('utf-8')}")
dtstart = parse(event["DTSTART"].to_ical())
rs = rruleset()
rs.rrule(rrulestr(event["RRULE"].to_ical().decode("utf-8"), dtstart=dtstart))
# dtstart is normalized to naive local time above; pass ignoretz so a
# tz-aware UNTIL (RFC 5545 requires UTC for it) is treated as naive too,
# otherwise dateutil rejects the naive/aware mismatch.
rs.rrule(rrulestr(event["RRULE"].to_ical().decode("utf-8"), dtstart=dtstart, ignoretz=True))
if "EXDATE" in event.keys():
for exdate in event["EXDATE"]:
rs.exdate(parse(exdate.to_ical()))