{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "$defs" : {
    "BusinessCalendar" : {
      "type" : "object",
      "properties" : {
        "FirstDayOfWeek" : {
          "$ref" : "#/$defs/Day",
          "description" : "First day of the week.\nIf empty or not existing the parent calendar's value is inherited.\nIf not defined by any parent the value is retrieved from the current locale settings"
        },
        "FreeDays" : {
          "description" : "Name-value pairs of non-working days.\n\nYearly days:\n  Recurring non-working days during a year, falling on the same date, e.g. Jan. 1 or Christmas.\n  Format: MM-dd, e.g. 01-01 (New Year), 12-25 (Christmas Day)\n\nRelative Easter Days:\n  Recurring non-working days relative to Easter Sunday, e.g. Good Friday or Pentecost.\n  Format (case insensitive): easter +/- Number, e.g. 'easter - 2' (Good Friday), 'easter + 50' (Pentecost Monday)\n\nFixed Dates:\n  Once-off non-working days, e.g. a company celebration day or a special local public holiday.\n  Format: YYYY-MM-dd\n",
          "type" : "object",
          "properties" : {
            "WeekendEnd" : {
              "description" : "End of days that are always off",
              "additionalProperties" : false,
              "type" : "string",
              "enum" : [ "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" ],
              "examples" : [ "sunday" ]
            },
            "WeekendStart" : {
              "description" : "Start of days that are always off",
              "additionalProperties" : false,
              "type" : "string",
              "enum" : [ "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" ],
              "examples" : [ "saturday" ]
            }
          },
          "examples" : [ "\"New Year\": 01-01", "\"Christmas Day\": 12-25", "\"Good Friday\": easter - 2", "\"Easter Monday\": easter + 1", "\"Pentecost Monday\": easter + 50", "\"50 Years Ivyteam\": 2043-04-07" ]
        },
        "Parent" : {
          "type" : [ "string", "null" ],
          "description" : "Name of the parent business calendar.\nIf empty or not existing this business calendar will be the root calendar for this application.\nOnly one root calendar is allowed."
        },
        "WorkingTimes" : {
          "description" : "Name-value pairs of working times during a business day.\nAt least one working time needs to be defined here or in any of the parents for business calendar calculations to work.\n\nWarning: Ensure that your working times in your calendar tree do not overlap.\nOtherwise the business calendar calculations may not work correctly!\n\nValue format is : HH:mm-HH:mm",
          "additionalProperties" : {
            "type" : "string"
          },
          "type" : "object",
          "examples" : [ "myMorning: 8:00-12:00", "myAfternoon: 13:00-17:00" ]
        }
      },
      "additionalProperties" : false
    },
    "Day" : {
      "type" : "string",
      "enum" : [ "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" ]
    },
    "Map(String,BusinessCalendarSchema)" : {
      "type" : "object",
      "additionalProperties" : {
        "$ref" : "#/$defs/BusinessCalendar"
      }
    }
  },
  "type" : "object",
  "properties" : {
    "BusinessCalendars" : {
      "$ref" : "#/$defs/Map(String,BusinessCalendarSchema)"
    }
  },
  "additionalProperties" : false
}
