Skip to content

schedule2: duration on Event #173

Description

@saerdnaer

For schedule2 we decided to drop/deprecate duration on Event from the example data ( c.f. #129 - especially #129 (comment)), but a Duration type is still in schema2:


"events": [
  {
    "type": "OTHER",
    "guid": "270fa44c-821a-577f-8ca3-33e8d4a8c2a7",
    "start": "2024-12-27T10:30:00+01:00",
    "end": "2024-12-27T11:00:00+01:00",
    "room": {"name": "Saal 1", "slug": "saal-1", "guid": "ba692ba3-421b-5371-8309-60acc34a3c05"},
    "slug": "38c3-opening-ceremony",
    "title": "38C3: Opening Ceremony",
    "subtitle": null,
    "language": "en",
    "track": {"slug": "ccc"},
    "abstract": "Glad you could make it! Take a seat and buckle up for a ride through four days of chaotic adventures.",
    "description": "This ceremony will prepare you for the 38C3 in all its glory, underground and above, hacks and trolls, art and radical ideas. Let's kick this thing off together!",
    "logo": null,
    "participants": [
      {"guid": "0c16ffaa-709d-599f-959f-9a38b911361a", "name": "Gabriela Bogk", "role": "SPEAKER"},
      {"guid": "721a267b-b09d-5422-8221-4f9a71cfc727", "name": "Aline Blankertz", "role": "SPEAKER"},
      {"guid": "4cee1e72-681f-5c8b-8dcd-8e58c8f4a445", "name": "Senficon", "role": "CONTRIBUTOR"}
    ],
    "links": [
      {"url": "https://example.net/", "title": "foo bar"},
      {"type": "ACTIVITYPUB", "url": "https://example.net/@handle/123456", "service": "MASTODON"},
      {"type": "FEEDBACK", "url": "https://fahrplan.events.ccc.de/congress/2024/fahrplan/talk/HQCCYH/feedback/"}
    ],
    "attachments": [
      {"type": "SLIDES", "url": "https://example.net/foo/bar/1235.pdf"}
    ],
    "url": "https://events.ccc.de/congress/2024/hub/event/38c3-opening-ceremony/"
  },
  
]

but this is not a solution for unscheduled events.

The older, intermediate submission-json schema has solves this issue by using an integer:

    "duration": {
      "description": "The talk’s duration in minutes, or null",
      "type": ["integer", "null"],
      "examples": [30, 45, 90, null],
      "maximum": 840
    },

but for now we decided to stick to following solution in schedule2:

    "Conference": {
      "type": "object",
      "title": "Conference",
      "properties": {
        "acronym": {

        "timeslot_duration": {
          "$ref": "#/definitions/Duration"
        },
      
    },
    "Event": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        
        "start": {
          "type": "string",
          "format": "date-time",
          "examples": ["2020-12-14T09:00:00+01:00"]
        },
        "end": {
          "type": "string",
          "format": "date-time",
          "examples": ["2020-12-14T10:00:00+01:00"]
        },
        "duration": {
          "$ref": "#/definitions/Duration",
          "deprecated": true,
          "$comment": "For scheduled events, use end instead"
        },
      
    },
    "Duration": {
      "title": "Duration (ISO8601)",
      "type": "string",
      "examples": ["PT15M", "PT1H30M"],
      "pattern": "^P(?!$)(?:\\d+Y)?(?:\\d+M)?(?:\\d+W)?(?:\\d+D)?(?:T(?=\\d)(?:\\d+H)?(?:\\d+M)?(?:\\d+(?:\\.\\d+)?S)?)?$"
    },

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status
    In review

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions