Skip to content

Commit aa14ab9

Browse files
escowlesphette23
authored andcommitted
Generating ICS files from schedule data
1 parent 7c2f6a5 commit aa14ab9

5 files changed

Lines changed: 102 additions & 2 deletions

File tree

_data/schedule.yml

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,69 +7,84 @@
77
title: Registration
88
day2: true
99
time: 08:30-09:00
10+
livestream: false
1011
- timeImg: 8.30.png
1112
title: Registration
1213
day3: true
1314
time: 08:30-09:00
15+
livestream: false
1416

1517
# announcements
1618
- timeImg: 9.30.png
1719
title: Announcements
1820
time: 09:30-09:45
1921
day1: true
22+
livestream: true
2023
- timeImg: 1.00.png
2124
title: Announcements
2225
time: 13:00-13:15
2326
day1: true
27+
livestream: true
2428
- timeImg: 5.00.png
2529
title: Announcements
2630
time: 17:00-17:15
2731
day1: true
32+
livestream: true
2833
- timeImg: 9.00.png
2934
title: Announcements
3035
time: 09:00-09:15
3136
day2: true
3237
day3: true
38+
livestream: true
3339
- timeImg: 1.15.png
3440
title: Announcements
3541
time: 13:15-13:30
3642
day2: true
43+
livestream: true
3744
- timeImg: 5.20.png
3845
title: Announcements
3946
time: 17:20-17:35
4047
day2: true
48+
livestream: true
4149
- timeImg: 12.35.png
4250
title: Announcements
4351
time: 12:35-12:45
4452
day3: true
53+
livestream: true
4554

4655
# breaks
4756
- timeImg: 10.30.png
4857
title: Break
4958
time: 10:30-10:45
5059
day1: true
60+
livestream: false
5161
- timeImg: 2.45.png
5262
title: Break
5363
time: 14:45-15:00
5464
day1: true
65+
livestream: false
5566
- timeImg: 10.50.png
5667
title: Break
5768
time: 10:50-11:10
5869
day2: true
70+
livestream: false
5971
- timeImg: 3.45.png
6072
title: Break
6173
time: 15:45-16:00
6274
day2: true
75+
livestream: false
6376
- timeImg: 10.45.png
6477
title: Break
6578
time: 10:45-11:05
6679
day3: true
80+
livestream: false
6781

6882
# breakout sessions
6983
- timeImg: 2.30.png
7084
title: Breakouts
7185
time: 14:30-15:45
7286
day2: true
87+
livestream: false
7388
sessions:
7489
- title: ArchivesSpace with Devs (Ballroom A1)
7590
- title: Local & Open Source Discovery Systems (Ballroom A2)
@@ -81,6 +96,7 @@
8196
title: Breakouts
8297
time: 11:05-11:50
8398
day3: true
99+
livestream: false
84100
sessions:
85101
- title: ArcLight Interest Breakout (Ballroom A1)
86102
- title: Alma Admin & Users (Ballroom A2)
@@ -93,6 +109,7 @@
93109
title: Lightning Talks 1
94110
time: 15:00-16:00
95111
day1: true
112+
livestream: true
96113
sessions:
97114
- presenter: Steve Meyer
98115
title: Does anyone want to get together and talk about vectors and matrices?
@@ -114,11 +131,11 @@
114131
title: Measuring the Cost of Computation
115132
- presenter: Ed Summers
116133
title: Tracking & Evaluating Institutional Research
117-
118134
- timeImg: 11.10.png
119135
title: Lightning Talks 2
120136
time: 11:10-12:00
121137
day2: true
138+
livestream: true
122139
sessions:
123140
- presenter: Christy Bailey-Tomecek
124141
title: Return of the Jank
@@ -138,11 +155,11 @@
138155
title: Wait?! We're Out of ORCiD API Keys?
139156
- presenter: Cary Gordon
140157
title: The Joy of Code4Lib Video
141-
142158
- timeImg: 10.00.png
143159
title: Lightning Talks 3
144160
time: 10:00-10:45
145161
day3: true
162+
livestream: true
146163
sessions:
147164
- presenter: Corey Halpin
148165
title: A Story About Keyboards
@@ -170,6 +187,7 @@
170187
title: Poster Session
171188
time: 16:00-16:30
172189
day2: true
190+
livestream: false
173191

174192
# Lunches
175193
- timeImg: 12.00.png
@@ -178,58 +196,92 @@
178196
time: 12:00-13:00
179197
menu: day1-menus
180198
submenu: Lunch
199+
livestream: false
181200
- timeImg: 12.00.png
182201
title: Lunch
183202
day2: true
184203
time: 12:00-13:15
185204
menu: day2-menus
186205
submenu: Lunch
206+
livestream: false
187207

188208
# keynotes
189209
- timeImg: 9.45.png
190210
title: Opening Keynote
191211
day1: true
192212
groupId: key-open
193213
time: 09:45-10:30
214+
livestream: true
194215
- timeImg: 9.15.png
195216
title: Closing Keynote
196217
day3: true
197218
groupId: key-close
198219
time: 09:15-10:00
220+
livestream: true
199221

