{
"id": "lol.letsmeet.poll.schedule",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"time",
"status",
"createdAt"
],
"properties": {
"time": {
"refs": [
"#specificDates"
],
"type": "union"
},
"title": {
"type": "string",
"maxLength": 800,
"maxGraphemes": 200
},
"events": {
"type": "array",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"maxLength": 8,
"description": "The calendar event records filed in the host's repo for the chosen time(s), so a repick or reopen can remove them."
},
"status": {
"enum": [
"active",
"closed",
"finalized",
"cancelled"
],
"type": "string"
},
"closesAt": {
"type": "string",
"format": "datetime"
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"finalized": {
"ref": "#interval",
"type": "ref"
},
"description": {
"type": "string",
"maxLength": 8000,
"maxGraphemes": 2000
}
}
},
"description": "An availability poll: date range, daily window, granularity."
},
"interval": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"format": "datetime"
},
"start": {
"type": "string",
"format": "datetime"
}
}
},
"dayWindow": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"maxLength": 5
},
"start": {
"type": "string",
"maxLength": 5
}
}
},
"specificDates": {
"type": "object",
"required": [
"dates",
"window",
"slotMinutes",
"timezone"
],
"properties": {
"dates": {
"type": "array",
"items": {
"type": "string"
},
"maxLength": 31
},
"window": {
"ref": "#dayWindow",
"type": "ref"
},
"timezone": {
"type": "string",
"maxLength": 64
},
"slotMinutes": {
"enum": [
10,
15,
20,
30,
45,
60,
90,
120
],
"type": "integer"
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}