Practical guide and verification
Markup must match visible event content
Structured data should describe the same event details that visitors can see on the page. Adding ticket prices, performers or status only to JSON-LD while hiding or contradicting them in the visible page can make the markup misleading.
Attendance mode determines location requirements
In-person events need a physical Place and address, online events need a VirtualLocation URL, and mixed events can require both. Review the attendance/location evidence before publishing rather than relying on syntactically valid JSON alone.
Keep event status current
Scheduled, postponed, cancelled, moved-online and rescheduled states communicate materially different information. Update eventStatus when circumstances change, and keep dates and visible notices synchronized with the markup.
Ticket data should describe a real offer
Price, currency, availability, valid-from date and ticket URL belong to an actual offer. Use zero for a genuinely free event where appropriate rather than inventing a price solely to fill a recommended property.
Validate the deployed page separately
The complete-schema workspace can check field presence and internal consistency locally. Search engines still decide eligibility based on their current documentation, the rendered page, crawlability, policies and the structured data they actually fetch.