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 [2021/04/07 18:58] andischedule [2024/03/13 00:05] (current) – [Clients consuming schedule.xml] andi
Line 1: Line 1:
 = Schedule = Schedule
  
-To interexchange the conference data between the different systems and tools we are using the schedule.xml format known from 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]]. 
 + 
 +**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. 
 +** 
 + 
 + 
 +<WRAP group> 
 +<WRAP column> 
 +{{drawio>schedule-overview.png}} 
 +</WRAP> 
 +<WRAP quarter column> 
 +Historie Congress/Camp:  
 +* [[events:37c3:schedule|2023]] 
 +* [[events:camp23:schedule|#CCCamp23]] 
 +* [[events:jev22:schedule|2022]] 
 +* [[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> 
 +--> 
 + 
 +== Schedule XML
  
 Minimal example: Minimal example:
  
 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. 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.
 +
 +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`
 +
 +* event slug `denog16-4001-opening` is 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]` 
 +  * first component has to be the main conference acronym, see above – so `cccamp15`, not `cccamp15-ber`
 +  * for conferences: second component has to be the local integer ID in the conference planning system
 +  * the last is a condensed version of the title
 +  * trailing dashes should be removed
 +  
 +
  
 <code> <code>
-<schedule>+<schedule xsi:noNamespaceSchemaLocation="https://c3voc.de/schedule/schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <generator name="human" />   <generator name="human" />
   <version>1.0</version>   <version>1.0</version>
Line 21: Line 66:
   </conference>   </conference>
   <day index="1" date="2016-11-23" start="2016-11-23T09:00:00+01:00" end="2016-11-24T03:00:00+01:00">   <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">+    <room name="darmstadtium" guid="0c00f935-e861-4e0c-ba43-7eb53ee189e4">
       <event id="4001" guid="385033fe-dda1-555a-aca6-28dd05677c66">       <event id="4001" guid="385033fe-dda1-555a-aca6-28dd05677c66">
         <date>2016-11-23T13:00:00+01:00</date>         <date>2016-11-23T13:00:00+01:00</date>
Line 36: Line 81:
         <description/>         <description/>
         <persons>         <persons>
-          <person id="0">DENOG ORGA</person>+          <person guid="211fd9e8-eebd-4657-8a70-07614b0bdfea">DENOG ORGA</person>
         </persons>         </persons>
         <links/>         <links/>
Line 47: Line 92:
 </code> </code>
  
-== XML +* 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)
  
  
-== Tools+== 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]]: 
 + 
 +<code> 
 +
 +  "$schema": "https://c3voc.de/schedule/submission", 
 +  "guid": "83ae8aec-0724-4eef-9b5a-6ead8698e629", 
 +  "title": "A example talk", 
 +  "type": "talk", 
 +  "abstract": "A good talk.", 
 +  "description": "I will expand upon the properties of the talk, primarily its high quality.", 
 +  "duration": 30, 
 +  "do_not_record": false, 
 +  "image": "https://domain.tld/img/submission.png", 
 +  "speakers":
 +    { 
 +      "name": "Jane", 
 +      "guid": "09ab9fae-5c45-55a1-ac3b-4cff3d94547d", 
 +      "email": "jane.doe@example.net", 
 +      "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  
 + 
 + 
 +== 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 80: Line 181:
 * 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        ^
 +| pretalx   | xml, json      | CCC      | https://pretalx.c3voc.de | 
 +| 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/Wilm0r/giggity (Android, Java)
 +* https://github.com/EventFahrplan/EventFahrplan (Android, Kotlin/Java)
 +* https://github.com/saschalalala/pyfahrplan (CLI, Python)
 +* https://congress.conference.systems (iOS)
 +* https://github.com/crs-tools/tracker (Video processing system)
 +* https://github.com/engelsystem/engelsystem (Volunteer planning system) ([[https://github.com/engelsystem/engelsystem/tree/main/src/Helpers/Schedule|PHP]])
 +* https://info-beamer.com/raspberry-pi-digital-signage-scheduled-player-4765.html (digital signage)
  
  
Line 87: Line 206:
  
  
-== Full example+== Full XML example
  
 from https://fahrplan.events.ccc.de/ -> schedule.xml from https://fahrplan.events.ccc.de/ -> schedule.xml
  • schedule.1617814696.txt.gz
  • Last modified: 2021/04/07 18:58
  • by andi