2023-01-29 00:46:51 +01:00
|
|
|
{% set dateFormat = 'Ymd\\THis\\Z' %}
|
2023-06-04 23:10:56 +02:00
|
|
|
{% set replacement = {'\\': '\\\\', ';': '\\;', ',': '\\,', '\n': '\\n'} %}
|
2023-01-29 00:46:51 +01:00
|
|
|
BEGIN:VCALENDAR
|
|
|
|
VERSION:2.0
|
2023-06-04 23:10:56 +02:00
|
|
|
PRODID:-//-/{{ config('app_name') | replace(replacement) | raw }}//DE
|
2023-01-29 00:46:51 +01:00
|
|
|
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
|
2023-06-04 23:10:56 +02:00
|
|
|
SUMMARY:{{ (entry.shift.shiftType.name ~ ' (' ~ entry.shift.title ~ ')') | replace(replacement) | raw }}
|
2023-10-15 19:25:55 +02:00
|
|
|
LOCATION:{{ entry.shift.location.name | replace(replacement) | raw }}
|
2023-01-29 00:46:51 +01:00
|
|
|
DESCRIPTION:{{
|
2023-06-04 23:10:56 +02:00
|
|
|
(
|
|
|
|
entry.shift.shiftType.description
|
|
|
|
~ '\n' ~ entry.shift.description
|
|
|
|
~ '\n' ~ entry.user_comment
|
|
|
|
)
|
2023-01-29 00:46:51 +01:00
|
|
|
| replace(replacement) | raw
|
|
|
|
}}
|
|
|
|
URL:{{ url('/shifts', {'action': 'view', 'shift_id': entry.shift.id}) | raw }}
|
|
|
|
END:VEVENT
|
|
|
|
{% endfor %}
|
|
|
|
END:VCALENDAR
|