Start free

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"
}

Event schema: FAQ

What date format should I expect for startDate and endDate?
You set it through your schema. Ask for ISO 8601 datetimes and the model normalizes the page's wording toward that format, including a time zone when one is given, which makes calendars and sorting reliable. If a page shows no clear start time, startDate can still capture the date alone, and a missing end time returns null rather than an invented one.
How are free or unpriced events handled?
The price field is text, so a free event can come back as Free if the page says so. When no price information appears at all, the field returns null instead of a fabricated number. Because output is validated against your schema before it is returned, you can trust that any price shown was actually present on the listing.
Can Extracto extract events from any ticketing site?
It works on any public event page, including JavaScript-rendered and anti-bot-protected listings, because every request runs through a real headless browser with a managed bypass layer and proxies handled for you. Large ticketing platforms behind Cloudflare, DataDome, or PerimeterX are handled by that bypass layer; the exception is login-gated content that needs session cookies, available on Enterprise. Respect each site's robots.txt and terms of service before extracting at scale.
Can I aggregate events from several sources into one calendar?
Yes. Because the schema describes meaning rather than markup, the same definition runs across many sites that lay out events differently, giving you uniform records to merge. Normalizing dates to ISO 8601 and keeping venue and location separate makes deduplication and calendar rendering straightforward once the records are combined into a single feed.