--- layout: none type: text/calendar --- BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN PRODID:https://chaotikum.org/ METHOD:PUBLISH BEGIN:VTIMEZONE TZID:Europe/Berlin X-LIC-LOCATION:Europe/Berlin BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0100 DTSTART:19701025T030000 TZNAME:CET RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T020000 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU END:STANDARD END:VTIMEZONE {% for event in site.events %}BEGIN:VEVENT UID:{{ event.uid }} ORGANIZER;CN={% if event.organizer and event.organizer != "" and event.organizer != nil %}{{event.organizer}}{% else %}Chaotikum e.V.{% endif %}:MAILTO:{{event.contact}} LOCATION:{% if event.locations contains 'Augenprüfraum' and event.locations contains 'Wartezimmer' and event.locations contains 'Lager' %}Nobreakspace{% else %}{{ event.locations | array_to_sentence_string }}{% endif %}{% capture textSize %}{{ event.short | size }}{% endcapture %}{% assign linelength = 50 %}{% assign rounds = textSize | divided_by: linelength %}{% assign extra = textSize | modulo: linelength %}{% assign start = 0 %} SUMMARY:{{ event.title | xml_escape | truncate: 60}} DESCRIPTION:{% for i in (1..rounds) %}{{ event.short | slice: start, linelength }}{% assign start = start | plus: linelength %} {% endfor%}{{ event.short | slice: start, extra }} CLASS:PUBLIC DTSTART;TZID=Europe/Berlin:{{ event.eventdate | date: "%Y%m%d" }}T{{ event.eventdate | date: "%H%M%S" }} DTEND;TZID=Europe/Berlin:{{ event.eventend | date: "%Y%m%d" }}T{{ event.eventend | date: "%H%M%S" }} DTSTAMP:{{ event.eventdate | date: "%Y%m%d" }}T{{ event.eventdate | date: "%H%M%S" }}Z END:VEVENT {% endfor %}END:VCALENDAR