{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {},
"title": "Event Schedule component",
"description": "Validate event schedule component schema",
"type": "object",
"additionalProperties": false,
"required": [
"startDate",
"timeZone"
],
"properties": {
"title": {
"type": "string",
"maxLength": 50,
"description": "Title of the event"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"timeZone": {
"type": "string"
},
"repeat": {
"type": "boolean"
},
"recurrence": {
"type": "string",
"enum": [
"daily",
"weekly",
"monthly",
"yearly"
]
},
"allDayEvent": {
"type": "boolean",
"default": false
},
"timeFormat": {
"type": "string",
"default": "24h",
"enum": [
"12h",
"24h"
]
},
"dateFormat": {
"type": "string",
"default": "MM-dd-yyyy",
"enum": [
"MM-dd-yyyy",
"dd-MM-yyyy",
"yyyy-MM-dd",
"M/dd/yyyy",
"MMM d, yyyy"
]
},
"separator": {
"$ref": "separator.json"
},
"addToCalender": {
"type": "object",
"additionalProperties": false,
"properties": {
"tracking": {
"$ref": "event_tracking.json"
}
}
},
"formatting": {
"type": "object",
"additionalProperties": false,
"properties": {
"textStyle": {
"$ref": "style/text.json"
},
"cardStyle": {
"$ref": "style/card.json"
}
}
}
},
"if": {
"properties": {
"allDayEvent": {
"const": false
}
},
"required": [
"allDayEvent"
]
},
"then": {
"required": [
"endDate"
]
}
}