{
"id": "com.chadtmiller.calendar.event",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"startsAt",
"createdAt"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "A link for the entry, such as a meeting room or a ticket."
},
"notes": {
"type": "string",
"maxLength": 30000,
"description": "Free text about the entry.",
"maxGraphemes": 3000
},
"title": {
"type": "string",
"maxLength": 3000,
"description": "What the entry is called.",
"maxGraphemes": 300
},
"allDay": {
"type": "boolean",
"description": "The entry fills whole days and has no time of day."
},
"endsAt": {
"type": "string",
"format": "datetime",
"description": "When the entry ends. An all-day entry ends at midnight UTC on its last day, and that day is part of the entry."
},
"status": {
"type": "string",
"default": "confirmed",
"description": "How firm the entry is.",
"knownValues": [
"confirmed",
"tentative",
"cancelled"
]
},
"category": {
"type": "string",
"description": "The kind of entry. A reader that shows colours picks one from this.",
"knownValues": [
"work",
"personal",
"travel",
"health",
"social"
]
},
"location": {
"type": "string",
"maxLength": 2000,
"description": "Where the entry takes place, as text."
},
"startsAt": {
"type": "string",
"format": "datetime",
"description": "When the entry starts. An all-day entry starts at midnight UTC on its first day."
},
"timeZone": {
"type": "string",
"description": "The IANA time zone the entry was written in, such as America/New_York."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When the entry was written."
},
"recurrence": {
"type": "string",
"maxLength": 1000,
"description": "An RFC 5545 recurrence rule with no RRULE: prefix, such as FREQ=WEEKLY;BYDAY=TU. The entry repeats on the days the rule names."
}
}
},
"description": "An entry on a personal schedule. The record is written into a permissioned space, so only that space's members read it."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}