schedule

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
schedule [2026/07/26 21:08] – external edit 127.0.0.1schedule [2026/07/26 22:28] (current) – external edit 127.0.0.1
Line 1: Line 1:
 # Schedule # Schedule
  
-To exchange the scheduled conference data between the different systems +To exchange the scheduled conference data between the different systems and tools we are using the schedule.xml format known from [[https://github.com/nevs/pentabarf|pentabarf]]/[[http://frab.github.io/frab/|frab]]/[[https://pretalx.com/p/about/|pretalx]].
-and tools we are using the schedule.xml format known from +
-[pentabarf](https://github.com/nevs/pentabarf)/[frab](http://frab.github.io/frab/)/[pretalx](https://pretalx.com/p/about/).+
  
-**If you want create a small schedule with only a few events, and don't +**If you want create a small schedule with only a few events, and don't have a structured document yet – please talk to us so we can create an account at https://import.c3voc.de for your space/event. 
-have a structured document yet – please talk to us so we can create an +**
-account at <https://import.c3voc.defor your space/event. **+
  
-If you prefer the contents of this page in video form with some +If you prefer the contents of this page in video form with some anecdotes, see https://media.ccc.de/v/eh20-14-ids-warum-integer-eine-schlechte-idee-sind
-anecdotes, see +
-<https://media.ccc.de/v/eh20-14-ids-warum-integer-eine-schlechte-idee-sind>+
  
-\<WRAP group\> \<WRAP column\> ![](drawio>schedule-overview.png) 
-\</WRAP\> \<WRAP quarter column\> Historie Congress/Camp: 
  
-- [2025](events:39c3:schedule) +<WRAP group> 
-[2024](events:38c3:schedule) +<WRAP column> 
-[2023](events:37c3:schedule) +{{drawio>schedule-overview.png}} 
-[\#CCCamp23](events:camp23:schedule) +</WRAP> 
-[2022](events:jev22:schedule) +<WRAP quarter column> 
-[2021](events:jahresendveranstaltung2021:schedule) +Historie Congress/Camp:  
-[2020](events:rc3:schedule) +* [[events:39c3:schedule|2025]] 
-[2019](https://events.ccc.de/congress/2019/wiki/index.php/Static:Schedule#Merged_schedules_.28XML_.2F_JSON.29) +* [[events:38c3:schedule|2024]] 
-[2018](https://events.ccc.de/congress/2018/wiki/index.php/Static:Schedule#Merged_schedules_.28XML_.2F_JSON.29) +* [[events:37c3:schedule|2023]] 
-[2017](https://events.ccc.de/congress/2017/wiki/index.php/Static:Schedule#Merged_schedules_.28XML_.2F_JSON.29) +* [[events:camp23:schedule|#CCCamp23]] 
-[2015](https://wiki.cccv.de/general/services/system) \</WRAP\+* [[events:jev22:schedule|2022]] 
-  \</WRAP\>+* [[events:jahresendveranstaltung2021:schedule|2021]] 
 +* [[events:rc3:schedule|2020]] 
 +* [[https://events.ccc.de/congress/2019/wiki/index.php/Static:Schedule#Merged_schedules_.28XML_.2F_JSON.29|2019]] 
 +* [[https://events.ccc.de/congress/2018/wiki/index.php/Static:Schedule#Merged_schedules_.28XML_.2F_JSON.29|2018]] 
 +* [[https://events.ccc.de/congress/2017/wiki/index.php/Static:Schedule#Merged_schedules_.28XML_.2F_JSON.29|2017]] 
 +* [[https://wiki.cccv.de/general/services/system|2015]] 
 +</WRAP> 
 +</WRAP>
  
-\<!-- \<WRAP center round important 60%\> If you want to provide + 
-schedule for JEV22 please provide a **schedule.json** file, not + 
-schedule.xml! \</WRAP\> --\>+<!-- 
 +<WRAP center round important 60%> 
 +If you want to provide schedule for JEV22 please provide a **schedule.json** file, not schedule.xml! 
 +</WRAP> 
 +-->
  
 ## Usage ## Usage
Line 39: Line 43:
 The following systems able to produce schedule.xml/.json/etc The following systems able to produce schedule.xml/.json/etc
  
-^ software ^ output formats ^ used by ^ example instances ^ +^ software                                  ^ output formats       ^ used by  ^ example instances        
- +| [[https://cccv.de/hub/hub/|hub]]          | xml, json, schedule2 CCC      https://hub.test.c3voc.de  
-<table> +| [[https://pretalx.com/p/about/|pretalx]]  | xml, json      CCC, …   | https://pretalx.c3voc.de \\ https://cfp.cccv.de  
-<tbody> +| [[http://frab.github.io/frab/|frab]]      | xml, json      CCC till 2023 https://frab.cccv.de     | 
-<tr class="odd"> +| [[https://osem.io|osem]] | xml  openSUSE, GNOME, ownCloud     | 
-<td><a href="https://cccv.de/hub/hub/">hub</a></td> +| [[https://github.com/nevs/pentabarf|pentabarf]] | xml            CCC till switch to frab, \\ FOSDEM till 2023  https://penta.fosdem.org/   |
-<td>xml, json, schedule2</td> +
-<td>CCC</td> +
-<td><+
-href="https://hub.test.c3voc.de">https://hub.test.c3voc.de</a></td> +
-</tr> +
-<tr class="even"> +
-<td><a href="https://pretalx.com/p/about/">pretalx</a></td> +
-<td>xml, json</td> +
-<td>CCC, …</td> +
-<td><+
-href="https://pretalx.c3voc.de">https://pretalx.c3voc.de</a><br /> +
-<a href="https://cfp.cccv.de">https://cfp.cccv.de</a></td> +
-</tr> +
-<tr class="odd"> +
-<td><a href="http://frab.github.io/frab/">frab</a></td> +
-<td>xml, json</td> +
-<td>CCC till 2023</td> +
-<td><a href="https://frab.cccv.de">https://frab.cccv.de</a></td> +
-</tr> +
-<tr class="even"> +
-<td><a href="https://osem.io">osem</a></td> +
-<td>xml</td> +
-<td>openSUSE, GNOME, ownCloud</td> +
-<td></td> +
-</tr> +
-<tr class="odd"> +
-<td><a href="https://github.com/nevs/pentabarf">pentabarf</a></td> +
-<td>xml</td> +
-<td>CCC till switch to frab,<br /> +
-FOSDEM till 2023</td> +
-<td><+
-href="https://penta.fosdem.org/">https://penta.fosdem.org/</a></td> +
-</tr> +
-</tbody> +
-</table>+
  
 ### Clients ### Clients
  
-\- giggity <https://github.com/Wilm0r/giggity(Android, Java) - +- giggity https://github.com/Wilm0r/giggity (Android, Java) 
-EventFahrplan <https://github.com/EventFahrplan/EventFahrplan(Android, +EventFahrplan https://github.com/EventFahrplan/EventFahrplan (Android, Kotlin/Java) 
-Kotlin/Java) - iOS Fahrplan App <https://congress.conference.systems+- iOS Fahrplan App https://congress.conference.systems (iOS) 
-(iOS) - [c3tracker:start](c3tracker:start) +[[c3tracker:start]https://github.com/crs-tools/tracker (Video processing system) 
-<https://github.com/crs-tools/tracker(Video processing system) - +[[Engelsystem]https://github.com/engelsystem/engelsystem (Volunteer planning system) ([[https://github.com/engelsystem/engelsystem/tree/main/src/Helpers/Schedule|PHP]]) 
-[Engelsystem](Engelsystem) <https://github.com/engelsystem/engelsystem+[[hardware:infobeamer](digital signage) https://info-beamer.com/raspberry-pi-digital-signage-scheduled-player-4765.html 
-(Volunteer planning system) +pyfahrplan (CLI, Python) https://github.com/saschalalala/pyfahrplan 
-([PHP](https://github.com/engelsystem/engelsystem/tree/main/src/Helpers/Schedule)- + 
-[hardware:infobeamer](hardware:infobeamer) (digital signage) +
-<https://info-beamer.com/raspberry-pi-digital-signage-scheduled-player-4765.html> - +
-pyfahrplan (CLI, Python) <https://github.com/saschalalala/pyfahrplan>+
  
 ## Schedule2 ## Schedule2
  
-We are currently working on the next generation of our schedule schema. +We are currently working on the next generation of our schedule schema. See https://github.com/orgs/voc/projects/4 and [[events:39c3:schedule]for more details. 
-See <https://github.com/orgs/voc/projects/4and +
-[events:39c3:schedule](events:39c3:schedule) for more details.+
  
 Goals: Goals:
  
-\- drop nesting: publish pre-release versions even when a talk is not +- drop nesting: publish pre-release versions even when a talk is not assigned to a room 
-assigned to a room - allow multiple events in the same room/area - allow +- allow multiple events in the same room/area  
-multiple instances of the same event, e.g. for recurring workshops - fix +- allow multiple instances of the same event, e.g. for recurring workshops 
-issues with time & durations for multi-day events - …+- fix issues with time & durations for multi-day events 
 +- … 
 + 
  
 ## Schedule XML ## Schedule XML
Line 112: Line 80:
 Minimal example: Minimal example:
  
-Title is required, subtitle is one sentence when the title is too long. +Title is required, subtitle is one sentence when the title is too long. Abstract is a summary of the talk (no html allowed, only one paragraph). Description can be longer, contain HTML or Markdown but should not contain the same content as the abstract; as both are displayed below each other when there is enough display space.
-Abstract is a summary of the talk (no html allowed, only one paragraph). +
-Description can be longer, contain HTML or Markdown but should not +
-contain the same content as the abstract; as both are displayed below +
-each other when there is enough display space.+
  
 The XSD enforces the following rules The XSD enforces the following rules
 +* conference acronym `denog16` has to match `[a-z0-9_-]{4,}`
 +  * `-` should only be used for subconferences (e.g. `cccamp15-ber`) or years when main part ends with number (e.g. `foss4g-2016` or `rc3-2021`)
 +  * `_` can be used instead, e.g. `divoc`, `divoc_r2r`, `divoc_bb3`
  
-- conference acronym \`denog16\` has to match \`\[a-z0-9\_-\]{4,}\` +* event slug `denog16-4001-openingis used as media.ccc.de URL and has to match `[a-z0-9]{4,}-[0-9]{1,6}-[a-z0-9\-_]{4,}and should match `[a-z0-9]{3,}(-2[0-9]{3}-[a-z]+)?-[0-9]{1,6}-[a-z0-9\-_]{4,}[a-z0-9] 
-\`-\` should only be used for subconferences (e.g. \`cccamp15-ber\`) +  * first component has to be the main conference acronymsee above – so `cccamp15`, not `cccamp15-ber
-  or years when main part ends with number (e.g. \`foss4g-2016\` or +  * for conferences: second component has to be the local integer ID in the conference planning system 
-  \`rc3-2021\`) +  * the last is a condensed version of the title 
-- \`\_\can be used insteade.g. \`divoc\`, \`divoc_r2r\`, +  * trailing dashes should be removed 
-  \`divoc_bb3\`+  
  
-<!-- --> 
  
-- event slug \`denog16-4001-opening\` is used as media.ccc.de URL and +<code> 
-  has to match \`\[a-z0-9\]{4,}-\[0-9\]{1,6}-\[a-z0-9\\\_\]{4,}\` and +<schedule xsi:noNamespaceSchemaLocation="https://c3voc.de/schedule/schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
-  should match +  <generator name="human" /> 
-  \`\[a-z0-9\]{3,}(-2\[0-9\]{3}-\[a-z\]+)?-\[0-9\]{1,6}-\[a-z0-9\\\_\]{4,}\[a-z0-9\]\` +  <version>1.0</version> 
-first component has to be the main conference acronym, see above – so +  <conference> 
-  \`cccamp15\`, not \`cccamp15-ber\` +    <title>DENOG8</title> 
-for conferencessecond component has to be the local integer ID in +    <acronym>denog16</acronym> 
-  the conference planning system +    <days>2</days> 
-the last is a condensed version of the title +    <start>2016-11-23</start> 
-trailing dashes should be removed+    <end>2016-11-24</end> 
 +    <timeslot_duration>00:10</timeslot_duration> 
 +    <time_zone_name>Europe/Amsterdam</time_zone_name> 
 +  </conference> 
 +  <day index="1" date="2016-11-23" start="2016-11-23T09:00:00+01:00" end="2016-11-24T03:00:00+01:00"> 
 +    <room name="darmstadtium" guid="0c00f935-e861-4e0c-ba43-7eb53ee189e4"> 
 +      <event id="4001" guid="385033fe-dda1-555a-aca6-28dd05677c66"> 
 +        <date>2016-11-23T13:00:00+01:00</date> 
 +        <start>13:00</start> 
 +        <duration>0:15</duration> 
 +        <room>darmstadtium</room> 
 +        <slug>denog16-4001-opening</slug> 
 +        <title>Opening</title> 
 +        <subtitle/> 
 +        <track/> 
 +        <type/> 
 +        <language>en</language> 
 +        <abstract/> 
 +        <description/> 
 +        <persons> 
 +          <person guid="211fd9e8-eebd-4657-8a70-07614b0bdfea">DENOG ORGA</person> 
 +        </persons> 
 +        <links/> 
 +      </event> 
 +      … 
 +    </room> 
 +  </day>  
 +  <day index="2" date="2016-11-24" start="2016-11-24T09:00:00+01:00" end="2016-11-25T03:00:00+01:00"/>…</day>    
 +</schedule> 
 +</code>
  
-\<code\> \<schedule +* XSD: https://raw.githubusercontent.com/voc/schedule/master/validator/xsd/schedule.xml.xsd 
-xsi:noNamespaceSchemaLocation="<https://c3voc.de/schedule/schema.xsd>" +* Validatorhttps://c3voc.de/schedulexml/ , [[https://github.com/voc/schedule/tree/master/validator|sourcecode]] 
-xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>"\> \<generator +* [[https://github.com/frab/schedule.xml|Coordination between different projects producing/consuming schedule.xml]] (under construction)
-name="human" /\> \<version\>1.0\</version\> \<conference\> +
-\<title\>DENOG8\</title\> \<acronym\>denog16\</acronym\> +
-\<days\>2\</days\> \<start\>2016-11-23\</start\> +
-\<end\>2016-11-24\</end\> +
-\<timeslot_duration\>00:10\</timeslot_duration\> +
-\<time_zone_name\>Europe/Amsterdam\</time_zone_name\> \</conference\> +
-\<day index="1" date="2016-11-23" start="2016-11-23T09:00:00+01:00" +
-end="2016-11-24T03:00:00+01:00"\> \<room name="darmstadtium" +
-guid="0c00f935-e861-4e0c-ba43-7eb53ee189e4"\> \<event id="4001" +
-guid="385033fe-dda1-555a-aca6-28dd05677c66"\> +
-\<date\>2016-11-23T13:00:00+01:00\</date\> \<start\>13:00\</start\> +
-\<duration\>0:15\</duration\> \<room\>darmstadtium\</room\> +
-\<slug\>denog16-4001-opening\</slug\> \<title\>Opening\</title\> +
-\<subtitle/\> \<track/\> \<type/\> \<language\>en\</language\> +
-\<abstract/\> \<description/\> \<persons\> \<person +
-guid="211fd9e8-eebd-4657-8a70-07614b0bdfea"\>DENOG ORGA\</person\> +
-\</persons\> \<links/\> \</event\> … \</room\> \</day\> \<day index="2" +
-date="2016-11-24" start="2016-11-24T09:00:00+01:00" +
-end="2016-11-25T03:00:00+01:00"/\>…\</day\> \</schedule\> \</code\>+
  
-- XSD: 
-  <https://raw.githubusercontent.com/voc/schedule/master/validator/xsd/schedule.xml.xsd> 
-- Validator: <https://c3voc.de/schedulexml/> , 
-  [sourcecode](https://github.com/voc/schedule/tree/master/validator) 
-- [Coordination between different projects producing/consuming schedule.xml](https://github.com/frab/schedule.xml) 
-  (under construction) 
  
 ## Interexchange JSON ## Interexchange JSON
  
-One problem with the nested XML structure is that you can only exchange +One problem with the nested XML structure is that you can only exchange events once they are assigned to a room and a time slot. To circumvent this issue we propose following JSON structure based on the language/terms used in the schedule.xml format, combined with the recent [[https://docs.pretalx.org/en/latest/api/resources/submissions.html#resource-description|pretalx extensions]]:
-events once they are assigned to a room and a time slot. To circumvent +
-this issue we propose following JSON structure based on the +
-language/terms used in the schedule.xml format, combined with the recent +
-[pretalx extensions](https://docs.pretalx.org/en/latest/api/resources/submissions.html#resource-description):+
  
-\<code\> { "\$schema": "<https://c3voc.de/schedule/submission>", "guid": +<code> 
-"83ae8aec-0724-4eef-9b5a-6ead8698e629", "title": "A example talk", +{ 
-"type": "talk", "abstract": "A good talk.", "description": "I will +  "$schema": "https://c3voc.de/schedule/submission", 
-expand upon the properties of the talk, primarily its high quality.", +  "guid": "83ae8aec-0724-4eef-9b5a-6ead8698e629", 
-"duration": 30, "do_not_record": false, "image": +  "title": "A example talk", 
-"<https://domain.tld/img/submission.png>", "speakers": \[ { "name": +  "type": "talk", 
-"Jane", "guid": "09ab9fae-5c45-55a1-ac3b-4cff3d94547d", "email": +  "abstract": "A good talk.", 
-"jane.doe@example.net", "biography": "A speaker", "avatar": +  "description": "I will expand upon the properties of the talk, primarily its high quality.", 
-"<https://domain.tld/img/avatar.png>" } \], "slot": { "start": +  "duration": 30, 
-"2017-12-27T10:00:00Z", "end": "2017-12-27T10:30:00Z", "room": "R101" }, +  "do_not_record": false, 
-"answers": \[ { "id": 1, "question": { "id": 1, "question": { "en": "How +  "image": "https://domain.tld/img/submission.png", 
-much do you like green, on a scale from 1-10?" }, "required": false, +  "speakers": [ 
-"target": "submission", "options": \[\] }, "answer": "11", +    { 
-"answer_file": null, "submission": "ABCDE", "person": null, "options": +      "name": "Jane", 
-\[\] } \], "notes": "Please make sure you give me red M&Ms", +      "guid": "09ab9fae-5c45-55a1-ac3b-4cff3d94547d", 
-"internal_notes": "Absolutely no M&Ms, but cool proposal otherwise!", +      "email": "jane.doe@example.net", 
-"tags": \["science"\] } \</code\>+      "biography": "A speaker", 
 +      "avatar": "https://domain.tld/img/avatar.png" 
 +    } 
 +  ], 
 +  "slot": { 
 +    "start": "2017-12-27T10:00:00Z", 
 +    "end": "2017-12-27T10:30:00Z", 
 +    "room": "R101" 
 +  }, 
 +  "answers": [ 
 +    { 
 +      "id": 1, 
 +      "question": { 
 +        "id": 1, 
 +        "question": { 
 +          "en": "How much do you like green, on a scale from 1-10?" 
 +        }, 
 +        "required": false, 
 +        "target": "submission", 
 +        "options": [] 
 +      }, 
 +      "answer": "11", 
 +      "answer_file": null, 
 +      "submission": "ABCDE", 
 +      "person": null, 
 +      "options": [] 
 +    } 
 +  ], 
 +  "notes": "Please make sure you give me red M&Ms", 
 +  "internal_notes": "Absolutely no M&Ms, but cool proposal otherwise!", 
 +  "tags": ["science"] 
 +} 
 +</code> 
 + 
 +* JSON-Schema: https://github.com/voc/schedule/tree/master/validator/submission-json 
  
-- JSON-Schema: 
-  <https://github.com/voc/schedule/tree/master/validator/submission-json> 
  
 ## Conversion tools ## Conversion tools
 +* Some examples and converters to generate a schedule.xml file: [[https://github.com/voc/schedule]], includes converter from schedule.json to schedule.xml <del>and vice verca</del>
 +  * [[https://github.com/voc/schedule/blob/master/csv2schedule_deu.py|csv2schedule]] e.g. from a [[https://github.com/voc/schedule/blob/master/example_deu/schedule-example.ods|LibreOffice]] or [[https://docs.google.com/spreadsheets/d/1ncDFREf7sO2lB_7meCLlLroQOCpEGqMjzCoO6tFLJZQ/edit?usp=sharing|Google Spreadsheet]] document [ [[https://docs.google.com/spreadsheets/d/1zisANFAdEQtJ5YT0_6t4n_cGvIY2jsYQyGkI8TT_I-c/edit?usp=sharing|simple]], [[https://docs.google.com/spreadsheets/d/1Y3_x6uaBWx6-s1WP79R92QBWiGLkm-vbZkgYvFgDMK0/edit?usp=sharing|advanced]] ]
 +    * csv -> schedule.xml
 +    * csv -> schedule.json
 +  * [[https://github.com/voc/schedule/blob/master/schedule_json2xml.py|schedule_json2xml]]
 +    * schedule.json -> schedule.xml
 +  * [[https://github.com/voc/schedule/blob/master/wiki2schedule_33C3.py|wiki2schedule]]
 +    * Semantic Mediawiki + schedule.json -> schedule.xml, schedule.json, halfnarp
 +  * [[https://github.com/voc/schedule/blob/master/wikitable2schedule.py|wikitable2schedule]]
 +    * HTML (wiki) table (e.g. from Dokuwiki at https://di.c3voc.de) -> schedule.xml, schedule.json
 +  * c3data GraphQL export
 +  * rC3hub JSON API export 
 +* https://github.com/voc/voctosched
 +  * csv -> schedule.xml + schedule.json
 +  * json -> schedule.xml + schedule.json
 +  * plugin support for new inputs
 +* https://github.com/Zverik/schedule-convert
 +  * csv -> schedule.xml
 +  * schedule.xml -> xcal
 +  * schedule.xml -> ical
 +  * schedule.xml schedule2.xml -> schedule-merged.xml
 +  * Sessionize JSON -> schedule.xml
 +* https://github.com/verschwoerhaus/ical2schedule
 +  * ical -> schedule.xml
 +* https://github.com/toto/conference-import/
 +  * schedule.json -> ocdata (aka re-data)
 +* https://github.com/linux-audio-berlin/LAC16/blob/master/schedule/sexport.py
 +* statistics related to [[software:auphonic#tools|Auphonic]]
  
-- Some examples and converters to generate a schedule.xml file: 
-  <https://github.com/voc/schedule>, includes converter from 
-  schedule.json to schedule.xml \<del\>and vice verca\</del\> 
-- [csv2schedule](https://github.com/voc/schedule/blob/master/csv2schedule_deu.py) 
-  e.g. from a 
-  [LibreOffice](https://github.com/voc/schedule/blob/master/example_deu/schedule-example.ods) 
-  or 
-  [Google Spreadsheet](https://docs.google.com/spreadsheets/d/1ncDFREf7sO2lB_7meCLlLroQOCpEGqMjzCoO6tFLJZQ/edit?usp=sharing) 
-  document \[ 
-  [simple](https://docs.google.com/spreadsheets/d/1zisANFAdEQtJ5YT0_6t4n_cGvIY2jsYQyGkI8TT_I-c/edit?usp=sharing), 
-  [advanced](https://docs.google.com/spreadsheets/d/1Y3_x6uaBWx6-s1WP79R92QBWiGLkm-vbZkgYvFgDMK0/edit?usp=sharing) 
-  \] 
-- csv -\> schedule.xml 
-- csv -\> schedule.json 
-- [schedule_json2xml](https://github.com/voc/schedule/blob/master/schedule_json2xml.py) 
-- schedule.json -\> schedule.xml 
-- [wiki2schedule](https://github.com/voc/schedule/blob/master/wiki2schedule_33C3.py) 
-- Semantic Mediawiki + schedule.json -\> schedule.xml, schedule.json, 
-  halfnarp 
-- [wikitable2schedule](https://github.com/voc/schedule/blob/master/wikitable2schedule.py) 
-- HTML (wiki) table (e.g. from Dokuwiki at <https://di.c3voc.de>) -\> 
-  schedule.xml, schedule.json 
-- c3data GraphQL export 
-- rC3hub JSON API export 
-- <https://github.com/voc/voctosched> 
-- csv -\> schedule.xml + schedule.json 
-- json -\> schedule.xml + schedule.json 
-- plugin support for new inputs 
-- <https://github.com/Zverik/schedule-convert> 
-- csv -\> schedule.xml 
-- schedule.xml -\> xcal 
-- schedule.xml -\> ical 
-- schedule.xml schedule2.xml -\> schedule-merged.xml 
-- Sessionize JSON -\> schedule.xml 
-- <https://github.com/verschwoerhaus/ical2schedule> 
-- ical -\> schedule.xml 
-- <https://github.com/toto/conference-import/> 
-- schedule.json -\> ocdata (aka re-data) 
-- <https://github.com/linux-audio-berlin/LAC16/blob/master/schedule/sexport.py> 
-- statistics related to [Auphonic](software:auphonic#tools) 
  
 ### Useful Invocations: ### Useful Invocations:
 +* Get talk IDs for a certain day (intro rendering):
  
-- Get talk IDs for a certain day (intro rendering): +``` 
- +  xmlstarlet sel -T -t -m '/schedule/day[@index=1]/room/event/@id' -v . -n schedule.xml 
-\`\`\` xmlstarlet sel -T -t -m +```
-'/schedule/day\[@index=1\]/room/event/@id' -v . -n schedule.xml \`\`\` +
 ## Full XML example ## Full XML example
  
-from <https://fahrplan.events.ccc.de/-\> schedule.xml e.g. +from https://fahrplan.events.ccc.de/ -> schedule.xml 
-<https://fahrplan.events.ccc.de/congress/2018/Fahrplan/schedule.xml+e.g. https://fahrplan.events.ccc.de/congress/2018/Fahrplan/schedule.xml
- +
-\`\`\` \<schedule\> \<generator name="frab" version="0.7" +
-url="<https://github.com/frab/frab>" /\> \<version\>1.3\</version\> +
-\<conference\> \<acronym\>33c3\</acronym\> \<title\>33. Chaos +
-Communication Congress\</title\> \<start\>2016-12-27\</start\> +
-\<end\>2016-12-30\</end\> \<days\>4\</days\> +
-\<timeslot_duration\>00:15\</timeslot_duration\> +
-\<time_zone_name\>Europe/Amsterdam\</time_zone_name\> +
-\<base_url\><https://fahrplan.events.ccc.de/congress/2016/Fahrplan/>\</base_url\> +
-\</conference\> \<day date="2016-12-27" end="2016-12-28T04:00:00+01:00" +
-index="1" start="2016-12-27T10:00:00+01:00"\> \<room name="Saal 1"\> +
-\<event guid="c06dd4c2-c637-445d-9c72-92204a35eeff" id="8264"\> +
-\<date\>2016-12-27T20:30:00+01:00\</date\> \<start\>20:30\</start\> +
-\<duration\>01:00\</duration\> \<room\>Saal 6\</room\> +
-\<slug\>33c3-8264-netzpolitik_in_der_schweiz_2016\</slug\> +
-\<url\><https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8264.html>\</url\> +
-\<recording\> \<license\>CC BY 4.0\</license\> +
-\<optout\>false\</optout\> \</recording\> \<title\>Netzpolitik in der +
-Schweiz 2016\</title\> \<subtitle\>Grundrechte per Volksentscheid +
-versenken\</subtitle\> \<track\>CCC\</track\> \<type\>lecture\</type\> +
-\<language\>de\</language\> \<abstract\> Ein Überblick zur +
-netzpolitischen Situation in der Schweiz. Wir geben einen umfassenden +
-Rückblick auf das ereignissreiche Jahr 2016, in dem die Schweizer +
-Bevölkerung über gleich zwei Massenüberwachungsgesetze entschieden hat. +
-Die netzpolitischen Gruppierungen haben mit viel Einsatz gegen die +
-Gesetze gekämpft . Wir berichten darüber, wie wir das angengangen sind, +
-wie es ausgegangen ist und was wir dabei gelernt haben. Zudem machen wir +
-einen Ausblick auf kommende netzpolitische Herausforderungen. +
-\</abstract\> \<description\> In Sachen Netzpolitik hat sich im Jahr +
-2016, seit unserem letzten Vortrag zu dem Thema, viel getan. Gleich zu +
-Beginn 2016 kam die Nachricht, dass das Referendum zum NDG erfolgreich +
-war. Damit hat das Schweizer Stimmvolk die Chance erhalten, über das +
-Geheimdienstgesetz (NDG) abzustimmen. Mit dem Zustandekommen des +
-Referendums war aber erst die halbe Arbeit getan. Es galt nun der in +
-Gang gesetzten staatlichen Propagandamaschinerie sowie einigen, +
-insbesondere bürgerlichen, Parteien entgegenzuwirken. Die +
-netzpolitischen Gruppierungen waren also gefragt, sich aktiv, +
-parteipolitisch unabhängig und mit technischen Fakten in den +
-Abstimmungskampf einzubringen. Am 25. September 2016 hat dann das +
-Schweizer Stimmvolk über das neue Nachrichtendienstgesetz entschieden: +
-65% der Bevölkerung hat das gesetz angenommen, nur gerade 35 % teilten +
-unsere Meinung. Im Frühling hat das Parlament gleich das nächste +
-fragwürdige Gesetz verabschiedet - das revidierte Bundesgesetz +
-betreffend die Überwachung des Post- und Fernmeldeverkehrs (BÜPF). Auch +
-gegen dieses Gesetz hat die Schweizer Netzgemeinde, unterstützt von +
-einer ganzen Reihe Jungparteien, umgehend das Referendum ergriffen. Das +
-Sammeln der Unterschriften wurde diesmal aus den Räumen des CCC Zürich +
-(CCCZH) koordiniert, da es sich abgesehen von der stark netzpolitisch +
-verankerten Pirtatenpartei, nicht um eine parteipolitische Initiative +
-handelte. Auch wenn das Referendum gegen das BÜPF leider nicht +
-erfolgreich war, so haben wir bei der Zusammenarbeit mit einem gross +
-gestreuten Kommittee, beim Sammeln auf der Strasse und dem Auszählen und +
-bescheinigen der Unterschriften viel gelernt und somit nicht Gold, aber +
-immerhin Silber und Bronze abgeräumt. Auch wenn mit 2016 ein - mit Bezug +
-auf die Schweizer Netzpolitik - besonders düsters Jahr zu Ende geht, so +
-ist für die Zukunft noch einiges ausstehend. Zum Schluss wollen wir +
-einen kurzen Überblick geben über das was kommt. Detaillierte +
-Erklärungen zum politischen System in der Schweiz und der (damals) +
-aktuellen Lage haben wir im Vortrag am 32c3 gegeben: +
-<https://media.ccc.de/v/32c3-7205-netzpolitik_in_der_schweiz> Im +
-Anschluss an den Talk gibt es eine ausgedehnte Diskussions- und +
-Fragesession zu den behandelten Themen im Raum A.1: Siehe hier: +
-<https://events.ccc.de/congress/2016/wiki/Session:Netzpolitik_in_der_Schweiz_2017> +
-\</description\> +
-\<logo\>/system/events/logos/000/008/264/large/buepf_tux.jpg\</logo\> +
-\<persons\> \<person id="6379"\>Hakuna MaMate\</person\> \</persons\> +
-\<links\> \<link href="<https://www.ccc-ch.ch/>"\>Chaos Computer Club +
-Schweiz\</link\> \<link +
-href="<https://www.digitale-gesellschaft.ch>"\>Digitale Gesellschaft +
-Schweiz\</link\> \<link +
-href="<https://stopbuepf.ch/>"\>Referendumsplattform BÜPF\</link\> +
-\<link +
-href="<https://www.nachrichtendienstgesetz.ch>"\>Referendumsplattform +
-NDG\</link\> \</links\> \<attachments\> \<attachment +
-href="/system/event_attachments/attachments/000/003/131/original/talk_33c3_netzpolitik.pdf?1482965202"\>Slides\</attachment\> +
-\</attachments\> \</event\> … \</room\> \<room name="Saal 2"\>…\</room\> +
-… \</day\> \<day date="2016-12-28" end="2016-12-29T04:00:00+01:00" +
-index="2" start="2016-12-28T10:00:00+01:00"\>…\</day\> \<day +
-date="2016-12-29" end="2016-12-30T04:00:00+01:00" index="3" +
-start="2016-12-29T10:00:00+01:00"\>…\</day\> \<day date="2016-12-30" +
-end="2016-12-30T23:00:00+01:00" index="4" +
-start="2016-12-30T10:00:00+01:00"\>…\</day\> \</schedule\>+
  
-\`\`\`+``` 
 +<schedule> 
 +  <generator name="frab" version="0.7" url="https://github.com/frab/frab" /> 
 +  <version>1.3</version> 
 +  <conference> 
 +    <acronym>33c3</acronym> 
 +    <title>33. Chaos Communication Congress</title> 
 +    <start>2016-12-27</start> 
 +    <end>2016-12-30</end> 
 +    <days>4</days> 
 +    <timeslot_duration>00:15</timeslot_duration> 
 +    <time_zone_name>Europe/Amsterdam</time_zone_name> 
 +    <base_url>https://fahrplan.events.ccc.de/congress/2016/Fahrplan/</base_url> 
 +  </conference> 
 +  <day date="2016-12-27" end="2016-12-28T04:00:00+01:00" index="1" start="2016-12-27T10:00:00+01:00"> 
 +    <room name="Saal 1"> 
 +      <event guid="c06dd4c2-c637-445d-9c72-92204a35eeff" id="8264"> 
 +        <date>2016-12-27T20:30:00+01:00</date> 
 +        <start>20:30</start> 
 +        <duration>01:00</duration> 
 +        <room>Saal 6</room> 
 +        <slug>33c3-8264-netzpolitik_in_der_schweiz_2016</slug> 
 +        <url>https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8264.html</url> 
 +        <recording> 
 +          <license>CC BY 4.0</license> 
 +          <optout>false</optout> 
 +        </recording> 
 +        <title>Netzpolitik in der Schweiz 2016</title> 
 +        <subtitle>Grundrechte per Volksentscheid versenken</subtitle> 
 +        <track>CCC</track> 
 +        <type>lecture</type> 
 +        <language>de</language> 
 +        <abstract> 
 +Ein Überblick zur netzpolitischen Situation in der Schweiz. Wir geben einen umfassenden Rückblick auf das ereignissreiche Jahr 2016, in dem die Schweizer Bevölkerung über gleich zwei Massenüberwachungsgesetze entschieden hat. Die netzpolitischen Gruppierungen haben mit viel Einsatz gegen die Gesetze gekämpft . Wir berichten darüber, wie wir das angengangen sind, wie es ausgegangen ist und was wir dabei gelernt haben. Zudem machen wir einen Ausblick auf kommende netzpolitische Herausforderungen. 
 +        </abstract> 
 +        <description> 
 +In Sachen Netzpolitik hat sich im Jahr 2016, seit unserem letzten Vortrag zu dem Thema, viel getan. Gleich zu Beginn 2016 kam die Nachricht, dass das Referendum zum NDG erfolgreich war. Damit hat das Schweizer Stimmvolk die Chance erhalten, über das Geheimdienstgesetz (NDG) abzustimmen. Mit dem Zustandekommen des Referendums war aber erst die halbe Arbeit getan. Es galt nun der in Gang gesetzten staatlichen Propagandamaschinerie sowie einigen, insbesondere bürgerlichen, Parteien entgegenzuwirken. Die netzpolitischen Gruppierungen waren also gefragt, sich aktiv, parteipolitisch unabhängig und mit technischen Fakten in den Abstimmungskampf einzubringen. Am 25. September 2016 hat dann das Schweizer Stimmvolk über das neue Nachrichtendienstgesetz entschieden: 65% der Bevölkerung hat das gesetz angenommen, nur gerade 35 % teilten unsere Meinung. Im Frühling hat das Parlament gleich das nächste fragwürdige Gesetz verabschiedet - das revidierte Bundesgesetz betreffend die Überwachung des Post- und Fernmeldeverkehrs (BÜPF). Auch gegen dieses Gesetz hat die Schweizer Netzgemeinde, unterstützt von einer ganzen Reihe Jungparteien, umgehend das Referendum ergriffen. Das Sammeln der Unterschriften wurde diesmal aus den Räumen des CCC Zürich (CCCZH) koordiniert, da es sich abgesehen von der stark netzpolitisch verankerten Pirtatenpartei, nicht um eine parteipolitische Initiative handelte. Auch wenn das Referendum gegen das BÜPF leider nicht erfolgreich war, so haben wir bei der Zusammenarbeit mit einem gross gestreuten Kommittee, beim Sammeln auf der Strasse und dem Auszählen und bescheinigen der Unterschriften viel gelernt und somit nicht Gold, aber immerhin Silber und Bronze abgeräumt. Auch wenn mit 2016 ein - mit Bezug auf die Schweizer Netzpolitik - besonders düsters Jahr zu Ende geht, so ist für die Zukunft noch einiges ausstehend. Zum Schluss wollen wir einen kurzen Überblick geben über das was kommt. Detaillierte Erklärungen zum politischen System in der Schweiz und der (damals) aktuellen Lage haben wir im Vortrag am 32c3 gegeben: https://media.ccc.de/v/32c3-7205-netzpolitik_in_der_schweiz Im Anschluss an den Talk gibt es eine ausgedehnte Diskussions- und Fragesession zu den behandelten Themen im Raum A.1: Siehe hier: https://events.ccc.de/congress/2016/wiki/Session:Netzpolitik_in_der_Schweiz_2017 
 +        </description> 
 +        <logo>/system/events/logos/000/008/264/large/buepf_tux.jpg</logo> 
 +        <persons> 
 +          <person id="6379">Hakuna MaMate</person> 
 +        </persons> 
 +        <links> 
 +          <link href="https://www.ccc-ch.ch/">Chaos Computer Club Schweiz</link> 
 +          <link href="https://www.digitale-gesellschaft.ch">Digitale Gesellschaft Schweiz</link> 
 +          <link href="https://stopbuepf.ch/">Referendumsplattform BÜPF</link> 
 +          <link href="https://www.nachrichtendienstgesetz.ch">Referendumsplattform NDG</link> 
 +        </links> 
 +        <attachments> 
 +          <attachment href="/system/event_attachments/attachments/000/003/131/original/talk_33c3_netzpolitik.pdf?1482965202">Slides</attachment> 
 +        </attachments> 
 +      </event> 
 +      … 
 +    </room> 
 +    <room name="Saal 2">…</room> 
 +    … 
 +  </day> 
 +  <day date="2016-12-28" end="2016-12-29T04:00:00+01:00" index="2" start="2016-12-28T10:00:00+01:00">…</day> 
 +  <day date="2016-12-29" end="2016-12-30T04:00:00+01:00" index="3" start="2016-12-29T10:00:00+01:00">…</day> 
 +  <day date="2016-12-30" end="2016-12-30T23:00:00+01:00" index="4" start="2016-12-30T10:00:00+01:00">…</day> 
 +</schedule>
  
 +```
  • schedule.txt
  • Last modified: 2026/07/26 22:28
  • by 127.0.0.1