Core identity
titlesummaryevent_typeandevent_type_labelslugbased on the public event page name
An internal instruction sheet for building structured event pages in this repo. Use it when collecting details, creating the event JSON, and verifying the generated event page and archive listing.
src/content/events/event.schema.jsonpython3 scripts/rebuild_site.pytitlesummaryevent_type and event_type_labelslug based on the public event page namestart_iso and end_isodisplay_datedisplay_date_compactdisplay_timetimezonelocation_namelocation_type: virtual, in_person, or hybridlocation_url when usefulregistration_urlsource_url if there is an origin pageaudiences arraytags arrayhosts arrayagenda arraysections arrayhero_image_src optional override for a specific event photoCreate a new file in src/content/events/. Keep the filename short and predictable, usually based on the event title and date.
The slug should look like et-event-your-event-name.html. The build uses that slug to generate the final public page.
Use short audience labels, concise tags, a readable agenda, and content sections that are easy to scan. Avoid filler or duplicate bullets.
The repo already includes src/content/events/event.schema.json. If a field is required there, it should be present in the new event file.
{
"slug": "et-event-your-event-name.html",
"title": "Event Title",
"summary": "One-sentence event summary.",
"status": "scheduled",
"start_iso": "2026-04-15T10:00:00-05:00",
"end_iso": "2026-04-15T11:00:00-05:00",
"display_date": "Wednesday, April 15, 2026",
"display_date_compact": "Apr 15, 2026",
"display_time": "10 to 11 a.m.",
"timezone": "America/Chicago",
"location_name": "Microsoft Teams",
"location_type": "virtual",
"location_url": "",
"event_type": "workshop",
"event_type_label": "Workshop",
"registration_url": "https://example.com",
"source_url": "",
"hero_image_src": "media/your-event-photo.jpg",
"audiences": ["Faculty", "Staff"],
"tags": ["AI", "Workshop"],
"hosts": ["Enterprise Technology"],
"agenda": [{ "time": "10:00 a.m.", "label": "Welcome" }],
"sections": [{ "title": "About this event", "paragraphs": ["..."] }]
}
Get the title, summary, date, time, timezone, location, registration link, hosts, event type, tags, and a short agenda before asking for the build.
Run python3 scripts/new_content_starter.py event "Your Event Title" to create a safe draft starter in tmp/content-starters/events/. When the content is ready, rerun with --live or copy it into src/content/events/.
Run python3 scripts/rebuild_site.py. The event page and archive entry are generated from the structured content automatically.
Check the generated event page and the archive listing in et-events.html. Confirm the date, time, status, registration link, and event type badge all render correctly.
Paste this block and fill in the values. It maps directly to the event model used in this repo.
Title:
Date:
Start time:
End time:
Timezone:
Location name:
Location type:
Registration URL:
Summary:
Hosts:
Event type label:
Tags:
Hero image path (optional):
Audiences:
Agenda:
Description / sections:
start_iso and end_iso use the right offset.location_type matches the schema exactly.et-events.html.