schedule

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
schedule [2023/12/16 15:09] andischedule [2026/09/14 12:13] (current) – [Schedule2] andi
Line 1: Line 1:
-Schedule+Schedule
  
 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]]. 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]].
Line 5: Line 5:
 **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. **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.
 ** **
 +
 +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
  
  
Line 13: Line 15:
 <WRAP quarter column> <WRAP quarter column>
 Historie Congress/Camp:  Historie Congress/Camp: 
 +* [[events:39c3:schedule|2025]]
 +* [[events:38c3:schedule|2024]]
 * [[events:37c3:schedule|2023]] * [[events:37c3:schedule|2023]]
 * [[events:camp23:schedule|#CCCamp23]] * [[events:camp23:schedule|#CCCamp23]]
Line 33: Line 37:
 --> -->
  
-== Schedule XML+## Usage 
 + 
 +### Producers 
 + 
 +The following systems able to produce schedule.xml/.json/etc 
 + 
 +^ software                                  ^ output formats       ^ used by  ^ example instances        ^ 
 +| [[https://cccv.de/hub/hub/|hub]]          | xml, json, schedule2 | CCC      | https://hub.test.c3voc.de |  
 +| [[https://pretalx.com/p/about/|pretalx]]  | xml, json      | CCC, …   | https://pretalx.c3voc.de \\ https://cfp.cccv.de |  
 +| [[http://frab.github.io/frab/|frab]]      | xml, json      | CCC till 2023 | https://frab.cccv.de     | 
 +| [[https://osem.io|osem]] | xml  | openSUSE, GNOME, ownCloud     | 
 +| [[https://github.com/nevs/pentabarf|pentabarf]] | xml            | CCC till switch to frab, \\ FOSDEM till 2023  | https://penta.fosdem.org/   | 
 + 
 +### Clients 
 + 
 +- giggity https://github.com/Wilm0r/giggity (Android, Java) 
 +- EventFahrplan https://github.com/EventFahrplan/EventFahrplan (Android, Kotlin/Java) 
 +- iOS Fahrplan App https://congress.conference.systems (iOS) 
 +- [[c3tracker:start]] 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]]) 
 +- [[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 
 + 
 +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.  
 + 
 +Goals: 
 + 
 +- drop nesting: publish pre-release versions even when a talk is not assigned to a room 
 +- allow multiple events in the same room/area  
 +- allow multiple instances of the same event, e.g. for recurring workshops 
 +- fix issues with time & durations for multi-day events 
 +- … 
 + 
 +The new format is defined as Release Candidate alpha-4, currently collecting feedback from clients and first implementations in Hub and native Schedule apps like Eventfahrplan. 
 + 
 + 
 +## Schedule XML
  
 Minimal example: Minimal example:
Line 92: Line 136:
 </code> </code>
  
-* XSD: https://raw.githubusercontent.com/voc/schedule/master/validator/xsd/schedule.xml.xsd +* XSD: https://raw.githubusercontent.com/voc/schedule/master/validator/xsd/schedule.xml.xsd
 * Validator: https://c3voc.de/schedulexml/ , [[https://github.com/voc/schedule/tree/master/validator|sourcecode]] * Validator: https://c3voc.de/schedulexml/ , [[https://github.com/voc/schedule/tree/master/validator|sourcecode]]
-* [[https://github.com/frab/schedule.xml|Coordination between different projects producing/consuming schedule.xml]] (under construction) +* [[https://github.com/frab/schedule.xml|Coordination between different projects producing/consuming schedule.xml]] (under construction)
  
  
-== Interexchange JSON+## Interexchange JSON
  
 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]]: 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]]:
Line 154: Line 198:
  
  
-== 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> * 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]] ]   * [[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]] ]
Line 179: Line 223:
 * https://github.com/verschwoerhaus/ical2schedule * https://github.com/verschwoerhaus/ical2schedule
   * ical -> schedule.xml   * 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 * https://github.com/linux-audio-berlin/LAC16/blob/master/schedule/sexport.py
 * statistics related to [[software:auphonic#tools|Auphonic]] * statistics related to [[software:auphonic#tools|Auphonic]]
  
-== Planning systems able to produce schedule.xml 
  
-^ software  ^ output formats ^ used by  ^ example instances        ^ +### Useful Invocations
-| pretalx   | xml, json      | CCC      | https://pretalx.c3voc.de |  +* Get talk IDs for a certain day (intro rendering):
-| frab      | xml, json      | CCC      | https://frab.cccv.de     | +
-| [[https://osem.io|osem]] | xml  | openSUSE, GNOME, ownCloud     | +
-| pentabarf | xml            | 2023: only by fosdem  | https://penta.fosdem.org/   |+
  
-== Clients consuming schedule.xml +```
- +
-* https://github.com/EventFahrplan/EventFahrplan (Android, Kotlin/Java) +
-* https://github.com/Wilm0r/giggity (Android, Java) +
-* https://github.com/saschalalala/pyfahrplan (CLI, Python) +
- +
- +
-== Useful Invocations: +
-* 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 from https://fahrplan.events.ccc.de/ -> schedule.xml
  • schedule.1702739340.txt.gz
  • Last modified: 2023/12/16 15:09
  • by andi