200222
# groups of talks
201223
- timeImg: 10.45.png
202224
time: 10:45-12:00
203225
title: Group 1 Talks
204226
groupId: 1
205227
day1: true
228+
livestream: true
206229
- timeImg: 1.15.png
207230
time: 13:15-14:45
208231
title: Group 2 Talks
209232
groupId: 2
210233
day1: true
234+
livestream: true
211235
- timeImg: 4.00.png
212236
time: 16:00-17:00
213237
title: Group 3 Talks
214238
groupId: 3
215239
day1: true
240+
livestream: true
216241
- timeImg: 9.15.png
217242
time: 09:15-10:50
218243
title: Group 4 Talks
219244
groupId: 4
220245
day2: true
246+
livestream: true
221247
- timeImg: 1.30.png
222248
time: 13:30-14:30
223249
title: Group 5 Talks
224250
groupId: 5
225251
day2: true
252+
livestream: true
226253
- timeImg: 4.30.png
227254
time: 16:30-17:20
228255
title: Group 6 Talks
229256
groupId: 6
230257
day2: true
258+
livestream: true
231259
- timeImg: 11.50.png
232260
time: 11:50-12:35
233261
title: Group 7 Talks
234262
groupId: 7
235263
day3: true
264+
livestream: true
265+
266+
# social events
267+
- timeImg: 6.00.png
268+
time: 18:00-20:00
269+
title: Newcomer Dinner
270+
day1: true
271+
livestream: false
272+
link: https://docs.google.com/document/d/11Ay8FLbKXEbYNiiu64t3IUgIlAMbPbWwe_5TV1XegL4/edit
273+
button_label: Sign Up
274+
- timeImg: 6.00.png
275+
time: 18:00-20:00
276+
title: Reception at Buffalo Billiards
277+
day2: true
278+
livestream: false
279+
link: https://2026.code4lib.org/general-info/venues/#reception
280+
button_label: View reception details
281+
- timeImg: 7.00.png
282+
time: 19:00-22:00
283+
title: Game Night
284+
day2: true
285+
livestream: false
286+
link: https://docs.google.com/spreadsheets/d/1nS7WWFRbjGrdfga3MRCr_Dy8xW6AyW0dyAsK5egHuPM/edit?gid=0#gid=0
287+
button_label: Sign Up

_includes/calendar-day.ics

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{% for event in include.events %}
2+
BEGIN:VEVENT
3+
SUMMARY:{{ event.title }}
4+
{% if event.groupId %}
5+
{% assign talks = site.posts | where: "group", event.groupId | sort: "spot" %}
6+
{%- capture desc -%}
7+
{% unless event.groupId == 'key-open' or event.groupId == 'key-close' %}
8+
{{ event.title }} ({{talks | size}} talks):
9+
{% endunless %}
10+
{%- endcapture -%}
11+
DESCRIPTION: {{ desc | strip }}\n\n
12+
{% for talk in talks %}
13+
{{ talk.speaker-text }}\n
14+
{{ talk.title }} ({{ talk.length }} minutes)\n
15+
{{ talk.url | absolute_url }}\n\n
16+
{% endfor %}
17+
{% endif %}
18+
{% if event.link %}
19+
DESCRIPTION: {{event.button_label}}\n {{event.link}}
20+
{% endif %}
21+
{% assign times = event.time | remove: ":" | split: "-" %}
22+
DTSTART;TZID=America/New_York:{{include.date}}T{{times[0]}}00
23+
DTEND;TZID=America/New_York:{{include.date}}T{{times[1]}}00
24+
{% comment %}LOCATION:http://example.org/TODO{% endcomment %}
25+
END:VEVENT
26+
{% endfor %}

_includes/calendar.ics

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
BEGIN:VCALENDAR
2+
CALSCALE:GREGORIAN
3+
VERSION:2.0
4+
X-WR-CALNAME:code4lib {{ site.data.year }}
5+
{% assign day1_date = site.data.conf.days[1].date-data | date: "%Y%m%d" %}
6+
{% assign day1_events = site.data.schedule | where: "day1", true | where: "livestream", include.livestream %}
7+
{% include calendar-day.ics date=day1_date events=day1_events %}
8+
9+
{% assign day2_date = site.data.conf.days[2].date-data | date: "%Y%m%d" %}
10+
{% assign day2_events = site.data.schedule | where: "day2", true | where: "livestream", include.livestream %}
11+
{% include calendar-day.ics date=day2_date events=day2_events %}
12+
13+
{% assign day3_date = site.data.conf.days[3].date-data | date: "%Y%m%d" %}
14+
{% assign day3_events = site.data.schedule | where: "day3", true | where: "livestream", include.livestream %}
15+
{% include calendar-day.ics date=day3_date events=day3_events %}
16+
END:VCALENDAR

ics/in-person.ics

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
---
3+
{% include calendar.ics livestream=false %}

ics/livestream.ics

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
---
3+
{% include calendar.ics livestream=true %}

0 commit comments

Comments
 (0)