summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-02 00:13:28 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-02 00:13:28 +0200
commitdb9bd097ec54964a93efccd3056bfcb4a9484052 (patch)
tree2760d2162ff0b97029ace476f51cee3d7ee6c17d /db
parentf7c3bf9e6869331be0c33c0cd24246c592bf0dff (diff)
Rewrite chapter seeds: multi-event support, drop is_primary, fix data
- seed_chapter now accepts events: array instead of flat rrule:/ start_time: params; each event hash supports rrule:, start_time:, tag_list:, location:, duration_hours: - Chapters with multiple open days now represented correctly (Stralsund: Thursday Chaostreff + 2nd/4th Saturday OpenSpace; Hamburg: 2nd Friday + last Tuesday; Stuttgart: 1st Tuesday + 3rd Wednesday; Freiburg: Mon+Tue open + biweekly Plenum; Backnang: 3rd Sunday + 1st Tuesday; Tübingen: last Sunday + 2nd Monday at different venues) - is_primary removed from migration entirely — replaced by tag_list: 'open-day' on events - Stale EN descriptions corrected: Berlin, Darmstadt, Erlangen, Essen, Freiburg, Göttingen, Hamburg, Hannover, Karlsruhe, Paderborn, Stuttgart, Ulm - chaostreff-stralsund duplicate entry removed (Port39 is erfa only)
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20260627233640_upgrade_events_and_nodes_for_standalone_events.rb5
-rw-r--r--db/seeds/chapters.rb579
2 files changed, 326 insertions, 258 deletions
diff --git a/db/migrate/20260627233640_upgrade_events_and_nodes_for_standalone_events.rb b/db/migrate/20260627233640_upgrade_events_and_nodes_for_standalone_events.rb
index 790a62b..2605e5c 100644
--- a/db/migrate/20260627233640_upgrade_events_and_nodes_for_standalone_events.rb
+++ b/db/migrate/20260627233640_upgrade_events_and_nodes_for_standalone_events.rb
@@ -4,10 +4,6 @@ class UpgradeEventsAndNodesForStandaloneEvents < ActiveRecord::Migration[8.1]
4 change_column_null :events, :node_id, true 4 change_column_null :events, :node_id, true
5 add_column :events, :title, :string 5 add_column :events, :title, :string
6 add_column :events, :description, :text 6 add_column :events, :description, :text
7 add_column :events, :is_primary, :boolean, default: false, null: false
8
9 # Mark all existing events as primary (they were all 1:1 with nodes)
10 Event.where.not(node_id: nil).update_all(is_primary: true)
11 7
12 # Occurrences: make node optional 8 # Occurrences: make node optional
13 change_column_null :occurrences, :node_id, true 9 change_column_null :occurrences, :node_id, true
@@ -19,7 +15,6 @@ class UpgradeEventsAndNodesForStandaloneEvents < ActiveRecord::Migration[8.1]
19 def down 15 def down
20 remove_column :nodes, :external_url 16 remove_column :nodes, :external_url
21 change_column_null :occurrences, :node_id, false 17 change_column_null :occurrences, :node_id, false
22 remove_column :events, :is_primary
23 remove_column :events, :description 18 remove_column :events, :description
24 remove_column :events, :title 19 remove_column :events, :title
25 change_column_null :events, :node_id, false 20 change_column_null :events, :node_id, false
diff --git a/db/seeds/chapters.rb b/db/seeds/chapters.rb
index 8584acd..0b83987 100644
--- a/db/seeds/chapters.rb
+++ b/db/seeds/chapters.rb
@@ -7,14 +7,15 @@
7# 549 = chaostreffs overview node 7# 549 = chaostreffs overview node
8# 8#
9# Each entry requires at minimum: slug, title_de, description_de, external_url 9# Each entry requires at minimum: slug, title_de, description_de, external_url
10# Optional: title_en, description_en, location, rrule, start_time, review 10# Optional: title_en, description_en, location, events, review
11# events: array of { rrule:, start_time:, tag_list:, location:, duration_hours: }
11# Entries with review: true have known discrepancies between DE and EN content. 12# Entries with review: true have known discrepancies between DE and EN content.
12 13
13require 'date' 14require 'date'
14 15
15def seed_chapter(parent_id:, slug:, tag:, title_de:, description_de:, 16def seed_chapter(parent_id:, slug:, tag:, title_de:, description_de:,
16 external_url:, title_en: nil, description_en: nil, 17 external_url:, title_en: nil, description_en: nil,
17 location: nil, rrule: nil, start_time: nil, review: false) 18 location: nil, events: [], review: false)
18 19
19 if review 20 if review
20 puts " [REVIEW] #{slug} — check DE/EN discrepancy before publishing" 21 puts " [REVIEW] #{slug} — check DE/EN discrepancy before publishing"
@@ -62,16 +63,16 @@ def seed_chapter(parent_id:, slug:, tag:, title_de:, description_de:,
62 node.publish_draft! 63 node.publish_draft!
63 node.reload 64 node.reload
64 65
65 # Create primary event if rrule or start_time provided 66 # Create events
66 if rrule || start_time 67 events.each do |ev|
67 base_time = Time.parse("#{Date.today.year}-01-01 #{start_time || '19:00'}:00") 68 base_time = Time.parse("#{Date.today.year}-01-01 #{ev[:start_time] || '19:00'}:00")
68 node.events.create!( 69 node.events.create!(
69 title: title_de, 70 title: title_de,
70 location: location, 71 location: ev[:location] || location,
71 rrule: rrule, 72 rrule: ev[:rrule],
72 start_time: base_time, 73 start_time: base_time,
73 end_time: base_time + 2.hours, 74 end_time: base_time + (ev[:duration_hours] || 2).hours,
74 is_primary: true 75 tag_list: ev[:tag_list] || 'open-day'
75 ) 76 )
76 end 77 end
77 78
@@ -80,7 +81,6 @@ end
80 81
81puts "Seeding erfas..." 82puts "Seeding erfas..."
82 83
83
84erfas = [ 84erfas = [
85 { 85 {
86 slug: "erfa-aachen", 86 slug: "erfa-aachen",
@@ -90,8 +90,9 @@ erfas = [
90 description_en: "CCC Aachen opens its doors regularly to themed and open evenings. Our small but cozy space full of plush sharks is located within a few minutes by foot from central station and the city center (Schützenstraße 11, 52062 Aachen). Thanks to colorful LEDs it's especially easy to find at night.", 90 description_en: "CCC Aachen opens its doors regularly to themed and open evenings. Our small but cozy space full of plush sharks is located within a few minutes by foot from central station and the city center (Schützenstraße 11, 52062 Aachen). Thanks to colorful LEDs it's especially easy to find at night.",
91 external_url: "https://ccc.ac/", 91 external_url: "https://ccc.ac/",
92 location: "Schützenstraße 11, 52062 Aachen", 92 location: "Schützenstraße 11, 52062 Aachen",
93 rrule: "FREQ=WEEKLY;BYDAY=TU", 93 events: [
94 start_time: "19:00", 94 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
95 ],
95 review: false 96 review: false
96 }, 97 },
97 { 98 {
@@ -102,8 +103,9 @@ erfas = [
102 description_en: "The CCC affiliated hackerspace backspace gathers people interested in technical innovation and free information exchange. It is a think tank, workshop, hackerspace, open space, home, laboratory and instigator. There is something going on every day, but most people meet at Spiegelgraben 41 in Bamberg on Tuesday, 7pm.", 103 description_en: "The CCC affiliated hackerspace backspace gathers people interested in technical innovation and free information exchange. It is a think tank, workshop, hackerspace, open space, home, laboratory and instigator. There is something going on every day, but most people meet at Spiegelgraben 41 in Bamberg on Tuesday, 7pm.",
103 external_url: "https://www.hackerspace-bamberg.de/", 104 external_url: "https://www.hackerspace-bamberg.de/",
104 location: "Spiegelgraben 41, 96052 Bamberg", 105 location: "Spiegelgraben 41, 96052 Bamberg",
105 rrule: "FREQ=WEEKLY;BYDAY=TU", 106 events: [
106 start_time: "19:00", 107 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
108 ],
107 review: false 109 review: false
108 }, 110 },
109 { 111 {
@@ -114,8 +116,9 @@ erfas = [
114 description_en: "CCC Basel opens its doors every Tuesday evening from 19:30. We are located at Birsfelderstrasse 6, 4132 Muttenz, Switzerland; just go down the outdoors stairway to the basement. If you arrive by public transit, we recommend taking tramway 14 to the stop Käppeli.", 116 description_en: "CCC Basel opens its doors every Tuesday evening from 19:30. We are located at Birsfelderstrasse 6, 4132 Muttenz, Switzerland; just go down the outdoors stairway to the basement. If you arrive by public transit, we recommend taking tramway 14 to the stop Käppeli.",
115 external_url: "https://ccc-basel.ch/", 117 external_url: "https://ccc-basel.ch/",
116 location: "Birsfelderstrasse 6, CH-4132 Muttenz", 118 location: "Birsfelderstrasse 6, CH-4132 Muttenz",
117 rrule: "FREQ=WEEKLY;BYDAY=TU", 119 events: [
118 start_time: "19:30", 120 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:30" }
121 ],
119 review: false 122 review: false
120 }, 123 },
121 { 124 {
@@ -123,12 +126,13 @@ erfas = [
123 title_de: "CCC Berlin – Club Discordia", 126 title_de: "CCC Berlin – Club Discordia",
124 title_en: "CCC Berlin – Club Discordia", 127 title_en: "CCC Berlin – Club Discordia",
125 description_de: "Der Club Discordia ist ein öffentliches Treffen in den Clubräumen des CCC Berlin (Marienstraße 11, 10117 Berlin-Mitte). Die Treffen finden jeden Dienstag und Donnerstag ab ca. 19 Uhr statt.", 128 description_de: "Der Club Discordia ist ein öffentliches Treffen in den Clubräumen des CCC Berlin (Marienstraße 11, 10117 Berlin-Mitte). Die Treffen finden jeden Dienstag und Donnerstag ab ca. 19 Uhr statt.",
126 description_en: "Club Discordia is a public meeting located at the CCC Berlin (Marienstr. 11, 10117 Berlin-Mitte). Meetings are held every Thursday at 5pm.", 129 description_en: "Club Discordia is a public meeting located at the CCC Berlin (Marienstr. 11, 10117 Berlin-Mitte). Meetings are held every Tuesday and Thursday at around 7pm.",
127 external_url: "http://berlin.ccc.de/", 130 external_url: "http://berlin.ccc.de/",
128 location: "Marienstraße 11, 10117 Berlin", 131 location: "Marienstraße 11, 10117 Berlin",
129 rrule: "FREQ=WEEKLY;BYDAY=TU,TH", 132 events: [
130 start_time: "19:00", 133 { rrule: "FREQ=WEEKLY;BYDAY=TU,TH", start_time: "19:00" }
131 review: true 134 ],
135 review: false
132 }, 136 },
133 { 137 {
134 slug: "erfa-bremen", 138 slug: "erfa-bremen",
@@ -138,8 +142,9 @@ erfas = [
138 description_en: "The public get together of CCC Bremen takes place every Tuesday at 8pm at Z1 (Zweigstraße 1, 28217 Bremen).", 142 description_en: "The public get together of CCC Bremen takes place every Tuesday at 8pm at Z1 (Zweigstraße 1, 28217 Bremen).",
139 external_url: "https://www.ccchb.de/", 143 external_url: "https://www.ccchb.de/",
140 location: "Zweigstraße 1, 28217 Bremen", 144 location: "Zweigstraße 1, 28217 Bremen",
141 rrule: "FREQ=WEEKLY;BYDAY=TU", 145 events: [
142 start_time: "20:00", 146 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "20:00" }
147 ],
143 review: false 148 review: false
144 }, 149 },
145 { 150 {
@@ -150,8 +155,7 @@ erfas = [
150 description_en: nil, 155 description_en: nil,
151 external_url: "https://chaoschemnitz.de", 156 external_url: "https://chaoschemnitz.de",
152 location: "Augustusburger Straße 102, Chemnitz", 157 location: "Augustusburger Straße 102, Chemnitz",
153 rrule: nil, 158 events: [],
154 start_time: nil,
155 review: false 159 review: false
156 }, 160 },
157 { 161 {
@@ -159,12 +163,13 @@ erfas = [
159 title_de: "CCC Darmstadt", 163 title_de: "CCC Darmstadt",
160 title_en: "CCC Darmstadt", 164 title_en: "CCC Darmstadt",
161 description_de: "Wir treffen uns jeden Dienstagabend ab 19 Uhr zum gemeinsamen Basteln, Diskutieren, Hacken, Nerden – eben einfach zum offenen Chaos – in unserem Hackspace in der Wilhelminenstraße 17, mitten in der Darmstädter Innenstadt. Aber auch an <a href=\"https://www.chaos-darmstadt.de/termine.html\">jedem anderen Abend</a> ist in der Regel etwas los. Neben der Nutzung unserer Elektronikwerkstatt hast du zum Beispiel die Möglichkeit, bei unserem <a href=\"https://www.chaos-darmstadt.de/wizardsofdos.html\">Capture-the-Flag-Team „Wizards of DoS“</a> reinzuschauen oder dich bei <a href=\"https://darmstadt.freifunk.net\">Freifunk Darmstadt</a> zu engagieren. Aktuelle Termine und Neuigkeiten sowie den Türstatus gibt's auf <a href=\"https://www.chaos-darmstadt.de/\">chaos-darmstadt.de</a>. Im IRC findest du uns unter <a href=\"https://webirc.hackint.org/#chaos-darmstadt\">#chaos-darmstadt auf hackint</a>. Mailingliste: public&lt;ät&gt;lists.darmstadt.ccc.de. Schau doch einfach mal vorbei!", 165 description_de: "Wir treffen uns jeden Dienstagabend ab 19 Uhr zum gemeinsamen Basteln, Diskutieren, Hacken, Nerden – eben einfach zum offenen Chaos – in unserem Hackspace in der Wilhelminenstraße 17, mitten in der Darmstädter Innenstadt. Aber auch an <a href=\"https://www.chaos-darmstadt.de/termine.html\">jedem anderen Abend</a> ist in der Regel etwas los. Neben der Nutzung unserer Elektronikwerkstatt hast du zum Beispiel die Möglichkeit, bei unserem <a href=\"https://www.chaos-darmstadt.de/wizardsofdos.html\">Capture-the-Flag-Team „Wizards of DoS“</a> reinzuschauen oder dich bei <a href=\"https://darmstadt.freifunk.net\">Freifunk Darmstadt</a> zu engagieren. Aktuelle Termine und Neuigkeiten sowie den Türstatus gibt's auf <a href=\"https://www.chaos-darmstadt.de/\">chaos-darmstadt.de</a>. Im IRC findest du uns unter <a href=\"https://webirc.hackint.org/#chaos-darmstadt\">#chaos-darmstadt auf hackint</a>. Mailingliste: public&lt;ät&gt;lists.darmstadt.ccc.de. Schau doch einfach mal vorbei!",
162 description_en: "CCC Darmstadt meets Tuesdays from 8pm in their hackspace at Wilhelm-Leuschner-Strasse 36.", 166 description_en: "CCC Darmstadt meets Tuesdays from 7pm in their hackspace at Wilhelminenstraße 17.",
163 external_url: "https://www.chaos-darmstadt.de/", 167 external_url: "https://www.chaos-darmstadt.de/",
164 location: "Wilhelminenstraße 17, Darmstadt", 168 location: "Wilhelminenstraße 17, Darmstadt",
165 rrule: "FREQ=WEEKLY;BYDAY=TU", 169 events: [
166 start_time: "19:00", 170 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
167 review: true 171 ],
172 review: false
168 }, 173 },
169 { 174 {
170 slug: "erfa-dortmund", 175 slug: "erfa-dortmund",
@@ -174,8 +179,9 @@ erfas = [
174 description_en: nil, 179 description_en: nil,
175 external_url: "http://www.chaostreff-dortmund.de", 180 external_url: "http://www.chaostreff-dortmund.de",
176 location: "Braunschweiger Straße 22, Dortmund", 181 location: "Braunschweiger Straße 22, Dortmund",
177 rrule: "FREQ=WEEKLY;BYDAY=TU,TH", 182 events: [
178 start_time: "19:00", 183 { rrule: "FREQ=WEEKLY;BYDAY=TU,TH", start_time: "19:00" }
184 ],
179 review: false 185 review: false
180 }, 186 },
181 { 187 {
@@ -186,8 +192,9 @@ erfas = [
186 description_en: "The geeks from Saxony and southern Brandenburg meet every Tuesday in Dresden (<a href=\"http://www.c3d2.de/muc.html\">for details please ask via jabber at c3d2@muc.hq.c3d2.de</a>). Furthermore there are occasional get-togethers for specific subjects.", 192 description_en: "The geeks from Saxony and southern Brandenburg meet every Tuesday in Dresden (<a href=\"http://www.c3d2.de/muc.html\">for details please ask via jabber at c3d2@muc.hq.c3d2.de</a>). Furthermore there are occasional get-togethers for specific subjects.",
187 external_url: "http://www.c3d2.de/", 193 external_url: "http://www.c3d2.de/",
188 location: "Dresden", 194 location: "Dresden",
189 rrule: "FREQ=WEEKLY;BYDAY=TU", 195 events: [
190 start_time: "19:00", 196 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
197 ],
191 review: false 198 review: false
192 }, 199 },
193 { 200 {
@@ -198,8 +205,9 @@ erfas = [
198 description_en: "CCC Düsseldorf (aka Chaosdorf) operates a hackspace in Sonnenstraße 58 that is open nearly 24/7. The best method for getting to know it is the \"Freitagsfoo\" event, taking place every Friday from 6pm.", 205 description_en: "CCC Düsseldorf (aka Chaosdorf) operates a hackspace in Sonnenstraße 58 that is open nearly 24/7. The best method for getting to know it is the \"Freitagsfoo\" event, taking place every Friday from 6pm.",
199 external_url: "https://chaosdorf.de/", 206 external_url: "https://chaosdorf.de/",
200 location: "Sonnenstraße 58, Düsseldorf", 207 location: "Sonnenstraße 58, Düsseldorf",
201 rrule: "FREQ=WEEKLY;BYDAY=FR", 208 events: [
202 start_time: "18:00", 209 { rrule: "FREQ=WEEKLY;BYDAY=FR", start_time: "18:00" }
210 ],
203 review: false 211 review: false
204 }, 212 },
205 { 213 {
@@ -207,24 +215,26 @@ erfas = [
207 title_de: "Bits'n'Bugs e.V. Erlangen", 215 title_de: "Bits'n'Bugs e.V. Erlangen",
208 title_en: "Bits'n'Bugs e.V. Erlangen", 216 title_en: "Bits'n'Bugs e.V. Erlangen",
209 description_de: "Der Bits'n'Bugs e.V. trifft sich jeden Freitag ab 18 Uhr im <a href=\"https://zam.haus/\">ZAM</a>, Hauptstr. 65-67, und zu weiteren unregelmäßigen Zeiten je nach Aktivitäten. Wir beteiligen uns außerdem regelmäßig an Veranstaltungen und Projekten des ZAM.", 217 description_de: "Der Bits'n'Bugs e.V. trifft sich jeden Freitag ab 18 Uhr im <a href=\"https://zam.haus/\">ZAM</a>, Hauptstr. 65-67, und zu weiteren unregelmäßigen Zeiten je nach Aktivitäten. Wir beteiligen uns außerdem regelmäßig an Veranstaltungen und Projekten des ZAM.",
210 description_en: "Bits'n'Bugs e.V. meets every Tuesday at 7:30pm in E-Werk Erlangen, Fuchsenwiese 1, group room 5.", 218 description_en: "Bits'n'Bugs e.V. meets every Friday at 6pm at ZAM, Hauptstraße 65-67, Erlangen, and at various other times depending on activities.",
211 external_url: "http://erlangen.ccc.de/", 219 external_url: "http://erlangen.ccc.de/",
212 location: "Hauptstraße 65-67, Erlangen", 220 location: "Hauptstraße 65-67, Erlangen",
213 rrule: "FREQ=WEEKLY;BYDAY=FR", 221 events: [
214 start_time: "18:00", 222 { rrule: "FREQ=WEEKLY;BYDAY=FR", start_time: "18:00" }
215 review: true 223 ],
224 review: false
216 }, 225 },
217 { 226 {
218 slug: "erfa-essen", 227 slug: "erfa-essen",
219 title_de: "Chaospott Essen", 228 title_de: "Chaospott Essen",
220 title_en: "Chaospott Essen", 229 title_en: "Chaospott Essen",
221 description_de: "Der Chaospott ist die lokale Vertretung des CCC im Herzen des Ruhrgebiets. Wir treffen uns jeden Mittwoch ab 19 Uhr in der Sibyllastraße 9, 45136 Essen (Hofgebäude).", 230 description_de: "Der Chaospott ist die lokale Vertretung des CCC im Herzen des Ruhrgebiets. Wir treffen uns jeden Mittwoch ab 19 Uhr in der Sibyllastraße 9, 45136 Essen (Hofgebäude).",
222 description_en: "Chaospott is the local subsidiary of the CCC at the heart of the Ruhr area. We meet every Wednesday at 7pm in the »foobar«.", 231 description_en: "Chaospott is the local subsidiary of the CCC at the heart of the Ruhr area. We meet every Wednesday at 7pm at Sibyllastraße 9, 45136 Essen (Hofgebäude).",
223 external_url: "http://chaospott.de/", 232 external_url: "http://chaospott.de/",
224 location: "Sibyllastraße 9, 45136 Essen", 233 location: "Sibyllastraße 9, 45136 Essen",
225 rrule: "FREQ=WEEKLY;BYDAY=WE", 234 events: [
226 start_time: "19:00", 235 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
227 review: true 236 ],
237 review: false
228 }, 238 },
229 { 239 {
230 slug: "erfa-flensburg", 240 slug: "erfa-flensburg",
@@ -234,8 +244,9 @@ erfas = [
234 description_en: nil, 244 description_en: nil,
235 external_url: "https://c3fl.de/", 245 external_url: "https://c3fl.de/",
236 location: "Apenrader Straße 49, 24939 Flensburg", 246 location: "Apenrader Straße 49, 24939 Flensburg",
237 rrule: "FREQ=WEEKLY;BYDAY=TU", 247 events: [
238 start_time: "18:00", 248 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "18:00" }
249 ],
239 review: false 250 review: false
240 }, 251 },
241 { 252 {
@@ -243,11 +254,12 @@ erfas = [
243 title_de: "CCC Frankfurt am Main", 254 title_de: "CCC Frankfurt am Main",
244 title_en: "CCC Frankfurt am Main", 255 title_en: "CCC Frankfurt am Main",
245 description_de: "Wir treffen uns jeden Dienstag und Donnerstag (auch an den meisten Feiertagen) ab 19 Uhr in unserem Hackerspace, dem HQ. Dazu sind alle Interessierten jederzeit herzlich eingeladen.", 256 description_de: "Wir treffen uns jeden Dienstag und Donnerstag (auch an den meisten Feiertagen) ab 19 Uhr in unserem Hackerspace, dem HQ. Dazu sind alle Interessierten jederzeit herzlich eingeladen.",
246 description_en: "We meet every Tuesday (even on most holidays) at 7pm in our hackspace the HQ. All interested people are welcome.", 257 description_en: "We meet every Tuesday and Thursday (even on most holidays) at 7pm in our hackspace the HQ. All interested people are welcome.",
247 external_url: "http://ccc-ffm.de/hackerspace/", 258 external_url: "http://ccc-ffm.de/hackerspace/",
248 location: "Frankfurt am Main", 259 location: "Frankfurt am Main",
249 rrule: "FREQ=WEEKLY;BYDAY=TU,TH", 260 events: [
250 start_time: "19:00", 261 { rrule: "FREQ=WEEKLY;BYDAY=TU,TH", start_time: "19:00" }
262 ],
251 review: false 263 review: false
252 }, 264 },
253 { 265 {
@@ -255,12 +267,15 @@ erfas = [
255 title_de: "CCC Freiburg", 267 title_de: "CCC Freiburg",
256 title_en: "CCC Freiburg", 268 title_en: "CCC Freiburg",
257 description_de: "Der Chaos Computer Club Freiburg trifft sich montags und dienstags ab 19 Uhr sowie nach Lust und Laune in seinen Räumen in der Adlerstraße 12a, 79098 Freiburg. Plenum ist jede zweite Woche dienstags ab 20 Uhr.", 269 description_de: "Der Chaos Computer Club Freiburg trifft sich montags und dienstags ab 19 Uhr sowie nach Lust und Laune in seinen Räumen in der Adlerstraße 12a, 79098 Freiburg. Plenum ist jede zweite Woche dienstags ab 20 Uhr.",
258 description_en: "Erfa Freiburg meets on Tuesdays at 7pm in their own room at ArTik, the former underpass at Siegesdenkmal (Kaiser-Joseph-Strasse 141, 79089 Freiburg).", 270 description_en: "CCC Freiburg meets on Mondays and Tuesdays from 7pm at Adlerstraße 12a, 79098 Freiburg. Plenum is every other Tuesday from 8pm.",
259 external_url: "http://cccfr.de", 271 external_url: "http://cccfr.de",
260 location: "Adlerstraße 12a, 79098 Freiburg", 272 location: "Adlerstraße 12a, 79098 Freiburg",
261 rrule: "FREQ=WEEKLY;BYDAY=TU", 273 events: [
262 start_time: "19:00", 274 { rrule: "FREQ=WEEKLY;BYDAY=MO,TU", start_time: "19:00" },
263 review: true 275 { rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU", start_time: "20:00",
276 tag_list: "plenum" }
277 ],
278 review: false
264 }, 279 },
265 { 280 {
266 slug: "erfa-fulda", 281 slug: "erfa-fulda",
@@ -270,8 +285,9 @@ erfas = [
270 description_en: nil, 285 description_en: nil,
271 external_url: "https://maglab.space/", 286 external_url: "https://maglab.space/",
272 location: "Lindenstraße 14, Fulda", 287 location: "Lindenstraße 14, Fulda",
273 rrule: "FREQ=WEEKLY;BYDAY=FR", 288 events: [
274 start_time: "19:00", 289 { rrule: "FREQ=WEEKLY;BYDAY=FR", start_time: "19:00" }
290 ],
275 review: false 291 review: false
276 }, 292 },
277 { 293 {
@@ -279,23 +295,26 @@ erfas = [
279 title_de: "CCC Göttingen", 295 title_de: "CCC Göttingen",
280 title_en: "CCC Göttingen", 296 title_en: "CCC Göttingen",
281 description_de: "Der Erfa-Kreis Göttingen wurde im November 2007 von Hackern gegründet, die sich dem Chaos Computer Club nahefühlen. Open Chaos findet jeden zweiten Dienstag ab 20 Uhr im Neotopia (Von-Bar-Straße 2-4, Keller des MLP-Hauses) statt. Interessierte sind herzlich willkommen.", 297 description_de: "Der Erfa-Kreis Göttingen wurde im November 2007 von Hackern gegründet, die sich dem Chaos Computer Club nahefühlen. Open Chaos findet jeden zweiten Dienstag ab 20 Uhr im Neotopia (Von-Bar-Straße 2-4, Keller des MLP-Hauses) statt. Interessierte sind herzlich willkommen.",
282 description_en: "Erfa Göttingen was founded Nov 2007 by hackers close to the Chaos Computer Club. Open Chaos is every Tuesday from 8pm at NOKLAB (Neustadt 7, Innenstadt). All interested people are welcome.", 298 description_en: "Erfa Göttingen was founded Nov 2007 by hackers close to the Chaos Computer Club. Open Chaos is every other Tuesday from 8pm at Neotopia (Von-Bar-Straße 2-4). All interested people are welcome.",
283 external_url: "http://www.chaostreff-goettingen.de/", 299 external_url: "http://www.chaostreff-goettingen.de/",
284 location: "Von-Bar-Straße 2-4, Göttingen", 300 location: "Von-Bar-Straße 2-4, Göttingen",
285 rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU", 301 events: [
286 start_time: "20:00", 302 { rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU", start_time: "20:00" }
287 review: true 303 ],
304 review: false
288 }, 305 },
289 { 306 {
290 slug: "erfa-hamburg", 307 slug: "erfa-hamburg",
291 title_de: "CCC Hamburg", 308 title_de: "CCC Hamburg",
292 title_en: "CCC Hamburg", 309 title_en: "CCC Hamburg",
293 description_de: "Der Hamburger Erfa-Kreis trifft sich in der Viktoria-Kaserne (1. Stock, Ostflügel), Zeiseweg 9, 22765 Hamburg. Der zweite Freitag und der letzte Dienstag im Monat sind perfekt zum Kennenlernen und Fragen stellen, weitere Termine finden sich auf dem <a href=\"https://www.hamburg.ccc.de/calendar/\">Kalender des Erfa Hamburg</a>, der mit öffentlichen Veranstaltungen gefüllt ist.", 310 description_de: "Der Hamburger Erfa-Kreis trifft sich in der Viktoria-Kaserne (1. Stock, Ostflügel), Zeiseweg 9, 22765 Hamburg. Der zweite Freitag und der letzte Dienstag im Monat sind perfekt zum Kennenlernen und Fragen stellen, weitere Termine finden sich auf dem <a href=\"https://www.hamburg.ccc.de/calendar/\">Kalender des Erfa Hamburg</a>, der mit öffentlichen Veranstaltungen gefüllt ist.",
294 description_en: "The Erfakreis Hamburg meets at Viktoria-Kaserne, room 119 (1st floor, east wing) Zeiseweg 9, 22765 Hamburg. Every second Friday and last Tuesday of the month are great opportunities to meet people and ask questions. We also have a <a href=\"http://www.hamburg.ccc.de/category/termine\">calendar</a> filled with events open for visitors.", 311 description_en: "The Erfakreis Hamburg meets at Viktoria-Kaserne, room 119 (1st floor, east wing) Zeiseweg 9, 22765 Hamburg. Every second Friday and last Tuesday of the month are great opportunities to meet people and ask questions.",
295 external_url: "http://hamburg.ccc.de/", 312 external_url: "http://hamburg.ccc.de/",
296 location: "Zeiseweg 9, 22765 Hamburg", 313 location: "Zeiseweg 9, 22765 Hamburg",
297 rrule: "FREQ=MONTHLY;BYDAY=2FR", 314 events: [
298 start_time: "19:00", 315 { rrule: "FREQ=MONTHLY;BYDAY=2FR", start_time: "19:00" },
316 { rrule: "FREQ=MONTHLY;BYDAY=-1TU", start_time: "19:00" }
317 ],
299 review: false 318 review: false
300 }, 319 },
301 { 320 {
@@ -303,12 +322,13 @@ erfas = [
303 title_de: "CCC Hannover", 322 title_de: "CCC Hannover",
304 title_en: "CCC Hannover", 323 title_en: "CCC Hannover",
305 description_de: "Das regionale Chaos in Hannover trifft sich jeden Mittwoch ab 19 Uhr in der Bürgerschule im Clubraum (Raum 3.1) im Stadtteilzentrum Nordstadt.", 324 description_de: "Das regionale Chaos in Hannover trifft sich jeden Mittwoch ab 19 Uhr in der Bürgerschule im Clubraum (Raum 3.1) im Stadtteilzentrum Nordstadt.",
306 description_en: "The regional Chaos in Hannover meets every second Wednesday of the month from 8pm and on the last Sunday of the month from 4pm at the Bürgerschule in their clubroom (room 3.1) in the community center Nordstadt.", 325 description_en: "The regional Chaos in Hannover meets every Wednesday from 7pm at the Bürgerschule in their clubroom (room 3.1) in the community center Nordstadt.",
307 external_url: "https://hannover.ccc.de/", 326 external_url: "https://hannover.ccc.de/",
308 location: "Bürgerschule, Raum 3.1, Hannover", 327 location: "Bürgerschule, Raum 3.1, Hannover",
309 rrule: "FREQ=WEEKLY;BYDAY=WE", 328 events: [
310 start_time: "19:00", 329 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
311 review: true 330 ],
331 review: false
312 }, 332 },
313 { 333 {
314 slug: "erfa-kaiserslautern", 334 slug: "erfa-kaiserslautern",
@@ -318,8 +338,9 @@ erfas = [
318 description_en: nil, 338 description_en: nil,
319 external_url: "http://www.chaos-inkl.de/", 339 external_url: "http://www.chaos-inkl.de/",
320 location: "Kaiserslautern", 340 location: "Kaiserslautern",
321 rrule: "FREQ=WEEKLY;BYDAY=SA", 341 events: [
322 start_time: "19:00", 342 { rrule: "FREQ=WEEKLY;BYDAY=SA", start_time: "19:00" }
343 ],
323 review: false 344 review: false
324 }, 345 },
325 { 346 {
@@ -327,12 +348,13 @@ erfas = [
327 title_de: "Entropia e.V. Karlsruhe", 348 title_de: "Entropia e.V. Karlsruhe",
328 title_en: "Entropia e.V. Karlsruhe", 349 title_en: "Entropia e.V. Karlsruhe",
329 description_de: "Der <a href=\"https://entropia.de/\">Erfa-Kreis Karlsruhe</a> ist ein eingetragener Verein mit dem Namen Entropia. Die öffentlichen <a href=\"https://entropia.de/Treffen\">Treffen</a> finden jeden Samstag ab 19:30 Uhr in <a href=\"https://entropia.de/Clubr%C3%A4ume\">den Räumen des Erfa Karlsruhe</a> (Gewerbehof, Steinstraße 23) statt und richten sich an alle aus Karlsruhe und dem Umland.", 350 description_de: "Der <a href=\"https://entropia.de/\">Erfa-Kreis Karlsruhe</a> ist ein eingetragener Verein mit dem Namen Entropia. Die öffentlichen <a href=\"https://entropia.de/Treffen\">Treffen</a> finden jeden Samstag ab 19:30 Uhr in <a href=\"https://entropia.de/Clubr%C3%A4ume\">den Räumen des Erfa Karlsruhe</a> (Gewerbehof, Steinstraße 23) statt und richten sich an alle aus Karlsruhe und dem Umland.",
330 description_en: "Erfa Karlsruhe is a registered club with the name 'Entropia'. The public meetings take place every Sunday from 7:30pm at our club (Gewerbehof, Steinstr. 23) and targets people from Karlsruhe and surrounding region.", 351 description_en: "Erfa Karlsruhe is a registered club with the name 'Entropia'. The public meetings take place every Saturday from 7:30pm at our club (Gewerbehof, Steinstr. 23) and targets people from Karlsruhe and surrounding region.",
331 external_url: "https://entropia.de/", 352 external_url: "https://entropia.de/",
332 location: "Steinstraße 23, Karlsruhe", 353 location: "Steinstraße 23, Karlsruhe",
333 rrule: "FREQ=WEEKLY;BYDAY=SA", 354 events: [
334 start_time: "19:30", 355 { rrule: "FREQ=WEEKLY;BYDAY=SA", start_time: "19:30" }
335 review: true 356 ],
357 review: false
336 }, 358 },
337 { 359 {
338 slug: "erfa-kassel", 360 slug: "erfa-kassel",
@@ -342,8 +364,9 @@ erfas = [
342 description_en: "flipdot e.V. hackerspace kassel is the local Erfa circle – a lively place with plenty of space for building and coding. There are well-equipped workshop rooms, a lecture and cinema room, and a kitchen with a professional pizza oven. At flipdot, people often cook and eat together. Since 2009, flipdot has been a breeding ground for new ideas, a living room, an anarchist adult education center, a coder's cave, and a bustling workshop. Open to visitors every Tuesday from 7pm, Schillerstraße 25, 34117 Kassel.", 364 description_en: "flipdot e.V. hackerspace kassel is the local Erfa circle – a lively place with plenty of space for building and coding. There are well-equipped workshop rooms, a lecture and cinema room, and a kitchen with a professional pizza oven. At flipdot, people often cook and eat together. Since 2009, flipdot has been a breeding ground for new ideas, a living room, an anarchist adult education center, a coder's cave, and a bustling workshop. Open to visitors every Tuesday from 7pm, Schillerstraße 25, 34117 Kassel.",
343 external_url: "http://kassel.ccc.de/", 365 external_url: "http://kassel.ccc.de/",
344 location: "Schillerstraße 25, 34117 Kassel", 366 location: "Schillerstraße 25, 34117 Kassel",
345 rrule: "FREQ=WEEKLY;BYDAY=TU", 367 events: [
346 start_time: "19:00", 368 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
369 ],
347 review: false 370 review: false
348 }, 371 },
349 { 372 {
@@ -354,8 +377,9 @@ erfas = [
354 description_en: "The c4 is a westward bridge head of the innovative technology usage with all features that are necessary for chaos. The public meeting is called OpenChaos and takes place on the last Thursday of the month at 19:30 in the Chaoslabor in Cologne-Ehrenfeld.", 377 description_en: "The c4 is a westward bridge head of the innovative technology usage with all features that are necessary for chaos. The public meeting is called OpenChaos and takes place on the last Thursday of the month at 19:30 in the Chaoslabor in Cologne-Ehrenfeld.",
355 external_url: "http://koeln.ccc.de/", 378 external_url: "http://koeln.ccc.de/",
356 location: "Köln-Ehrenfeld", 379 location: "Köln-Ehrenfeld",
357 rrule: "FREQ=WEEKLY;BYDAY=TH", 380 events: [
358 start_time: "19:30", 381 { rrule: "FREQ=WEEKLY;BYDAY=TH", start_time: "19:30" }
382 ],
359 review: false 383 review: false
360 }, 384 },
361 { 385 {
@@ -366,8 +390,9 @@ erfas = [
366 description_en: nil, 390 description_en: nil,
367 external_url: "http://dezentrale.space", 391 external_url: "http://dezentrale.space",
368 location: "Leipzig", 392 location: "Leipzig",
369 rrule: "FREQ=WEEKLY;BYDAY=FR", 393 events: [
370 start_time: "19:00", 394 { rrule: "FREQ=WEEKLY;BYDAY=FR", start_time: "19:00" }
395 ],
371 review: false 396 review: false
372 }, 397 },
373 { 398 {
@@ -378,8 +403,9 @@ erfas = [
378 description_en: "The Lübeck Hackspace group is Chaotikum e.V., which has been running the Nobreakspace hackspace since 2012. Since then, tech enthusiasts have been meeting there to work on various projects, discuss topics that interest them, and above all, have fun. Open Space is every Wednesday from 7:00 PM.", 403 description_en: "The Lübeck Hackspace group is Chaotikum e.V., which has been running the Nobreakspace hackspace since 2012. Since then, tech enthusiasts have been meeting there to work on various projects, discuss topics that interest them, and above all, have fun. Open Space is every Wednesday from 7:00 PM.",
379 external_url: "https://chaotikum.org", 404 external_url: "https://chaotikum.org",
380 location: "Lübeck", 405 location: "Lübeck",
381 rrule: "FREQ=WEEKLY;BYDAY=WE", 406 events: [
382 start_time: "19:00", 407 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
408 ],
383 review: false 409 review: false
384 }, 410 },
385 { 411 {
@@ -390,8 +416,9 @@ erfas = [
390 description_en: "The Chaos Computer Club Mainz meets every Tuesday, 7pm, at Sedanplatz 7 in Wiesbaden. The meetup is addressed to everyone from Mainz/Wiesbaden and the near surroundings.", 416 description_en: "The Chaos Computer Club Mainz meets every Tuesday, 7pm, at Sedanplatz 7 in Wiesbaden. The meetup is addressed to everyone from Mainz/Wiesbaden and the near surroundings.",
391 external_url: "http://www.cccmz.de", 417 external_url: "http://www.cccmz.de",
392 location: "Sedanplatz 7, Wiesbaden", 418 location: "Sedanplatz 7, Wiesbaden",
393 rrule: "FREQ=WEEKLY;BYDAY=TU", 419 events: [
394 start_time: "19:00", 420 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
421 ],
395 review: false 422 review: false
396 }, 423 },
397 { 424 {
@@ -399,11 +426,12 @@ erfas = [
399 title_de: "CCC Mannheim", 426 title_de: "CCC Mannheim",
400 title_en: "CCC Mannheim", 427 title_en: "CCC Mannheim",
401 description_de: "Der Erfa-Kreis Mannheim ist eine Anlaufstelle für Computer- und Technikinteressierte, die Gleichgesinnte suchen. Hier kann man sich austauschen, seine Ideen präsentieren und diskutieren. Unsere öffentlichen Treffen finden jeden Freitag ab 19 Uhr statt. Die Termine stehen in unserem Wiki.", 428 description_de: "Der Erfa-Kreis Mannheim ist eine Anlaufstelle für Computer- und Technikinteressierte, die Gleichgesinnte suchen. Hier kann man sich austauschen, seine Ideen präsentieren und diskutieren. Unsere öffentlichen Treffen finden jeden Freitag ab 19 Uhr statt. Die Termine stehen in unserem Wiki.",
402 description_en: "Erfa Mannheim is a local contact point for people that are interested in computer and technology, who search for like minded people. You can exchange, present and discuss your ideas. Our public meeting takes place every Friday.", 429 description_en: "Erfa Mannheim is a local contact point for people that are interested in computer and technology, who search for like minded people. You can exchange, present and discuss your ideas. Our public meeting takes place every Friday from 7pm.",
403 external_url: "http://www.ccc-mannheim.de", 430 external_url: "http://www.ccc-mannheim.de",
404 location: "Mannheim", 431 location: "Mannheim",
405 rrule: "FREQ=WEEKLY;BYDAY=FR", 432 events: [
406 start_time: "19:00", 433 { rrule: "FREQ=WEEKLY;BYDAY=FR", start_time: "19:00" }
434 ],
407 review: false 435 review: false
408 }, 436 },
409 { 437 {
@@ -414,8 +442,9 @@ erfas = [
414 description_en: "The public meetup of the µC³ takes places every second Tuesday of the month, starting at about 8pm at Schleißheimer Str. 39 (corner to Heßstraße 90).", 442 description_en: "The public meetup of the µC³ takes places every second Tuesday of the month, starting at about 8pm at Schleißheimer Str. 39 (corner to Heßstraße 90).",
415 external_url: "https://muc.ccc.de/", 443 external_url: "https://muc.ccc.de/",
416 location: "Schleißheimer Straße 39, München", 444 location: "Schleißheimer Straße 39, München",
417 rrule: "FREQ=MONTHLY;BYDAY=2TU", 445 events: [
418 start_time: "20:00", 446 { rrule: "FREQ=MONTHLY;BYDAY=2TU", start_time: "20:00" }
447 ],
419 review: false 448 review: false
420 }, 449 },
421 { 450 {
@@ -426,8 +455,9 @@ erfas = [
426 description_en: nil, 455 description_en: nil,
427 external_url: "https://section77.de", 456 external_url: "https://section77.de",
428 location: "Hauptstraße 1, Offenburg", 457 location: "Hauptstraße 1, Offenburg",
429 rrule: "FREQ=WEEKLY;BYDAY=TU", 458 events: [
430 start_time: "20:00", 459 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "20:00" }
460 ],
431 review: false 461 review: false
432 }, 462 },
433 { 463 {
@@ -435,12 +465,13 @@ erfas = [
435 title_de: "CCC Paderborn (subraum)", 465 title_de: "CCC Paderborn (subraum)",
436 title_en: "CCC Paderborn", 466 title_en: "CCC Paderborn",
437 description_de: "Wir treffen uns immer mittwochs in unserem Hackerspace \"subraum\" in der Westernmauer 12-16.", 467 description_de: "Wir treffen uns immer mittwochs in unserem Hackerspace \"subraum\" in der Westernmauer 12-16.",
438 description_en: "We meet up Wednesdays at the pottery in the \"Kulturwerkstatt\". Our move to our new rooms in Westernmauer 12 is imminent.", 468 description_en: "We meet every Wednesday at our hackspace \"subraum\" in Westernmauer 12-16, Paderborn.",
439 external_url: "https://www.c3pb.de/", 469 external_url: "https://www.c3pb.de/",
440 location: "Westernmauer 12-16, Paderborn", 470 location: "Westernmauer 12-16, Paderborn",
441 rrule: "FREQ=WEEKLY;BYDAY=WE", 471 events: [
442 start_time: "19:00", 472 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
443 review: true 473 ],
474 review: false
444 }, 475 },
445 { 476 {
446 slug: "erfa-salzburg", 477 slug: "erfa-salzburg",
@@ -450,8 +481,7 @@ erfas = [
450 description_en: nil, 481 description_en: nil,
451 external_url: "http://sbg.chaostreff.at/", 482 external_url: "http://sbg.chaostreff.at/",
452 location: "Salzburg", 483 location: "Salzburg",
453 rrule: nil, 484 events: [],
454 start_time: nil,
455 review: false 485 review: false
456 }, 486 },
457 { 487 {
@@ -462,8 +492,7 @@ erfas = [
462 description_en: nil, 492 description_en: nil,
463 external_url: "https://c3si.de/", 493 external_url: "https://c3si.de/",
464 location: "Siegen", 494 location: "Siegen",
465 rrule: nil, 495 events: [],
466 start_time: nil,
467 review: false 496 review: false
468 }, 497 },
469 { 498 {
@@ -474,8 +503,11 @@ erfas = [
474 description_en: "As the first Erfa in Mecklenburg-Western Pomerania, we at Port39 e.V. make sure that there's a healthy dose of chaos in Stralsund and the surrounding area. Through \"Chaos macht Schule\" events, lectures, workshops, hacking sessions, soldering workshops, Repair Cafés, and much more, we aim to inspire people of all ages to get excited about technology, IT, and everything that goes with it. Feel free to drop by or check out our <a href=\"https://port39.de\">website</a> or <a href=\"https://chaos.social/@Port39\">Mastodon</a>. We're definitely there every Thursday for the Chaos Meetup starting at 7pm and every 2nd &amp; 4th Saturday starting at 2pm for OpenSpace.", 503 description_en: "As the first Erfa in Mecklenburg-Western Pomerania, we at Port39 e.V. make sure that there's a healthy dose of chaos in Stralsund and the surrounding area. Through \"Chaos macht Schule\" events, lectures, workshops, hacking sessions, soldering workshops, Repair Cafés, and much more, we aim to inspire people of all ages to get excited about technology, IT, and everything that goes with it. Feel free to drop by or check out our <a href=\"https://port39.de\">website</a> or <a href=\"https://chaos.social/@Port39\">Mastodon</a>. We're definitely there every Thursday for the Chaos Meetup starting at 7pm and every 2nd &amp; 4th Saturday starting at 2pm for OpenSpace.",
475 external_url: "https://port39.de", 504 external_url: "https://port39.de",
476 location: "Stralsund", 505 location: "Stralsund",
477 rrule: "FREQ=WEEKLY;BYDAY=TH", 506 events: [
478 start_time: "19:00", 507 { rrule: "FREQ=WEEKLY;BYDAY=TH", start_time: "19:00" },
508 { rrule: "FREQ=MONTHLY;BYDAY=2SA,4SA", start_time: "14:00",
509 tag_list: "open-day open-space", duration_hours: 4 }
510 ],
479 review: false 511 review: false
480 }, 512 },
481 { 513 {
@@ -483,24 +515,29 @@ erfas = [
483 title_de: "CCC Stuttgart", 515 title_de: "CCC Stuttgart",
484 title_en: "CCC Stuttgart", 516 title_en: "CCC Stuttgart",
485 description_de: "Der Chaos Computer Club Stuttgart e.V. trifft sich jeden ersten Dienstag im Monat im Lichtblick in der Stadtmitte (Reinsburgstraße 13) ab 18:30 Uhr und jeden dritten Mittwoch im Monat im Shackspace (Ulmer Straße 255) ab 18:30 Uhr. Im Shackspace kann Bastelhardware gerne mitgebracht werden. Jeden zweiten Donnerstag im Monat haben wir unsere Vortragsreihe in der Stadtbibliothek Stuttgart am Mailänder Platz.", 517 description_de: "Der Chaos Computer Club Stuttgart e.V. trifft sich jeden ersten Dienstag im Monat im Lichtblick in der Stadtmitte (Reinsburgstraße 13) ab 18:30 Uhr und jeden dritten Mittwoch im Monat im Shackspace (Ulmer Straße 255) ab 18:30 Uhr. Im Shackspace kann Bastelhardware gerne mitgebracht werden. Jeden zweiten Donnerstag im Monat haben wir unsere Vortragsreihe in der Stadtbibliothek Stuttgart am Mailänder Platz.",
486 description_en: "Der Chaos Computer Club Stuttgart e.V. meets every first Tuesday of the month at the Zadu-Bar (Reuchlinstraße 4b) at 6:30pm and every third Wednesday of the month at the Shackspace (Ulmer Straße 255). Our monthly Talk is every second Thursday of the month in the public library of Stuttgart at the Mailänder Platz at 7:30pm.", 518 description_en: "CCC Stuttgart meets every first Tuesday of the month at Lichtblick (Reinsburgstraße 13) from 6:30pm and every third Wednesday of the month at Shackspace (Ulmer Straße 255) from 6:30pm. Our monthly talk series is every second Thursday of the month at the public library at Mailänder Platz.",
487 external_url: "https://www.cccs.de/", 519 external_url: "https://www.cccs.de/",
488 location: "Stuttgart", 520 location: "Stuttgart",
489 rrule: "FREQ=MONTHLY;BYDAY=1TU", 521 events: [
490 start_time: "18:30", 522 { rrule: "FREQ=MONTHLY;BYDAY=1TU", start_time: "18:30",
491 review: true 523 location: "Reinsburgstraße 13, Stuttgart" },
524 { rrule: "FREQ=MONTHLY;BYDAY=3WE", start_time: "18:30",
525 location: "Ulmer Straße 255, Stuttgart" }
526 ],
527 review: false
492 }, 528 },
493 { 529 {
494 slug: "erfa-ulm", 530 slug: "erfa-ulm",
495 title_de: "Chaostreff Ulm", 531 title_de: "Chaostreff Ulm",
496 title_en: "Chaostreff Ulm", 532 title_en: "Chaostreff Ulm",
497 description_de: "Der Chaostreff Ulm findet jeden Montag ab 19:30 Uhr im Café Einstein an der Uni Ulm statt, außer jeden zweiten Montag des Monats. Dieser ist dem Chaosseminar vorbehalten.", 533 description_de: "Der Chaostreff Ulm findet jeden Montag ab 19:30 Uhr im Café Einstein an der Uni Ulm statt, außer jeden zweiten Montag des Monats. Dieser ist dem Chaosseminar vorbehalten.",
498 description_en: "The Chaostreff Ulm takes place every Monday at 8:00pm in the Freiraum (3rd floor, Platzgasse 18, Ulm) at Hackerspace Ulm e.V. In addition, the talk series Chaos seminar on various topics is held there every second Monday of the month.", 534 description_en: "The Chaostreff Ulm takes place every Monday at 7:30pm at Café Einstein, Uni Ulm, except every second Monday which is reserved for the Chaos seminar.",
499 external_url: "http://www.ulm.ccc.de/", 535 external_url: "http://www.ulm.ccc.de/",
500 location: "Café Einstein, Uni Ulm", 536 location: "Café Einstein, Uni Ulm",
501 rrule: "FREQ=WEEKLY;BYDAY=MO", 537 events: [
502 start_time: "19:30", 538 { rrule: "FREQ=WEEKLY;BYDAY=MO", start_time: "19:30" }
503 review: true 539 ],
540 review: false
504 }, 541 },
505 { 542 {
506 slug: "erfa-unna", 543 slug: "erfa-unna",
@@ -510,8 +547,9 @@ erfas = [
510 description_en: "The CCC Unna usually meets every Thursday at around 7pm in the rooms of the UN-Hack-Bar. We chat about all kinds of topics: from net politics and politics in general to computers and technology, and sometimes even about odd questions like how to extinguish a burning fire extinguisher or the latest internet meme. ;-) Of course, we also tinker, build, and hack things in the best possible sense. Guests of all kinds are very welcome.", 547 description_en: "The CCC Unna usually meets every Thursday at around 7pm in the rooms of the UN-Hack-Bar. We chat about all kinds of topics: from net politics and politics in general to computers and technology, and sometimes even about odd questions like how to extinguish a burning fire extinguisher or the latest internet meme. ;-) Of course, we also tinker, build, and hack things in the best possible sense. Guests of all kinds are very welcome.",
511 external_url: "https://www.un-hack-bar.de/ccc-unna/", 548 external_url: "https://www.un-hack-bar.de/ccc-unna/",
512 location: "Unna", 549 location: "Unna",
513 rrule: "FREQ=WEEKLY;BYDAY=TH", 550 events: [
514 start_time: "19:00", 551 { rrule: "FREQ=WEEKLY;BYDAY=TH", start_time: "19:00" }
552 ],
515 review: false 553 review: false
516 }, 554 },
517 { 555 {
@@ -519,11 +557,12 @@ erfas = [
519 title_de: "CCC Wien", 557 title_de: "CCC Wien",
520 title_en: "CCC Vienna", 558 title_en: "CCC Vienna",
521 description_de: "Der Chaos Computer Club Wien trifft sich einmal im Monat, meistens im <a href=\"https://metalab.at/\">Metalab</a>. Details zu den Treffen werden <a href=\"https://c3w.at/events/\">auf der Webseite des C3W</a> bekanntgegeben. Für Fragen und allgemeine Announcements stehen die <a href=\"https://c3w.at/mitmachen/\">öffentliche C3W-Mailingliste</a> oder <a href=\"https://chaos.social/@C3Wien\">@C3Wien@chaos.social</a> bereit. Komm vorbei!", 559 description_de: "Der Chaos Computer Club Wien trifft sich einmal im Monat, meistens im <a href=\"https://metalab.at/\">Metalab</a>. Details zu den Treffen werden <a href=\"https://c3w.at/events/\">auf der Webseite des C3W</a> bekanntgegeben. Für Fragen und allgemeine Announcements stehen die <a href=\"https://c3w.at/mitmachen/\">öffentliche C3W-Mailingliste</a> oder <a href=\"https://chaos.social/@C3Wien\">@C3Wien@chaos.social</a> bereit. Komm vorbei!",
522 description_en: "The Chaos Computer Club Vienna meets once a month. Usually at <a href=\"https://metalab.at/\">Metalab</a>. Find details on <a href=\"https://c3w.at/events/\">our website</a>. Use the <a href=\"https://c3w.at/mitmachen/\">public mailinglist</a> or <a href=\"https://chaos.social/@C3Wien\">@C3Wien@chaos.social</a> to ask questions or to receive announcements. Come by!", 560 description_en: "The Chaos Computer Club Vienna meets once a month, usually at <a href=\"https://metalab.at/\">Metalab</a>. Find details on <a href=\"https://c3w.at/events/\">our website</a>. Use the <a href=\"https://c3w.at/mitmachen/\">public mailinglist</a> or <a href=\"https://chaos.social/@C3Wien\">@C3Wien@chaos.social</a> to ask questions or to receive announcements. Come by!",
523 external_url: "https://c3w.at/", 561 external_url: "https://c3w.at/",
524 location: "Metalab, Wien", 562 location: "Metalab, Wien",
525 rrule: "FREQ=MONTHLY", 563 events: [
526 start_time: "19:00", 564 { rrule: "FREQ=MONTHLY", start_time: "19:00" }
565 ],
527 review: false 566 review: false
528 }, 567 },
529 { 568 {
@@ -534,8 +573,9 @@ erfas = [
534 description_en: nil, 573 description_en: nil,
535 external_url: "http://nerd2nerd.org/", 574 external_url: "http://nerd2nerd.org/",
536 location: "FabLab Würzburg", 575 location: "FabLab Würzburg",
537 rrule: "FREQ=WEEKLY;BYDAY=TH", 576 events: [
538 start_time: "18:00", 577 { rrule: "FREQ=WEEKLY;BYDAY=TH", start_time: "18:00" }
578 ],
539 review: false 579 review: false
540 }, 580 },
541 { 581 {
@@ -543,12 +583,13 @@ erfas = [
543 title_de: "CCCZH Zürich", 583 title_de: "CCCZH Zürich",
544 title_en: "CCCZH Zurich", 584 title_en: "CCCZH Zurich",
545 description_de: "Der CCCZH ist Teil des Hackerspace <a href=\"https://www.bitwaescherei.ch/\">bitwäscherei</a>. Von Züri Hardbrücke aus einen halben Katzensprung in die Zentralwäscherei Zürich an der Neuen Hard 12.", 585 description_de: "Der CCCZH ist Teil des Hackerspace <a href=\"https://www.bitwaescherei.ch/\">bitwäscherei</a>. Von Züri Hardbrücke aus einen halben Katzensprung in die Zentralwäscherei Zürich an der Neuen Hard 12.",
546 description_en: "The Chaostreff Zurich meets every Wednesday from 7pm at the Hackerspace at Luegislandstrasse 485 in Zürich/Schwamendingen.", 586 description_en: "The CCCZH is part of the hackspace bitwäscherei, a short walk from Zürich Hardbrücke at Neue Hard 12.",
547 external_url: "https://www.ccczh.ch/", 587 external_url: "https://www.ccczh.ch/",
548 location: "Neue Hard 12, Zürich", 588 location: "Neue Hard 12, Zürich",
549 rrule: "FREQ=WEEKLY;BYDAY=WE", 589 events: [
550 start_time: "19:00", 590 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
551 review: true 591 ],
592 review: false
552 } 593 }
553] 594]
554 595
@@ -567,8 +608,9 @@ chaostreffs = [
567 description_en: nil, 608 description_en: nil,
568 external_url: "https://aalen.space/", 609 external_url: "https://aalen.space/",
569 location: "Blezingerstraße 15, 73430 Aalen", 610 location: "Blezingerstraße 15, 73430 Aalen",
570 rrule: "FREQ=MONTHLY;BYDAY=3TU", 611 events: [
571 start_time: "18:30", 612 { rrule: "FREQ=MONTHLY;BYDAY=3TU", start_time: "18:30" }
613 ],
572 review: false 614 review: false
573 }, 615 },
574 { 616 {
@@ -579,8 +621,9 @@ chaostreffs = [
579 description_en: nil, 621 description_en: nil,
580 external_url: "https://chaostreff-alzey.de/", 622 external_url: "https://chaostreff-alzey.de/",
581 location: "Juku Alzey", 623 location: "Juku Alzey",
582 rrule: "FREQ=MONTHLY;BYDAY=1SU", 624 events: [
583 start_time: "15:00", 625 { rrule: "FREQ=MONTHLY;BYDAY=1SU", start_time: "15:00" }
626 ],
584 review: false 627 review: false
585 }, 628 },
586 { 629 {
@@ -591,8 +634,9 @@ chaostreffs = [
591 description_en: nil, 634 description_en: nil,
592 external_url: "https://amborg-sulzbyte.de/", 635 external_url: "https://amborg-sulzbyte.de/",
593 location: "Amberg", 636 location: "Amberg",
594 rrule: "FREQ=MONTHLY", 637 events: [
595 start_time: nil, 638 { rrule: "FREQ=MONTHLY" }
639 ],
596 review: false 640 review: false
597 }, 641 },
598 { 642 {
@@ -603,8 +647,9 @@ chaostreffs = [
603 description_en: "Chaos Amsterdam meets on Thursdays every other week at 19:00 in a social space close to the city center. We can be found on <a href=\"https://webirc.hackint.org/#chaosamsterdam\">IRC in #chaosamsterdam</a> on the hackint network.", 647 description_en: "Chaos Amsterdam meets on Thursdays every other week at 19:00 in a social space close to the city center. We can be found on <a href=\"https://webirc.hackint.org/#chaosamsterdam\">IRC in #chaosamsterdam</a> on the hackint network.",
604 external_url: "https://chaos.amsterdam/", 648 external_url: "https://chaos.amsterdam/",
605 location: "Amsterdam", 649 location: "Amsterdam",
606 rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TH", 650 events: [
607 start_time: "19:00", 651 { rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TH", start_time: "19:00" }
652 ],
608 review: false 653 review: false
609 }, 654 },
610 { 655 {
@@ -615,9 +660,11 @@ chaostreffs = [
615 description_en: nil, 660 description_en: nil,
616 external_url: "https://haxko.space", 661 external_url: "https://haxko.space",
617 location: "Bahnhof Andernach", 662 location: "Bahnhof Andernach",
618 rrule: "FREQ=WEEKLY;BYDAY=FR", 663 events: [
619 start_time: "18:00", 664 { rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=FR", start_time: "18:00" },
620 review: false 665 { rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=SA", start_time: "18:00" }
666 ],
667 review: true
621 }, 668 },
622 { 669 {
623 slug: "chaostreff-augsburg", 670 slug: "chaostreff-augsburg",
@@ -627,8 +674,9 @@ chaostreffs = [
627 description_en: nil, 674 description_en: nil,
628 external_url: "https://openlab-augsburg.de", 675 external_url: "https://openlab-augsburg.de",
629 location: "Augsburg", 676 location: "Augsburg",
630 rrule: "FREQ=WEEKLY;BYDAY=TH", 677 events: [
631 start_time: "19:00", 678 { rrule: "FREQ=WEEKLY;BYDAY=TH", start_time: "19:00" }
679 ],
632 review: false 680 review: false
633 }, 681 },
634 { 682 {
@@ -639,8 +687,7 @@ chaostreffs = [
639 description_en: nil, 687 description_en: nil,
640 external_url: "http://www.schaffenburg.org", 688 external_url: "http://www.schaffenburg.org",
641 location: "Dorfstraße 1, Aschaffenburg", 689 location: "Dorfstraße 1, Aschaffenburg",
642 rrule: nil, 690 events: [],
643 start_time: nil,
644 review: false 691 review: false
645 }, 692 },
646 { 693 {
@@ -651,8 +698,10 @@ chaostreffs = [
651 description_en: nil, 698 description_en: nil,
652 external_url: "https://chaostreff-backnang.de/", 699 external_url: "https://chaostreff-backnang.de/",
653 location: "Willy-Brandt-Platz 2, Backnang", 700 location: "Willy-Brandt-Platz 2, Backnang",
654 rrule: "FREQ=MONTHLY;BYDAY=3SU", 701 events: [
655 start_time: "18:00", 702 { rrule: "FREQ=MONTHLY;BYDAY=3SU", start_time: "18:00" },
703 { rrule: "FREQ=MONTHLY;BYDAY=1TU", start_time: "19:00" }
704 ],
656 review: false 705 review: false
657 }, 706 },
658 { 707 {
@@ -663,8 +712,9 @@ chaostreffs = [
663 description_en: nil, 712 description_en: nil,
664 external_url: "https://imaginaerraum.de/", 713 external_url: "https://imaginaerraum.de/",
665 location: "Schulstraße 7, Bayreuth", 714 location: "Schulstraße 7, Bayreuth",
666 rrule: "FREQ=WEEKLY;BYDAY=MO", 715 events: [
667 start_time: "19:00", 716 { rrule: "FREQ=WEEKLY;BYDAY=MO", start_time: "19:00" }
717 ],
668 review: false 718 review: false
669 }, 719 },
670 { 720 {
@@ -675,8 +725,9 @@ chaostreffs = [
675 description_en: nil, 725 description_en: nil,
676 external_url: "https://www.chaostreffbern.ch/", 726 external_url: "https://www.chaostreffbern.ch/",
677 location: "Zwyssigstrasse 45, Bern", 727 location: "Zwyssigstrasse 45, Bern",
678 rrule: "FREQ=WEEKLY;BYDAY=TU", 728 events: [
679 start_time: "19:00", 729 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
730 ],
680 review: false 731 review: false
681 }, 732 },
682 { 733 {
@@ -687,8 +738,7 @@ chaostreffs = [
687 description_en: nil, 738 description_en: nil,
688 external_url: "http://hackerspace-bielefeld.de/", 739 external_url: "http://hackerspace-bielefeld.de/",
689 location: "Bielefeld", 740 location: "Bielefeld",
690 rrule: nil, 741 events: [],
691 start_time: nil,
692 review: false 742 review: false
693 }, 743 },
694 { 744 {
@@ -699,8 +749,9 @@ chaostreffs = [
699 description_en: nil, 749 description_en: nil,
700 external_url: "https://binhacken.de/", 750 external_url: "https://binhacken.de/",
701 location: "Bingen am Rhein", 751 location: "Bingen am Rhein",
702 rrule: "FREQ=WEEKLY", 752 events: [
703 start_time: "19:00", 753 { rrule: "FREQ=WEEKLY", start_time: "19:00" }
754 ],
704 review: false 755 review: false
705 }, 756 },
706 { 757 {
@@ -711,8 +762,7 @@ chaostreffs = [
711 description_en: nil, 762 description_en: nil,
712 external_url: "https://das-labor.org", 763 external_url: "https://das-labor.org",
713 location: "Bochum", 764 location: "Bochum",
714 rrule: nil, 765 events: [],
715 start_time: nil,
716 review: false 766 review: false
717 }, 767 },
718 { 768 {
@@ -723,8 +773,9 @@ chaostreffs = [
723 description_en: nil, 773 description_en: nil,
724 external_url: "https://datenburg.org/", 774 external_url: "https://datenburg.org/",
725 location: "Bonn", 775 location: "Bonn",
726 rrule: "FREQ=WEEKLY;BYDAY=TU", 776 events: [
727 start_time: "20:00", 777 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "20:00" }
778 ],
728 review: false 779 review: false
729 }, 780 },
730 { 781 {
@@ -735,8 +786,9 @@ chaostreffs = [
735 description_en: "Members of the Hungarian Autonomous Center for Knowledge (H.A.C.K.) usually meet on Tuesdays at 19:00 local time, but it's best to confirm beforehand on #hspbp at IRCnet. We're located in the middle of the city, and we have Mate, sticker exchange, Internet, and friendly hackers.", 786 description_en: "Members of the Hungarian Autonomous Center for Knowledge (H.A.C.K.) usually meet on Tuesdays at 19:00 local time, but it's best to confirm beforehand on #hspbp at IRCnet. We're located in the middle of the city, and we have Mate, sticker exchange, Internet, and friendly hackers.",
736 external_url: "https://hsbp.org/contact-us", 787 external_url: "https://hsbp.org/contact-us",
737 location: "Budapest", 788 location: "Budapest",
738 rrule: "FREQ=WEEKLY;BYDAY=TU", 789 events: [
739 start_time: "19:00", 790 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
791 ],
740 review: false 792 review: false
741 }, 793 },
742 { 794 {
@@ -747,8 +799,9 @@ chaostreffs = [
747 description_en: nil, 799 description_en: nil,
748 external_url: "https://hackzogtum-coburg.de", 800 external_url: "https://hackzogtum-coburg.de",
749 location: "Heiligkreuzstr. 3, 96450 Coburg", 801 location: "Heiligkreuzstr. 3, 96450 Coburg",
750 rrule: "FREQ=WEEKLY;BYDAY=TU", 802 events: [
751 start_time: "20:00", 803 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "20:00" }
804 ],
752 review: false 805 review: false
753 }, 806 },
754 { 807 {
@@ -759,8 +812,9 @@ chaostreffs = [
759 description_en: nil, 812 description_en: nil,
760 external_url: "https://chaos-cb.de", 813 external_url: "https://chaos-cb.de",
761 location: "Walther-Pauer-Straße 7, Cottbus", 814 location: "Walther-Pauer-Straße 7, Cottbus",
762 rrule: "FREQ=MONTHLY;BYDAY=-1WE", 815 events: [
763 start_time: "18:00", 816 { rrule: "FREQ=MONTHLY;BYDAY=-1WE", start_time: "18:00" }
817 ],
764 review: false 818 review: false
765 }, 819 },
766 { 820 {
@@ -771,8 +825,7 @@ chaostreffs = [
771 description_en: nil, 825 description_en: nil,
772 external_url: "https://wak-lab.org", 826 external_url: "https://wak-lab.org",
773 location: "Eisenach", 827 location: "Eisenach",
774 rrule: nil, 828 events: [],
775 start_time: nil,
776 review: false 829 review: false
777 }, 830 },
778 { 831 {
@@ -783,8 +836,9 @@ chaostreffs = [
783 description_en: nil, 836 description_en: nil,
784 external_url: "https://www.bytespeicher.org/", 837 external_url: "https://www.bytespeicher.org/",
785 location: "Liebknechtstraße 8, Erfurt", 838 location: "Liebknechtstraße 8, Erfurt",
786 rrule: "FREQ=WEEKLY;BYDAY=WE", 839 events: [
787 start_time: "19:00", 840 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
841 ],
788 review: false 842 review: false
789 }, 843 },
790 { 844 {
@@ -795,8 +849,9 @@ chaostreffs = [
795 description_en: nil, 849 description_en: nil,
796 external_url: "https://giessen.ccc.de", 850 external_url: "https://giessen.ccc.de",
797 location: "Ludwigstraße 10, Gießen", 851 location: "Ludwigstraße 10, Gießen",
798 rrule: "FREQ=MONTHLY;BYDAY=1WE", 852 events: [
799 start_time: "19:00", 853 { rrule: "FREQ=MONTHLY;BYDAY=1WE", start_time: "19:00" }
854 ],
800 review: false 855 review: false
801 }, 856 },
802 { 857 {
@@ -807,8 +862,7 @@ chaostreffs = [
807 description_en: nil, 862 description_en: nil,
808 external_url: "https://realraum.at/", 863 external_url: "https://realraum.at/",
809 location: "Graz", 864 location: "Graz",
810 rrule: nil, 865 events: [],
811 start_time: nil,
812 review: false 866 review: false
813 }, 867 },
814 { 868 {
@@ -819,8 +873,9 @@ chaostreffs = [
819 description_en: nil, 873 description_en: nil,
820 external_url: "https://schafferei.org/chaos-treff/", 874 external_url: "https://schafferei.org/chaos-treff/",
821 location: "Göppingen", 875 location: "Göppingen",
822 rrule: "FREQ=MONTHLY", 876 events: [
823 start_time: nil, 877 { rrule: "FREQ=MONTHLY" }
878 ],
824 review: false 879 review: false
825 }, 880 },
826 { 881 {
@@ -831,8 +886,9 @@ chaostreffs = [
831 description_en: nil, 886 description_en: nil,
832 external_url: "https://chaostreff-gun.de/", 887 external_url: "https://chaostreff-gun.de/",
833 location: "FabLab Gunzenhausen", 888 location: "FabLab Gunzenhausen",
834 rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU", 889 events: [
835 start_time: "19:00", 890 { rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU", start_time: "19:00" }
891 ],
836 review: false 892 review: false
837 }, 893 },
838 { 894 {
@@ -843,8 +899,9 @@ chaostreffs = [
843 description_en: nil, 899 description_en: nil,
844 external_url: "https://eigenbaukombinat.de", 900 external_url: "https://eigenbaukombinat.de",
845 location: "Landsberger Straße 3, Halle (Saale)", 901 location: "Landsberger Straße 3, Halle (Saale)",
846 rrule: "FREQ=WEEKLY;BYDAY=TU", 902 events: [
847 start_time: "19:00", 903 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
904 ],
848 review: false 905 review: false
849 }, 906 },
850 { 907 {
@@ -855,8 +912,9 @@ chaostreffs = [
855 description_en: nil, 912 description_en: nil,
856 external_url: "https://chaos.social/@c3hamm", 913 external_url: "https://chaos.social/@c3hamm",
857 location: "Hamm", 914 location: "Hamm",
858 rrule: "FREQ=MONTHLY;BYDAY=1WE", 915 events: [
859 start_time: nil, 916 { rrule: "FREQ=MONTHLY;BYDAY=1WE" }
917 ],
860 review: false 918 review: false
861 }, 919 },
862 { 920 {
@@ -867,8 +925,9 @@ chaostreffs = [
867 description_en: nil, 925 description_en: nil,
868 external_url: "https://www.noname-ev.de", 926 external_url: "https://www.noname-ev.de",
869 location: "Heidelberg", 927 location: "Heidelberg",
870 rrule: "FREQ=WEEKLY;BYDAY=TH", 928 events: [
871 start_time: "19:00", 929 { rrule: "FREQ=WEEKLY;BYDAY=TH", start_time: "19:00" }
930 ],
872 review: false 931 review: false
873 }, 932 },
874 { 933 {
@@ -879,8 +938,7 @@ chaostreffs = [
879 description_en: nil, 938 description_en: nil,
880 external_url: "https://blog.freieslabor.org/", 939 external_url: "https://blog.freieslabor.org/",
881 location: "Hildesheim", 940 location: "Hildesheim",
882 rrule: nil, 941 events: [],
883 start_time: nil,
884 review: false 942 review: false
885 }, 943 },
886 { 944 {
@@ -891,8 +949,9 @@ chaostreffs = [
891 description_en: nil, 949 description_en: nil,
892 external_url: "https://chaos-hip.de/", 950 external_url: "https://chaos-hip.de/",
893 location: "Maria-Dorothea-Straße 8, Hilpoltstein", 951 location: "Maria-Dorothea-Straße 8, Hilpoltstein",
894 rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU", 952 events: [
895 start_time: "18:00", 953 { rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU", start_time: "18:00" }
954 ],
896 review: false 955 review: false
897 }, 956 },
898 { 957 {
@@ -903,8 +962,7 @@ chaostreffs = [
903 description_en: nil, 962 description_en: nil,
904 external_url: "https://ge.hackt.es/", 963 external_url: "https://ge.hackt.es/",
905 location: "Hoher Fläming, Brandenburg", 964 location: "Hoher Fläming, Brandenburg",
906 rrule: nil, 965 events: [],
907 start_time: nil,
908 review: false 966 review: false
909 }, 967 },
910 { 968 {
@@ -915,8 +973,9 @@ chaostreffs = [
915 description_en: nil, 973 description_en: nil,
916 external_url: "http://ilmspace.de/", 974 external_url: "http://ilmspace.de/",
917 location: "Ilmenau", 975 location: "Ilmenau",
918 rrule: "FREQ=WEEKLY;BYDAY=WE", 976 events: [
919 start_time: "19:00", 977 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
978 ],
920 review: false 979 review: false
921 }, 980 },
922 { 981 {
@@ -927,8 +986,7 @@ chaostreffs = [
927 description_en: nil, 986 description_en: nil,
928 external_url: "http://www.bytewerk.org/", 987 external_url: "http://www.bytewerk.org/",
929 location: "Ingolstadt", 988 location: "Ingolstadt",
930 rrule: nil, 989 events: [],
931 start_time: nil,
932 review: false 990 review: false
933 }, 991 },
934 { 992 {
@@ -939,8 +997,9 @@ chaostreffs = [
939 description_en: nil, 997 description_en: nil,
940 external_url: "http://it-syndikat.org", 998 external_url: "http://it-syndikat.org",
941 location: "Tschamlerstraße 3, Innsbruck", 999 location: "Tschamlerstraße 3, Innsbruck",
942 rrule: "FREQ=WEEKLY;BYDAY=TU", 1000 events: [
943 start_time: "19:00", 1001 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
1002 ],
944 review: false 1003 review: false
945 }, 1004 },
946 { 1005 {
@@ -951,8 +1010,9 @@ chaostreffs = [
951 description_en: nil, 1010 description_en: nil,
952 external_url: "http://cciz.de/", 1011 external_url: "http://cciz.de/",
953 location: "Itzehoe", 1012 location: "Itzehoe",
954 rrule: "FREQ=WEEKLY;BYDAY=TH", 1013 events: [
955 start_time: "19:00", 1014 { rrule: "FREQ=WEEKLY;BYDAY=TH", start_time: "19:00" }
1015 ],
956 review: false 1016 review: false
957 }, 1017 },
958 { 1018 {
@@ -963,8 +1023,9 @@ chaostreffs = [
963 description_en: nil, 1023 description_en: nil,
964 external_url: "https://kraut.space/", 1024 external_url: "https://kraut.space/",
965 location: "Krautgasse 26, Jena", 1025 location: "Krautgasse 26, Jena",
966 rrule: "FREQ=WEEKLY;BYDAY=TU", 1026 events: [
967 start_time: "20:00", 1027 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "20:00" }
1028 ],
968 review: false 1029 review: false
969 }, 1030 },
970 { 1031 {
@@ -975,8 +1036,9 @@ chaostreffs = [
975 description_en: nil, 1036 description_en: nil,
976 external_url: "http://toppoint.de/", 1037 external_url: "http://toppoint.de/",
977 location: "Kiel", 1038 location: "Kiel",
978 rrule: "FREQ=WEEKLY;BYDAY=MO", 1039 events: [
979 start_time: "19:00", 1040 { rrule: "FREQ=WEEKLY;BYDAY=MO", start_time: "19:00" }
1041 ],
980 review: false 1042 review: false
981 }, 1043 },
982 { 1044 {
@@ -987,8 +1049,9 @@ chaostreffs = [
987 description_en: nil, 1049 description_en: nil,
988 external_url: "https://open-lab.at/", 1050 external_url: "https://open-lab.at/",
989 location: "Klaus, Vorarlberg", 1051 location: "Klaus, Vorarlberg",
990 rrule: "FREQ=WEEKLY;BYDAY=TU", 1052 events: [
991 start_time: "16:00", 1053 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "16:00", duration_hours: 4 }
1054 ],
992 review: false 1055 review: false
993 }, 1056 },
994 { 1057 {
@@ -999,8 +1062,9 @@ chaostreffs = [
999 description_en: nil, 1062 description_en: nil,
1000 external_url: "https://www.hacknology.de/", 1063 external_url: "https://www.hacknology.de/",
1001 location: "Konstanz", 1064 location: "Konstanz",
1002 rrule: "FREQ=MONTHLY;BYDAY=2TU", 1065 events: [
1003 start_time: "19:00", 1066 { rrule: "FREQ=MONTHLY;BYDAY=2TU", start_time: "19:00" }
1067 ],
1004 review: false 1068 review: false
1005 }, 1069 },
1006 { 1070 {
@@ -1011,8 +1075,9 @@ chaostreffs = [
1011 description_en: nil, 1075 description_en: nil,
1012 external_url: "https://ctrl-z.info/", 1076 external_url: "https://ctrl-z.info/",
1013 location: "Klaus-Von-Klitzing-Str. 2, Landau", 1077 location: "Klaus-Von-Klitzing-Str. 2, Landau",
1014 rrule: "FREQ=WEEKLY;BYDAY=TU", 1078 events: [
1015 start_time: "19:00", 1079 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00", duration_hours: 4 }
1080 ],
1016 review: false 1081 review: false
1017 }, 1082 },
1018 { 1083 {
@@ -1023,8 +1088,9 @@ chaostreffs = [
1023 description_en: nil, 1088 description_en: nil,
1024 external_url: "https://technik.cafe/", 1089 external_url: "https://technik.cafe/",
1025 location: "Lörrach", 1090 location: "Lörrach",
1026 rrule: "FREQ=MONTHLY", 1091 events: [
1027 start_time: nil, 1092 { rrule: "FREQ=MONTHLY" }
1093 ],
1028 review: false 1094 review: false
1029 }, 1095 },
1030 { 1096 {
@@ -1035,8 +1101,9 @@ chaostreffs = [
1035 description_en: nil, 1101 description_en: nil,
1036 external_url: "https://complb.de", 1102 external_url: "https://complb.de",
1037 location: "DemoZ, Ludwigsburg", 1103 location: "DemoZ, Ludwigsburg",
1038 rrule: "FREQ=MONTHLY;BYDAY=-1TH", 1104 events: [
1039 start_time: "18:00", 1105 { rrule: "FREQ=MONTHLY;BYDAY=-1TH", start_time: "18:00" }
1106 ],
1040 review: false 1107 review: false
1041 }, 1108 },
1042 { 1109 {
@@ -1047,8 +1114,9 @@ chaostreffs = [
1047 description_en: nil, 1114 description_en: nil,
1048 external_url: "http://www.c3l.lu/", 1115 external_url: "http://www.c3l.lu/",
1049 location: "Luxemburg", 1116 location: "Luxemburg",
1050 rrule: "FREQ=WEEKLY;BYDAY=MO", 1117 events: [
1051 start_time: "20:00", 1118 { rrule: "FREQ=WEEKLY;BYDAY=MO", start_time: "20:00" }
1119 ],
1052 review: false 1120 review: false
1053 }, 1121 },
1054 { 1122 {
@@ -1059,8 +1127,9 @@ chaostreffs = [
1059 description_en: nil, 1127 description_en: nil,
1060 external_url: "https://hsmr.cc/", 1128 external_url: "https://hsmr.cc/",
1061 location: "Marburg", 1129 location: "Marburg",
1062 rrule: "FREQ=WEEKLY;BYDAY=MO", 1130 events: [
1063 start_time: "18:00", 1131 { rrule: "FREQ=WEEKLY;BYDAY=MO", start_time: "18:00" }
1132 ],
1064 review: false 1133 review: false
1065 }, 1134 },
1066 { 1135 {
@@ -1071,8 +1140,7 @@ chaostreffs = [
1071 description_en: nil, 1140 description_en: nil,
1072 external_url: "https://bodensee.space/chaostreff-markdorf", 1141 external_url: "https://bodensee.space/chaostreff-markdorf",
1073 location: "Markdorf", 1142 location: "Markdorf",
1074 rrule: nil, 1143 events: [],
1075 start_time: nil,
1076 review: false 1144 review: false
1077 }, 1145 },
1078 { 1146 {
@@ -1083,8 +1151,9 @@ chaostreffs = [
1083 description_en: nil, 1151 description_en: nil,
1084 external_url: "http://www.warpzone.ms/", 1152 external_url: "http://www.warpzone.ms/",
1085 location: "Münster", 1153 location: "Münster",
1086 rrule: "FREQ=WEEKLY;BYDAY=WE", 1154 events: [
1087 start_time: "19:00", 1155 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
1156 ],
1088 review: false 1157 review: false
1089 }, 1158 },
1090 { 1159 {
@@ -1095,8 +1164,9 @@ chaostreffs = [
1095 description_en: nil, 1164 description_en: nil,
1096 external_url: "https://fnordeingang.de/chaostreff", 1165 external_url: "https://fnordeingang.de/chaostreff",
1097 location: "Neuss", 1166 location: "Neuss",
1098 rrule: "FREQ=WEEKLY;BYDAY=WE", 1167 events: [
1099 start_time: "19:00", 1168 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
1169 ],
1100 review: false 1170 review: false
1101 }, 1171 },
1102 { 1172 {
@@ -1107,8 +1177,7 @@ chaostreffs = [
1107 description_en: nil, 1177 description_en: nil,
1108 external_url: "https://chaostreff-nuernberg.de", 1178 external_url: "https://chaostreff-nuernberg.de",
1109 location: "Nürnberg", 1179 location: "Nürnberg",
1110 rrule: nil, 1180 events: [],
1111 start_time: nil,
1112 review: false 1181 review: false
1113 }, 1182 },
1114 { 1183 {
@@ -1119,8 +1188,7 @@ chaostreffs = [
1119 description_en: nil, 1188 description_en: nil,
1120 external_url: "https://chaostreff-osnabrueck.de/", 1189 external_url: "https://chaostreff-osnabrueck.de/",
1121 location: "Osnabrück", 1190 location: "Osnabrück",
1122 rrule: nil, 1191 events: [],
1123 start_time: nil,
1124 review: false 1192 review: false
1125 }, 1193 },
1126 { 1194 {
@@ -1131,8 +1199,9 @@ chaostreffs = [
1131 description_en: nil, 1199 description_en: nil,
1132 external_url: "https://www.ccc-p.org/", 1200 external_url: "https://www.ccc-p.org/",
1133 location: "Friedrich-Engels-Straße 22, Haus 5, Potsdam", 1201 location: "Friedrich-Engels-Straße 22, Haus 5, Potsdam",
1134 rrule: "FREQ=WEEKLY;BYDAY=WE", 1202 events: [
1135 start_time: "19:00", 1203 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
1204 ],
1136 review: false 1205 review: false
1137 }, 1206 },
1138 { 1207 {
@@ -1143,8 +1212,9 @@ chaostreffs = [
1143 description_en: nil, 1212 description_en: nil,
1144 external_url: "https://www.coredump.ch/", 1213 external_url: "https://www.coredump.ch/",
1145 location: "Vinora-Areal, Jona", 1214 location: "Vinora-Areal, Jona",
1146 rrule: "FREQ=WEEKLY;BYDAY=MO", 1215 events: [
1147 start_time: "20:00", 1216 { rrule: "FREQ=WEEKLY;BYDAY=MO", start_time: "20:00" }
1217 ],
1148 review: false 1218 review: false
1149 }, 1219 },
1150 { 1220 {
@@ -1155,8 +1225,9 @@ chaostreffs = [
1155 description_en: nil, 1225 description_en: nil,
1156 external_url: "http://c3re.de", 1226 external_url: "http://c3re.de",
1157 location: "Westcharweg 101, 45659 Recklinghausen", 1227 location: "Westcharweg 101, 45659 Recklinghausen",
1158 rrule: "FREQ=WEEKLY;BYDAY=WE", 1228 events: [
1159 start_time: "19:00", 1229 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
1230 ],
1160 review: false 1231 review: false
1161 }, 1232 },
1162 { 1233 {
@@ -1167,8 +1238,9 @@ chaostreffs = [
1167 description_en: nil, 1238 description_en: nil,
1168 external_url: "http://binary.kitchen", 1239 external_url: "http://binary.kitchen",
1169 location: "Regensburg", 1240 location: "Regensburg",
1170 rrule: "FREQ=WEEKLY;BYDAY=MO", 1241 events: [
1171 start_time: "19:00", 1242 { rrule: "FREQ=WEEKLY;BYDAY=MO", start_time: "19:00" }
1243 ],
1172 review: false 1244 review: false
1173 }, 1245 },
1174 { 1246 {
@@ -1179,8 +1251,9 @@ chaostreffs = [
1179 description_en: nil, 1251 description_en: nil,
1180 external_url: "https://chaostreff-rodgau.codeberg.page", 1252 external_url: "https://chaostreff-rodgau.codeberg.page",
1181 location: "Rodgau", 1253 location: "Rodgau",
1182 rrule: "FREQ=MONTHLY", 1254 events: [
1183 start_time: nil, 1255 { rrule: "FREQ=MONTHLY" }
1256 ],
1184 review: false 1257 review: false
1185 }, 1258 },
1186 { 1259 {
@@ -1191,8 +1264,9 @@ chaostreffs = [
1191 description_en: "The Chaostreff of Rotterdam meets every Wednesdays around 20 Uhr at Pixelbar in the Keilewerf at the Vierhavensstraat 56 in Rotterdam close to RET / Metro station Marconiplein.", 1264 description_en: "The Chaostreff of Rotterdam meets every Wednesdays around 20 Uhr at Pixelbar in the Keilewerf at the Vierhavensstraat 56 in Rotterdam close to RET / Metro station Marconiplein.",
1192 external_url: "https://www.pixelbar.nl/contact/", 1265 external_url: "https://www.pixelbar.nl/contact/",
1193 location: "Vierhavensstraat 56, Rotterdam", 1266 location: "Vierhavensstraat 56, Rotterdam",
1194 rrule: "FREQ=WEEKLY;BYDAY=WE", 1267 events: [
1195 start_time: "20:00", 1268 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "20:00" }
1269 ],
1196 review: false 1270 review: false
1197 }, 1271 },
1198 { 1272 {
@@ -1203,8 +1277,9 @@ chaostreffs = [
1203 description_en: nil, 1277 description_en: nil,
1204 external_url: "https://www.hacksaar.de", 1278 external_url: "https://www.hacksaar.de",
1205 location: "Rathausstraße 18, 66125 Saarbrücken", 1279 location: "Rathausstraße 18, 66125 Saarbrücken",
1206 rrule: "FREQ=WEEKLY;BYDAY=WE", 1280 events: [
1207 start_time: "19:00", 1281 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "19:00" }
1282 ],
1208 review: false 1283 review: false
1209 }, 1284 },
1210 { 1285 {
@@ -1215,20 +1290,9 @@ chaostreffs = [
1215 description_en: nil, 1290 description_en: nil,
1216 external_url: "https://hacklabor.de/", 1291 external_url: "https://hacklabor.de/",
1217 location: "Hagenower Straße 73, Schwerin", 1292 location: "Hagenower Straße 73, Schwerin",
1218 rrule: "FREQ=WEEKLY;BYDAY=WE,FR", 1293 events: [
1219 start_time: "19:00", 1294 { rrule: "FREQ=WEEKLY;BYDAY=WE,FR", start_time: "19:00" }
1220 review: false 1295 ],
1221 },
1222 {
1223 slug: "chaostreff-stralsund",
1224 title_de: "Port39 e.V. Stralsund (Chaostreff)",
1225 title_en: "Port39 e.V. Stralsund",
1226 description_de: "Das Chaos ist jetzt auch in Stralsund eingezogen! Als ein weiterer Space in Mecklenburg-Vorpommern möchten wir auch hier das gute Chaos verbreiten, mit Chaos macht Schule in Stralsund und Umgebung Jung und Alt für Technik und IT begeistern und mit diversen Projekten im Space mal mehr, mal weniger sinnvolle Dinge anstellen. Kommt gerne rum oder schaut auf unserer <a href=\"https://port39.de/\">Website</a> oder den Socials vorbei. Definitiv da sind wir jeden Donnerstag zum Chaostreff ab 19 Uhr und jeden 2. &amp; 4. Samstag ab 14 Uhr zum OpenSpace.",
1227 description_en: "As the first Erfa in Mecklenburg-Western Pomerania, we at Port39 e.V. make sure that there's a healthy dose of chaos in Stralsund. Feel free to drop by or check out our <a href=\"https://port39.de\">website</a>. We're definitely there every Thursday for the Chaos Meetup starting at 7pm and every 2nd &amp; 4th Saturday starting at 2pm for OpenSpace.",
1228 external_url: "https://port39.de/",
1229 location: "Stralsund",
1230 rrule: "FREQ=WEEKLY;BYDAY=TH",
1231 start_time: "19:00",
1232 review: false 1296 review: false
1233 }, 1297 },
1234 { 1298 {
@@ -1239,8 +1303,9 @@ chaostreffs = [
1239 description_en: nil, 1303 description_en: nil,
1240 external_url: "http://www.maschinendeck.org", 1304 external_url: "http://www.maschinendeck.org",
1241 location: "Trier", 1305 location: "Trier",
1242 rrule: "FREQ=WEEKLY;BYDAY=WE", 1306 events: [
1243 start_time: "20:00", 1307 { rrule: "FREQ=WEEKLY;BYDAY=WE", start_time: "20:00" }
1308 ],
1244 review: false 1309 review: false
1245 }, 1310 },
1246 { 1311 {
@@ -1251,8 +1316,12 @@ chaostreffs = [
1251 description_en: nil, 1316 description_en: nil,
1252 external_url: "https://cttue.de", 1317 external_url: "https://cttue.de",
1253 location: "Tübingen", 1318 location: "Tübingen",
1254 rrule: "FREQ=MONTHLY;BYDAY=-1SU", 1319 events: [
1255 start_time: "18:00", 1320 { rrule: "FREQ=MONTHLY;BYDAY=-1SU", start_time: "18:00",
1321 location: "KIMS, Tübingen" },
1322 { rrule: "FREQ=MONTHLY;BYDAY=2MO", start_time: "19:00",
1323 location: "FabLab Neckar-Alb, Tübingen" }
1324 ],
1256 review: false 1325 review: false
1257 }, 1326 },
1258 { 1327 {
@@ -1263,8 +1332,9 @@ chaostreffs = [
1263 description_en: nil, 1332 description_en: nil,
1264 external_url: "http://vspace.one", 1333 external_url: "http://vspace.one",
1265 location: "Wilhelm-Binder-Straße 19, Villingen-Schwenningen", 1334 location: "Wilhelm-Binder-Straße 19, Villingen-Schwenningen",
1266 rrule: "FREQ=WEEKLY;BYDAY=TU", 1335 events: [
1267 start_time: "19:00", 1336 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "19:00" }
1337 ],
1268 review: false 1338 review: false
1269 }, 1339 },
1270 { 1340 {
@@ -1275,8 +1345,7 @@ chaostreffs = [
1275 description_en: nil, 1345 description_en: nil,
1276 external_url: "https://c3wkb.de", 1346 external_url: "https://c3wkb.de",
1277 location: "Waldkraiburg", 1347 location: "Waldkraiburg",
1278 rrule: nil, 1348 events: [],
1279 start_time: nil,
1280 review: false 1349 review: false
1281 }, 1350 },
1282 { 1351 {
@@ -1287,8 +1356,9 @@ chaostreffs = [
1287 description_en: nil, 1356 description_en: nil,
1288 external_url: "https://westwoodlabs.de/", 1357 external_url: "https://westwoodlabs.de/",
1289 location: "Ransbach-Baumbach", 1358 location: "Ransbach-Baumbach",
1290 rrule: "FREQ=WEEKLY;BYDAY=TU", 1359 events: [
1291 start_time: "18:00", 1360 { rrule: "FREQ=WEEKLY;BYDAY=TU", start_time: "18:00" }
1361 ],
1292 review: false 1362 review: false
1293 }, 1363 },
1294 { 1364 {
@@ -1299,8 +1369,9 @@ chaostreffs = [
1299 description_en: nil, 1369 description_en: nil,
1300 external_url: "https://www.chaostal.de/category/meeting", 1370 external_url: "https://www.chaostal.de/category/meeting",
1301 location: "Mirker Straße 48, Wuppertal-Elberfeld", 1371 location: "Mirker Straße 48, Wuppertal-Elberfeld",
1302 rrule: "FREQ=MONTHLY;BYDAY=1TH", 1372 events: [
1303 start_time: "20:00", 1373 { rrule: "FREQ=MONTHLY;BYDAY=1TH", start_time: "20:00" }
1374 ],
1304 review: false 1375 review: false
1305 }, 1376 },
1306 { 1377 {
@@ -1311,8 +1382,9 @@ chaostreffs = [
1311 description_en: nil, 1382 description_en: nil,
1312 external_url: "https://www.z-labor.space", 1383 external_url: "https://www.z-labor.space",
1313 location: "Kulturweberei, Zwickau", 1384 location: "Kulturweberei, Zwickau",
1314 rrule: "FREQ=WEEKLY;BYDAY=TH", 1385 events: [
1315 start_time: "19:00", 1386 { rrule: "FREQ=WEEKLY;BYDAY=TH", start_time: "19:00" }
1387 ],
1316 review: false 1388 review: false
1317 } 1389 }
1318] 1390]
@@ -1328,3 +1400,4 @@ puts "Nodes flagged for review:"
1328end 1400end
1329 1401
1330Node.rebuild!(false) 1402Node.rebuild!(false)
1403