{{ $data := getJSON (.Get "url") }} {{ with $data.schedule }} {{ $timeslotDuration := 0 }} {{ range split .conference.timeslot_duration ":" }} {{ $timeslotDuration = add (mul $timeslotDuration 60) (int .) }} {{ end }} {{ $rooms := dict }} {{ range $day := .conference.days }} {{ range $room := $data.schedule.conference.rooms }} {{ if index $rooms $room.name }} {{ $rooms = merge $rooms (dict $room.name ((index $rooms $room.name) | append (index $day.rooms .name))) }} {{ else }} {{ $rooms = merge $rooms (dict $room.name (index $day.rooms .name)) }} {{ end }} {{ end }} {{ end }} {{ $events := slice }} {{ range $rooms }} {{ with . }} {{ if $events }} {{ $events = $events | append . }} {{ else }} {{ $events = . }} {{ end }} {{ end }} {{ end }} {{ $events = sort $events "date" }} {{ $startDate := time (index $events 0).date }} {{ $endDate := 0 }} {{ with index $events (sub (len $events) 1) }} {{ $lastDuration := 0 }} {{ range split .duration ":" }} {{ $lastDuration = add (mul $lastDuration 60) (int .) }} {{ end }} {{ $endDate = time (add (time .date).Unix (mul $lastDuration 60)) }} {{ end }}

Version: {{ .version }}
Zeitangaben in {{ $startDate.Format "MST" }}

{{ range .conference.days }} {{ .date }}· {{ end }} zurück nach oben

{{ $lastDate := 0 }} {{ range seq 1 (div 30 $timeslotDuration) (div ($endDate.Sub $startDate).Minutes $timeslotDuration) }} {{ $date := time (add $startDate.Unix (mul (sub . 1) (mul $timeslotDuration 60))) }}
{{ if or (not $lastDate) (ne ($date.Format "2006-01-02") ($lastDate.Format "2006-01-02")) }}
{{ $date.Format "2006-01-02" }}
{{ end }} {{ $date.Format "15:04" }}
{{ $lastDate = $date }} {{ end }}
{{ range sort $data.schedule.conference.rooms "name" }} {{ $name := .name }} {{ $room := index $rooms $name }} {{ with $room }}

{{ $name }}

{{ range . }} {{ $start := add (div ((time .date).Sub $startDate).Minutes $timeslotDuration) 1 }} {{ $duration := 0 }} {{ range split .duration ":" }} {{ $duration = add (mul $duration 60) (int .) }} {{ end }} {{ $end := add $start (div $duration $timeslotDuration) }}
{{ (time .date).Format "15:04" }} {{ (time (int (add $startDate.Unix (mul (sub $end 1) (mul $timeslotDuration 60))))).Format "15:04" }}

{{ .title }}

{{ $speaker := delimit (apply .persons "index" "." "public_name") ", " }}

{{ $speaker }}

{{ end }}
{{ end }} {{ end }}
{{ end }}