{
	"id": "Schedule.json",
	"title": "Schedule",
	"description": "A schedule defines a repeating time period used to describe a regularly occurring Event. At a minimum a schedule will specify repeatFrequency which describes the interval between occurences of the event. Additional information can be provided to specify the schedule more precisely. \n      This includes identifying the day(s) of the week or month when the recurring event will take place, in addition to its start and end time. Schedules may also\n      have start and end dates to indicate when they are active, e.g. to define a limited calendar of events.",
	"media": {"type": "application/json;profile=http://schema.org/Schedule"},
	"allOf": [{"$ref": "Thing.json"}, {"$ref": "Intangible.json"}],
	"type": "object",
	"properties": {
		"byDay": {
			"oneOf": [
				{"$ref": "DayOfWeek.json#/definitions/possibleRef"},
				{
					"type": "array",
					"items": {"$ref": "DayOfWeek.json#/definitions/possibleRef"}
				}
			]
		},
		"byMonth": {
			"oneOf": [
				{"$ref": "#/definitions/byMonth"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/byMonth"}
				}
			]
		},
		"byMonthDay": {
			"oneOf": [
				{"$ref": "#/definitions/byMonthDay"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/byMonthDay"}
				}
			]
		},
		"eventSchedule": {
			"oneOf": [
				{"$ref": "Duration.json#/definitions/possibleRef"},
				{
					"type": "array",
					"items": {"$ref": "Duration.json#/definitions/possibleRef"}
				}
			]
		},
		"exceptDate": {
			"oneOf": [
				{"$ref": "#/definitions/exceptDate"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/exceptDate"}
				}
			]
		},
		"repeatCount": {
			"oneOf": [
				{"$ref": "#/definitions/repeatCount"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/repeatCount"}
				}
			]
		},
		"repeatFrequency": {
			"oneOf": [
				{"$ref": "#/definitions/repeatFrequency"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/repeatFrequency"}
				}
			]
		}
	},
	"definitions": {
		"array": {
			"type": "array",
			"items": {"$ref": "#"}
		},
		"possibleRef": {
			"oneOf": [
				{"$ref": "#"},
				{
					"type": "string",
					"format": "uri",
					"links": [{
						"rel": "full",
						"href": "{+$}"
					}]
				}
			]
		},
		"possibleRefArray": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/possibleRef"}
				},
				{
					"type": "string",
					"format": "uri",
					"links": [{
						"rel": "full",
						"href": "{+$}"
					}]
				}
			]
		},
		"byMonth": {
			"title": "By Month",
			"description": "Defines the month(s) of the year on which a recurring Event takes place. Specified as an Integer between 1-12. January is 1.",
			"type": "integer"
		},
		"byMonthDay": {
			"title": "By Month Day",
			"description": "Defines the day(s) of the month on which a recurring Event takes place. Specified as an Integer between 1-31.",
			"type": "integer"
		},
		"exceptDate": {
			"title": "Except Date",
			"description": "Defines a Date or DateTime during which a scheduled Event will not take place. The property allows exceptions to\n      a Schedule to be specified. If an exception is specified as a DateTime then only the event that would have started at that specific date and time\n      should be excluded from the schedule. If an exception is specified as a Date then any event that is scheduled for that 24 hour period should be\n      excluded from the schedule. This allows a whole day to be excluded from the schedule without having to itemise every scheduled event.",
			"anyOf": [
				{
					"type": "string",
					"format": "date"
				},
				{
					"type": "string",
					"format": "date-time"
				}
			]
		},
		"repeatCount": {
			"title": "Repeat Count",
			"description": "Defines the number of times a recurring Event will take place",
			"type": "integer"
		},
		"repeatFrequency": {
			"title": "Repeat Frequency",
			"description": "Defines the frequency at which Events will occur according to a schedule Schedule. The intervals between\n      events should be defined as a Duration of time.",
			"anyOf": [{"$ref": "Duration.json#/definitions/possibleRef"}, {"type": "string"}]
		}
	}
}