Event schema for web extraction
An event schema captures what people need to know about something happening at a time and place: the event name, start and end dates, venue, location, organizer, ticket price, and a link to register. Teams extract this to build event calendars, aggregate conferences or concerts into one feed, monitor what competitors are hosting, or power alerts when relevant events are announced. A schema turns each listing into a clean record you can sort by date and filter by city. Event pages describe times, places, and prices in wildly different ways, which makes describing fields more reliable than writing selectors for each source. You define what a start date or a venue is, and the model reads it from the rendered page. When a detail is missing, like a price for a free or unpriced event, the field comes back as null instead of a fabricated figure, so your calendar does not show made-up ticket costs and you can tell genuine gaps apart from extraction misses.
Fields in a Event schema
The fields teams most often extract for a event, what type each one is, and whether it is usually present.
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The event title as shown on the page, such as DevConf 2026 Spring Summit. This is the primary field for listings, search, and grouping, so it is required rather than optional. |
| startDate | string | yes | When the event begins, ideally as an ISO 8601 datetime including time zone where given. This is required so every record can be placed correctly on a calendar and sorted by date. |
| endDate | string | optional | When the event ends, in the same ISO 8601 style as startDate. Lets you render multi-day events accurately and detect overlaps when building a packed schedule of sessions. |
| venue | string | optional | The name of the place hosting the event, such as Civic Convention Center. Separate from the address so you can group events by venue and recognize recurring host locations. |
| location | string | optional | The address or city where the event is held, or a note like Online for virtual events. Returned as written so you keep the detail the page provides for mapping and filtering. |
| price | string | optional | The ticket price or range as shown, kept as text because events use varied phrasing like Free, From 25 USD, or tiered passes. Returns null when no price is listed rather than a guess. |
| organizer | string | optional | Who is running the event, a person, company, or group. Useful for grouping events by host and for tracking the activity of specific organizers across a series of listings. |
| registrationUrl | string | optional | The link to buy tickets or register. Gives attendees a direct path to sign up and lets an aggregator send users straight to the source listing instead of a generic page. |
The schema
Copy this and send it with any URL.
{
"name": "string",
"startDate": "string",
"endDate": "string",
"venue": "string",
"location": "string",
"price": "string",
"organizer": "string",
"registrationUrl": "string"
} Example output
Validated JSON back, matching the schema.
{
"name": "DevConf 2026 Spring Summit",
"startDate": "2026-09-14T09:00:00-07:00",
"endDate": "2026-09-16T17:00:00-07:00",
"venue": "Civic Convention Center",
"location": "Seattle, WA",
"price": "From 199 USD",
"organizer": "DevConf Collective",
"registrationUrl": "https://example.com/devconf-2026/register"
}