Catalog/Event schema missing required properties (name/startDate/location)
SEO issue

Event schema incomplete: missing required fields

Event JSON-LD without name, startDate, or a location with a PostalAddress earns no Event rich result and no 'events near me' placement. Find incomplete Event markup free and add the required fields.

72
audited sites affected

What it means

This page contains Event structured data (or a subtype such as ConferenceEvent or PerformingArtsEvent), but one of the three required fields is absent or malformed: name (the event title), startDate (an ISO 8601 datetime), or location (a Place with a nested PostalAddress, or a location.url for online events). Without all three, Google generates no Event rich result.

Why it matters

Google's Event rich result surfaces event cards — name, date, location, ticket availability — directly in search, including the 'events near me' experience, above standard organic results for event-intent queries. The three required fields are a matched set: a missing name leaves nothing to display; a startDate without a timezone offset is ambiguous for timed events; and a location that is only a city name or a bare string does not satisfy the physical-location requirement from Google's June 2025 update. Online-only events must instead set eventAttendanceMode to OnlineEventAttendanceMode and provide location.url.

How to fix it

  1. Locate the Event JSON-LD block.
  2. Add name with the event title — not the venue name (a common mistake is putting the event name in location.name).
  3. Add startDate in ISO 8601. For timed events include the timezone offset; for all-day events use the date only, not T00:00:00.
  4. Add location as a Place with a nested PostalAddress — a venue name alone does not qualify.
  5. For online events, set eventAttendanceMode to OnlineEventAttendanceMode and provide location.url.
  6. Add offers.url to the ticketing page to unlock ticket data, and validate in the Rich Results Test.

Example

Before — JSON-LD
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "React Summit 2027"
}
After — JSON-LD
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "React Summit 2027",
  "startDate": "2027-06-14T09:00:00+02:00",
  "endDate": "2027-06-15T17:00:00+02:00",
  "location": {
    "@type": "Place",
    "name": "RAI Amsterdam",
    "address": {"@type":"PostalAddress","streetAddress":"Europaplein 24","addressLocality":"Amsterdam","addressCountry":"NL"}
  },
  "eventStatus": "https://schema.org/EventScheduled"
}

name, startDate and a location are required. For an online event, set location to a VirtualLocation with a url instead of a Place.

When it's not a problem

A page listing multiple events may use an ItemList of Event nodes that intentionally omit detail-level fields; verify at the individual event detail page. Evergreen content that uses Event as a semantic type without intending Google eligibility, or content for third-party tooling, can be suppressed per-URL. Past events still warn when fields are absent, but valid markup on a past event is harmless. This rule is separate from schema.invalid (structurally broken markup).

How Crawlinx detects it

We check every Event JSON-LD block for name, startDate and location. A bare string location does not satisfy the requirement — a physical event needs a Place with a PostalAddress, an online event needs a VirtualLocation with a url.

How common is it?

72 audited sites in our corpus currently show this issue. The breakdowns below show which platforms, gatekeepers, verticals and countries are most exposed.

FAQ

What are the required Event schema properties?
name, startDate and location. location must be a Place with a PostalAddress for in-person events, or a VirtualLocation with a url for online events.
Do online-only events need a physical address?
No. Set location to {"@type":"VirtualLocation","url":"..."} and add eventAttendanceMode OnlineEventAttendanceMode. Google won't expect a street address then.
Why did my event stop showing after it passed?
A startDate in the past is dropped from the event experience — that's the separate schema.stale_date signal. Remove or update ended events so the markup stays current.
Breakdowns

CMS

View breakdown →

Category

View breakdown →

Related
Catalog Article schema missing recommended properties (Top Stories / image carousel) BreadcrumbList present but structurally incomplete Deep page has no BreadcrumbList structured data Comma decimal in schema ratingValue/price (invalid number) Deprecated data-vocabulary.org markup (no rich-result eligibility) Dataset schema incomplete (name/description; Dataset Search only) Deprecated schema type with no Google rich result Category CMS FAQPage structured data (rich result removed May 2026) Schema describes content not visible on the page Rich-result schema missing required properties JobPosting schema missing required properties LocalBusiness schema missing required properties (name/address) JSON-LD block missing @context or @type No structured data detected Product schema missing required or recommended properties QAPage schema incomplete (mainEntity Question with an answer) Recipe schema missing required properties (name/image) Review schema missing required properties (author/itemReviewed/reviewRating) SoftwareApplication schema incomplete (name/offers-or-rating/recommended) Structured-data date has already passed (stale event/job/offer) VideoObject schema missing required properties (name/thumbnailUrl/uploadDate)

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →