SEO · Free tool
Event Schema Generator
Build Event JSON-LD with the right attendance mode, IST timing format, and INR offers. Eligible for Google's Event rich result and Knowledge Graph entries.
Paste into <head>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "React India 2026",
"description": "Annual React conference for Indian developers.",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"startDate": "2026-09-12T09:00:00+05:30",
"endDate": "2026-09-13T18:00:00+05:30",
"location": [
{
"@type": "Place",
"name": "Holiday Inn, Goa",
"address": "Mobor Beach, Cavelossim, Goa 403731"
}
],
"offers": {
"@type": "Offer",
"price": "4999",
"priceCurrency": "INR",
"availability": "https://schema.org/InStock",
"url": "https://reactindia.io"
},
"organizer": {
"@type": "Organization",
"name": "Geekrocket",
"url": "https://reactindia.io"
}
}
</script>IST timing format gotcha
Always use the offset format: 2026-09-12T09:00:00+05:30. Validators reject string forms like "IST". Both startDate and endDate need the offset; mixing offsets across the same event causes silent timezone drift in Google's display.
Hybrid events need both location types
For hybrid events, set eventAttendanceMode to MixedEventAttendanceMode and provide both a Place object (physical venue) and a VirtualLocation object (URL). Google then surfaces the event in both location-anchored and online-event sections. Pair this with the organization schema generator for the organising entity. The deeper India-specific notes are in HowTo, Recipe and Event schema for India.
Offers — required for ticketed events
- For paid events,
offers.priceandpriceCurrency: "INR"are required. - For free events, use
price: 0with availabilityFree. - The offer URL should point to your ticketing or registration page.
- availability should be one of
InStock,SoldOut, orPreOrder.
FAQ
Do I need both location and virtualLocation for hybrid events?
Yes - set eventAttendanceMode to MixedEventAttendanceMode and provide both Place (physical) and VirtualLocation (URL). Google then shows the event in both location-based and online-event surfaces.
How do I handle Indian Standard Time correctly?
Use the offset format: 2026-05-17T19:00:00+05:30. Avoid "IST" string - schema validators reject it. Start and end times both need the offset.
Is offers required for paid events?
Required for ticketed events to qualify for Google Event rich result. Include price, priceCurrency (INR), availability and url to the ticketing page. Free events use Free for availability and price 0.