Event: missing required properties
seo.schema.schema_rule_missing_event
- Outcome class
- Automatic. An automated check that can report a confirmed violation.
- Area
- SEO, structured data
What the rule checks
Scope. Applies to JSON-LD nodes of type Event in the audited document (top level, top-level arrays, @graph entries; full schema.org IRIs count as the short type). Microdata and RDFa are outside this method.
Expectation. Fails when name, startDate or location is missing, or a rescheduled event lacks previousStartDate. Required present but recommended missing: needs_review (Google's Rich Results Test reports missing recommended properties as non-critical issues (eligible, but a human should decide whether the data exists)). All present passes. Nested property values (an author Person, a provider Organization) are not nodes of their own and are not assessed; a page without a node of the type is not applicable. A page whose structured-data collection fails is not run for every feature, never clean.
Source. https://developers.google.com/search/docs/appearance/structured-data/event (required: name, startDate, location; recommended: description, endDate, eventStatus, image, offers, organizer, performer; previousStartDate when rescheduled)
Detection: detect_structured_data; needs dom.
Failing example
The check reports a violation here. Corpus case schema_rules_dynamic_injection. The page may contain further findings for other rules.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Structured data injected after load</title>
<script>
document.addEventListener("DOMContentLoaded", function () {
var s0 = document.createElement("script"); s0.type = "application/ld+json"; s0.textContent = "{\"@context\": \"https://schema.org\", \"@type\": \"Article\", \"headline\": \"Injected\", \"author\": {\"@type\": \"Person\", \"name\": \"Ada\"}, \"datePublished\": \"2026-01-01\", \"dateModified\": \"2026-01-02\", \"image\": \"https://example.com/a.jpg\"}"; document.head.appendChild(s0);
var s1 = document.createElement("script"); s1.type = "application/ld+json"; s1.textContent = "{\"@context\": \"https://schema.org\", \"@type\": \"Event\", \"name\": \"Webinar\"}"; document.head.appendChild(s1);
});
</script>
</head>
<body>
<header><p>Example</p></header>
<main>
<h1>Structured data injected after load</h1>
<p>Structured data corpus page.</p>
</main>
<footer><p>Footer</p></footer>
</body>
</html>Passing example
The check passes here and reports nothing. Corpus case schema_rules_complete. The page may contain further findings for other rules.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Schema rules corpus — complete/valid JSON-LD for all 17 features</title>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Article","headline":"Example headline","author":{"@type":"Person","name":"Ada"},"datePublished":"2026-01-01","dateModified":"2026-01-02","image":"https://example.com/article.jpg"}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Product","name":"Complete product","image":"https://example.com/product.jpg","review":{"@type":"Review","author":{"@type":"Person","name":"Ada"}},"aggregateRating":{"@type":"AggregateRating","ratingValue":4.5,"reviewCount":10},"offers":{"@type":"Offer","price":"19.99","priceCurrency":"USD"}}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://example.com"},{"@type":"ListItem","position":2,"name":"Current"}]}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Organization","name":"Example Inc","url":"https://example.com","logo":"https://example.com/logo.png","address":{"@type":"PostalAddress","streetAddress":"Main Street 1"},"telephone":"+1-555-0100","sameAs":["https://social.example/example"]}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"LocalBusiness","name":"Example Shop","address":{"@type":"PostalAddress","streetAddress":"Main Street 1"},"telephone":"+1-555-0100","url":"https://example.com","openingHoursSpecification":{"@type":"OpeningHoursSpecification","dayOfWeek":"Monday","opens":"09:00","closes":"18:00"},"image":"https://example.com/shop.jpg","priceRange":"$$","geo":{"@type":"GeoCoordinates","latitude":52.5,"longitude":13.4}}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Question 1","acceptedAnswer":{"@type":"Answer","text":"Answer 1"}}]}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Event","name":"Conference","startDate":"2026-09-01","endDate":"2026-09-02","location":{"@type":"Place","name":"Hall","address":"Main Street 1"},"description":"Annual conference","eventStatus":"https://schema.org/EventScheduled","image":"https://example.com/event.jpg","offers":{"@type":"Offer","price":0},"organizer":{"@type":"Organization","name":"Example"},"performer":{"@type":"Person","name":"Speaker"}}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Recipe","name":"Soup","image":"https://example.com/soup.jpg","author":{"@type":"Person","name":"Cook"},"datePublished":"2026-01-01","description":"A soup","recipeIngredient":["water"],"recipeInstructions":["Cook"],"recipeYield":"2 servings","totalTime":"PT30M"}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"VideoObject","name":"Demo","thumbnailUrl":"https://example.com/thumb.jpg","uploadDate":"2026-01-01","contentUrl":"https://example.com/video.mp4","description":"Demo video","duration":"PT1M","interactionStatistic":{"userInteractionCount":1},"regionsAllowed":"DE"}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"JobPosting","title":"Engineer","datePosted":"2026-01-01","description":"<p>Role</p>","hiringOrganization":{"@type":"Organization","name":"Example"},"jobLocation":{"@type":"Place","address":{"addressCountry":"DE"}},"baseSalary":{"value":50000},"employmentType":"FULL_TIME","identifier":"job-1","validThrough":"2026-12-31"}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"SoftwareApplication","name":"App","offers":{"price":0},"review":{"reviewRating":{"ratingValue":5}},"applicationCategory":"BusinessApplication","operatingSystem":"Web"}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"ProfilePage","mainEntity":{"@type":"Person","name":"Ada"},"dateCreated":"2026-01-01","dateModified":"2026-02-01"}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"ItemList","name":"Items","numberOfItems":2,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://example.com/1"},{"@type":"ListItem","position":2,"url":"https://example.com/2"}]}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebPage","name":"About","url":"https://example.com/about","description":"About Example","inLanguage":"en","isPartOf":{"@type":"WebSite","name":"Example"},"author":{"@type":"Organization","name":"Example"},"publisher":{"@type":"Organization","name":"Example"},"image":"https://example.com/about.jpg"}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebSite","name":"Example","url":"https://example.com","inLanguage":"en","publisher":{"@type":"Organization","name":"Example"},"potentialAction":{"@type":"SearchAction"}}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Person","name":"Ada Example","url":"https://example.com/team/ada","image":"https://example.com/ada.jpg","jobTitle":"Engineer","worksFor":{"@type":"Organization","name":"Example"},"sameAs":["https://social.example/ada"]}
</script>
</head>
<body>
<h1>Schema rules corpus fixture (complete/valid JSON-LD)</h1>
</body>
</html>This page is generated from the rule catalogue and the rule contracts; see therule overview for how the outcome classes are derived.