--- layout: none type: text/calendar --- BEGIN:VCALENDAR VERSION:2.0 X-WR-CALNAME:Chaotikum X-WR-CALDESC:Termine des Chaotikum e.V. CALSCALE:GREGORIAN BEGIN:VTIMEZONE TZID:Europe/Berlin TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin X-LIC-LOCATION:Europe/Berlin BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T020000 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0100 TZNAME:CET DTSTART:19701025T030000 RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU END:STANDARD END:VTIMEZONE PRODID:https://chaotikum.org/ METHOD:PUBLISH {% 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 short %}{{ event.short | trim }}{% endcapture %}{% capture textSize %}{{ short | size }}{% endcapture %}{% assign linelength = 50 %}{% assign space = ' ' %}{% assign rounds = textSize | divided_by: linelength %}{% assign extra = textSize | modulo: linelength %}{% assign start = 0 %}{% if extra > 0 %}{% assign rounds = rounds | plus: 1 %}{% endif %} SUMMARY:{{ event.title | xml_escape | truncate: 60}} DESCRIPTION:{% for i in (1..rounds) %}{% capture descline %}{{ short | slice: start, linelength }}{% endcapture %}{% if i > 1 %}{% capture descline %}{{space}}{{descline}}{% endcapture %}{% endif %}{{descline}}{% assign start = start | plus: linelength %} {% endfor %}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 {% if event.uid %}{% assign post = site.posts | where: "uid", event.uid | first %}{% if post %}{% capture url %}{{site.url}}{{post.url}}{% endcapture %}{% capture urlsize %}{{ url | size }}{% endcapture %}{% assign urllength = 50 %}{% assign urlspace = ' ' %}{% assign urlrounds = urlsize | divided_by: urllength %}{% assign urlextra = urlsize | modulo: urllength %}{% assign urlstart = 0 %}{% if urlextra > 0 %}{% assign urlrounds = urlrounds | plus: 1 %}{% endif %}URL:{% for j in (1..urlrounds) %}{% capture urldescline %}{{ url | slice: urlstart, urllength }}{% endcapture %}{% if j > 1 %}{% capture urldescline %}{{urlspace}}{{urldescline}}{% endcapture %}{% endif %}{{urldescline}}{% assign urlstart = urlstart | plus: urllength %} {% endfor %}{% endif %}{% endif %}END:VEVENT {% endfor %}END:VCALENDAR