Live music, trivia nights, karaoke, and watch parties are what make your bar unique. This blueprint structures those events so AI can answer "What's happening tonight?" or "Where's trivia near me?"
AI systems look for these signals on a bar or pub events page:
Event node needs a name, description, and startDate so AI knows what is happening and when.location references your BarOrPub node so AI ties the event to your venue.MusicEvent for live music or the general Event for trivia and other activities.performer or organizer gives AI a name to surface when users search for specific acts or hosts.offers with price and availability tells AI if the event is free or ticketed.WebPage and BreadcrumbList position the events page within your site hierarchy.Each field in the template below serves a specific role in how AI systems discover, classify, and recommend your business.
Researched and tested by Minnesota AI
nameurladdressCopy 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 Bar or Pub 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. Bar name 2. City 3. Country 4. Domain 5. Event description 6. Event end datetime 7. Event image 8. Event name 9. Event price 10. Event slug 11. Event start datetime 12. Faq answer 13. Faq question 14. Performer name 15. Performer type 16. State 17. Street address 18. Zip 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 Bar or Pub 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. Duplicate the Event node for each event you host.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BarOrPub",
"@id": "https://YOUR_DOMAIN.com/#bar",
"name": "YOUR_BAR_NAME",
"url": "https://YOUR_DOMAIN.com/",
"address": {
"@type": "PostalAddress",
"streetAddress": "YOUR_STREET_ADDRESS",
"addressLocality": "YOUR_CITY",
"addressRegion": "YOUR_STATE",
"postalCode": "YOUR_ZIP",
"addressCountry": "YOUR_COUNTRY"
}
},
{
"@type": "Event",
"@id": "https://YOUR_DOMAIN.com/events/YOUR_EVENT_SLUG/#event",
"name": "YOUR_EVENT_NAME",
"description": "YOUR_EVENT_DESCRIPTION",
"startDate": "YOUR_EVENT_START_DATETIME",
"endDate": "YOUR_EVENT_END_DATETIME",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@id": "https://YOUR_DOMAIN.com/#bar"
},
"performer": {
"@type": "YOUR_PERFORMER_TYPE",
"name": "YOUR_PERFORMER_NAME"
},
"organizer": {
"@id": "https://YOUR_DOMAIN.com/#bar"
},
"offers": {
"@type": "Offer",
"price": "YOUR_EVENT_PRICE",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://YOUR_DOMAIN.com/events/YOUR_EVENT_SLUG/"
},
"image": "https://YOUR_DOMAIN.com/YOUR_EVENT_IMAGE.jpg"
},
{
"@type": "WebPage",
"@id": "https://YOUR_DOMAIN.com/events/",
"name": "Events — YOUR_BAR_NAME",
"isPartOf": {
"@id": "https://YOUR_DOMAIN.com/#website"
},
"breadcrumb": {
"@id": "https://YOUR_DOMAIN.com/events/#breadcrumb"
}
},
{
"@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 occurrence should have its own Event node with a specific startDate. AI systems need concrete dates to answer "What's happening this Friday?" accurately.
Set the price to "0" and keep the priceCurrency. This tells AI the event is free without ambiguity.
MusicEvent is more specific and helps AI distinguish live music from trivia or watch parties. Use it when the event is primarily a musical performance, and the general Event type for everything else.