The events page is where AI learns what is happening at your venue and when. Structured event data lets AI answer queries like "events near me this weekend" or "live music tonight" by matching your events to what people are looking for. This blueprint gives you the JSON-LD graph for a machine-readable events listing.
An events page without structured data is a calendar that only humans can read. With Event nodes, AI can parse each event's date, time, location, performers, and ticket availability, making your venue far more visible in time-sensitive entertainment queries.
Event node needs a name, startDate, endDate, and description so AI can match it to specific queries about what is happening and when.location property referencing your EntertainmentBusiness connects each event to your venue, so AI knows where it takes place.offers property with Offer nodes containing price, currency, availability, and a ticket URL lets AI surface pricing and purchase options.performer property helps AI answer queries about specific artists or acts appearing at your venue.Copy this prompt and paste it into Claude, ChatGPT, Cursor, or any AI coding tool. It will ask for your business details and generate ready-to-use JSON-LD schema for your page.
You are implementing AIFDS-compliant JSON-LD structured data for a Entertainment Business Events page. AIFDS (AI-Friendly Data Structure) is a schema framework built on research into which structured data fields AI systems actually read, parse, and use when deciding whether to cite a page. Documentation at aifds.org. Before generating any code, ask me for the following information in a single numbered list. Do not generate schema until I have answered every required field. REQUIRED — do not proceed without these: 1. Domain 2. End datetime 3. Event description 4. Event image 5. Event name 6. Event slug 7. Faq answer 8. Faq question 9. Performer name 10. Sale start date 11. Start datetime 12. Ticket price 13. Ticket type 14. Venue name OPTIONAL — ask for these but proceed if I skip them: 1. Any additional details not covered above Once I provide the information, output a complete JSON-LD script block ready to paste into the <head> of my HTML page. Output requirements: - Valid JSON-LD wrapped in <script type="application/ld+json"> tags - schema.org vocabulary only - Every AIFDS-required field for this industry and page type included - Include this data attribute on the script tag: data-aifds="aifds.org Entertainment Business Events" - No placeholder text — omit missing optional fields rather than fill with examples - After the code block, list any optional fields skipped that would strengthen AI citation
Generated schema follows the AIFDS framework. Fields were selected based on research into AI crawler behavior. View the research at minnesota.ai
Copy the template below and replace every YOUR_* value with your own data. This block belongs in a <script type="application/ld+json"> tag in the <head> of your events page.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Event",
"@id": "https://YOUR_DOMAIN.com/events/YOUR_EVENT_SLUG/#event",
"name": "YOUR_EVENT_NAME",
"description": "YOUR_EVENT_DESCRIPTION",
"startDate": "YOUR_START_DATETIME",
"endDate": "YOUR_END_DATETIME",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@id": "https://YOUR_DOMAIN.com/#venue"
},
"performer": {
"@type": "Person",
"name": "YOUR_PERFORMER_NAME"
},
"organizer": {
"@id": "https://YOUR_DOMAIN.com/#venue"
},
"offers": {
"@type": "Offer",
"name": "YOUR_TICKET_TYPE",
"price": "YOUR_TICKET_PRICE",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://YOUR_DOMAIN.com/events/YOUR_EVENT_SLUG/tickets/",
"validFrom": "YOUR_SALE_START_DATE"
},
"image": "https://YOUR_DOMAIN.com/YOUR_EVENT_IMAGE.jpg"
},
{
"@type": "WebPage",
"@id": "https://YOUR_DOMAIN.com/events/#webpage",
"url": "https://YOUR_DOMAIN.com/events/",
"name": "Events — YOUR_VENUE_NAME",
"isPartOf": {
"@id": "https://YOUR_DOMAIN.com/#website"
}
},
{
"@type": "BreadcrumbList",
"@id": "https://YOUR_DOMAIN.com/events/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://YOUR_DOMAIN.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Events",
"item": "https://YOUR_DOMAIN.com/events/"
}
]
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_1",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_1"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_2",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_2"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_3",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_3"
}
}
]
}
]
}
Yes. Each event should have its own Event node with unique dates, descriptions, and ticket information. If you list multiple events on one page, include multiple Event objects in the @graph array. AI treats each node as a distinct event it can recommend independently.
Use ISO 8601 format: 2026-03-15T19:00:00-06:00. Include the timezone offset so AI knows the exact local time. Dates without times or timezones create ambiguity that can lead to incorrect recommendations.
Yes. Past events with EventScheduled status can confuse AI into recommending something that already happened. Either remove past events from the structured data or change their eventStatus to EventCancelled or remove them entirely. Keep your event data current.