{
"id": "org.devcon.event",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"start_utc",
"end_utc",
"title",
"description",
"organizer",
"main_url",
"location",
"event_type",
"expertise"
],
"properties": {
"title": {
"type": "string",
"description": "Title of the event"
},
"end_utc": {
"type": "string",
"format": "datetime",
"description": "End time of the entire event (use the 'timeslots' field for granular scheduling)"
},
"socials": {
"ref": "lex:org.devcon.event#social_platform",
"type": "ref",
"description": "Social media platforms of the organizer"
},
"capacity": {
"type": "integer",
"description": "How many people can attend the event"
},
"location": {
"ref": "lex:org.devcon.event#location",
"type": "ref"
},
"main_url": {
"type": "string",
"description": "Main web property of the event (e.g. website or twitter profile)"
},
"sold_out": {
"type": "boolean",
"description": "Whether the event is sold out"
},
"expertise": {
"enum": [
"all welcome",
"beginner",
"intermediate",
"expert",
"other"
],
"type": "string",
"description": "Expertise level of the event"
},
"image_url": {
"type": "string",
"description": "Url referencing an image for this event. Image should be .png, squared, and we suggest at least 1024x1024px."
},
"organizer": {
"ref": "lex:org.devcon.event#organizer",
"type": "ref"
},
"start_utc": {
"type": "string",
"format": "datetime",
"description": "Start time of the entire event (use the 'timeslots' field for granular scheduling)"
},
"timeslots": {
"type": "array",
"items": {
"ref": "lex:org.devcon.event#timeslot",
"type": "ref"
},
"description": "Optional event timeslots - this may be useful for events that span multiple days, need to specify timeslots for each day, or otherwise need more granular scheduling."
},
"categories": {
"type": "array",
"items": {
"enum": [
"real world ethereum",
"defi",
"cypherpunk & privacy",
"security",
"ai",
"protocol",
"devex",
"usability",
"applied cryptography",
"coordination",
"scalability",
"other"
],
"type": "string"
},
"description": "Categories of the event (e.g. defi, privacy, security, etc.)"
},
"event_type": {
"enum": [
"talks",
"discussion",
"presentation",
"hackathon",
"workshop",
"panel",
"mixed format",
"social",
"other"
],
"type": "string",
"description": "Type of event"
},
"description": {
"type": "string",
"description": "Description of the event"
},
"search_tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Searching tags for the event"
},
"tickets_url": {
"type": "string",
"description": "Url of the tickets for the event"
},
"requires_ticket": {
"type": "boolean",
"description": "Whether the event requires tickets"
},
"show_time_of_day": {
"type": "boolean",
"description": "Whether the event shows the time of day"
}
}
}
},
"location": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the location"
},
"address": {
"type": "string",
"description": "Address of the location"
}
}
},
"timeslot": {
"type": "object",
"required": [
"start_utc",
"end_utc",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Title of the timeslot"
},
"end_utc": {
"type": "string",
"format": "datetime",
"description": "End of the timeslot"
},
"event_uri": {
"type": "string",
"description": "If the timeslot is a more intricate/detailed event that needs more than the basic title and description, this would refer to the atproto record key of that event. The referenced event should follow the same parent schema (org.devcon.event.v1)"
},
"start_utc": {
"type": "string",
"format": "datetime",
"description": "Start of the timeslot"
},
"description": {
"type": "string",
"description": "Description of the timeslot"
}
}
},
"organizer": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the organizer"
},
"contact": {
"type": "string",
"description": "Contact of the organizer (email, twitter, etc.)"
}
}
},
"social_platform": {
"type": "object",
"properties": {
"x_url": {
"type": "string",
"description": "Twitter of the organizer"
},
"lens_url": {
"type": "string",
"description": "Lens of the organizer"
},
"github_url": {
"type": "string",
"description": "Github of the organizer"
},
"bluesky_url": {
"type": "string",
"description": "Bluesky of the organizer"
},
"discord_url": {
"type": "string",
"description": "Discord of the organizer"
},
"youtube_url": {
"type": "string",
"description": "Youtube of the organizer"
},
"telegram_url": {
"type": "string",
"description": "Telegram of the organizer"
},
"farcaster_url": {
"type": "string",
"description": "Farcaster of the organizer"
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}