{% set dateFormat = 'Ymd\\THis\\Z' %} {% set replacement = {'\n': '\\n'} %} BEGIN:VCALENDAR VERSION:2.0 PRODID:-//-/{{ config('app_name') }}//DE CALSCALE:GREGORIAN {% for entry in shiftEntries %} BEGIN:VEVENT UID:{{ uuidBy(entry.id, '54117') }} DTSTAMP:{{ entry.shift.start.utc().format(dateFormat) }} DTSTART:{{ entry.shift.start.utc().format(dateFormat) }} DTEND:{{ entry.shift.end.utc().format(dateFormat) }} STATUS:CONFIRMED TRANSP:OPAQUE SUMMARY:{{ entry.shift.shiftType.name ~ ' (' ~ entry.shift.title ~ ')' | replace(replacement) | raw }} LOCATION:{{ entry.shift.room.name | replace(replacement) | raw }} DESCRIPTION:{{ entry.shift.shiftType.description ~ '\\n' ~ entry.shift.description ~ '\\n' ~ entry.user_comment | replace(replacement) | raw }} URL:{{ url('/shifts', {'action': 'view', 'shift_id': entry.shift.id}) | raw }} END:VEVENT {% endfor %} END:VCALENDAR