{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/folio/main/json-schema/folio-single-day-opening-collection-schema.json",
  "title": "singleDayOpeningCollection",
  "description": "Collection of opening information for single days",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/folio-mod-calendar-openapi.yml#/components/schemas/singleDayOpeningCollection",
  "type": "object",
  "properties": {
    "dates": {
      "type": "array",
      "description": "Each opening or date returned in the response",
      "items": {
        "$ref": "#/$defs/singleDayOpening"
      }
    },
    "totalRecords": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of total openings or dates available"
    }
  },
  "additionalProperties": false,
  "required": [
    "dates",
    "totalRecords"
  ],
  "$defs": {
    "singleDayOpening": {
      "description": "Opening information for a single day",
      "type": "object",
      "properties": {
        "date": {
          "description": "The date (YYYY-MM-DD) that this object is describing openings for",
          "type": "string",
          "format": "date"
        },
        "allDay": {
          "description": "If the service point is open or closed for the entire day",
          "type": "boolean"
        },
        "open": {
          "description": "If the service point is open on this day",
          "type": "boolean"
        },
        "exceptional": {
          "description": "If this opening (or closure) was the result of an exception",
          "type": "boolean"
        },
        "exceptionName": {
          "description": "The name of an exception, if this day was affected by one",
          "type": "string"
        },
        "openings": {
          "description": "A list of all the opening ranges of the service point on this day",
          "type": "array",
          "items": {
            "$ref": "#/$defs/singleDayOpeningRange"
          }
        }
      },
      "required": [
        "date",
        "allDay",
        "open",
        "exceptional",
        "openings"
      ],
      "additionalProperties": false
    },
    "singleDayOpeningRange": {
      "description": "A time for a single opening range on a given day",
      "type": "object",
      "properties": {
        "startTime": {
          "description": "The start time of this opening",
          "type": "string",
          "format": "time"
        },
        "endTime": {
          "description": "The end time of this opening",
          "type": "string",
          "format": "time"
        }
      },
      "required": [
        "startTime",
        "endTime"
      ],
      "additionalProperties": false
    }
  }
}