LocalBusiness Schema for AI Assistants: How Siri, Google AI, and ChatGPT Find Local Services
When someone asks their AI assistant to find a plumber, dentist, or contractor nearby, structured data determines who appears. Here's how to implement LocalBusiness schema for AI agent discovery.
LocalBusiness Schema for AI Assistants: How Siri, Google AI, and ChatGPT Find Local Services
> TL;DR
> - AI assistants are replacing Google Maps for local service discovery — they read schema, not just reviews
> - LocalBusiness schema with hours, service area, specialties, and booking info is what gets you surfaced
> - AI agents can now book appointments autonomously — your schema needs to support that flow
> - Free schema audit for your local business →
Updated: April 21, 2026
---
The Local Discovery Shift
"Find me a DWI attorney in Essex County with a free consultation."
"Book me a plumber in Montclair for Saturday morning — good reviews, licensed."
"What's the best HVAC company near me that services Carrier systems?"
These queries used to go to Google Maps. Increasingly, they go to AI assistants — Siri, Google AI, ChatGPT, Perplexity — which synthesize answers from structured data, not just location pins.
The difference matters because the ranking signals are completely different. Google Maps ranks on proximity, review count, and listing completeness. AI assistants rank on schema completeness, description specificity, and the ability to answer the buyer's specific criteria from structured data.
A plumber with 3 Google reviews but complete, detailed LocalBusiness schema can outrank a competitor with 300 reviews but no structured data in an AI assistant recommendation.
---
The Complete LocalBusiness Schema
{
"@context": "https://schema.org",
"@type": ["LocalBusiness", "Attorney"],
"name": "Essex County DWI Defense — Law Office of James Harmon",
"description": "DWI and DUI defense attorney serving Essex County, NJ. Free consultations. 20+ years experience. Former municipal prosecutor. Handles first offense, second offense, refusal cases, commercial DWI, and CDL holders.",
"url": "https://essexdwidefense.com",
"telephone": "+1-973-555-0123",
"email": "contact@essexdwidefense.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street, Suite 400",
"addressLocality": "Newark",
"addressRegion": "NJ",
"postalCode": "07102",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.7357,
"longitude": -74.1724
},
"areaServed": [
{ "@type": "City", "name": "Newark" },
{ "@type": "City", "name": "Montclair" },
{ "@type": "City", "name": "Bloomfield" },
{ "@type": "City", "name": "West Orange" },
{ "@type": "County", "name": "Essex County" }
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "10:00",
"closes": "14:00"
}
],
"specialOpeningHoursSpecification": {
"@type": "OpeningHoursSpecification",
"description": "24/7 emergency consultations available by phone for recent DWI arrests"
},
"priceRange": "$$",
"paymentAccepted": "Cash, Credit Card, Payment Plans Available",
"currenciesAccepted": "USD",
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "DWI Defense Consultation",
"description": "Free initial consultation. Case evaluation, defense strategy, and fee discussion."
},
"price": "0",
"priceCurrency": "USD",
"description": "Free — no obligation"
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "First Offense DWI Defense",
"description": "Full representation for first-offense DWI charges in Essex County municipal courts."
}
}
]
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "87",
"bestRating": "5"
},
"sameAs": [
"https://www.avvo.com/attorneys/james-harmon",
"https://www.google.com/maps?cid=123456789"
],
"additionalProperty": [
{ "@type": "PropertyValue", "name": "Free Consultation", "value": "Yes — call or book online" },
{ "@type": "PropertyValue", "name": "Languages", "value": "English, Spanish" },
{ "@type": "PropertyValue", "name": "Emergency Availability", "value": "24/7 for recent arrests" },
{ "@type": "PropertyValue", "name": "Best For", "value": "First offense DWI, refusal cases, CDL holders, commercial vehicle DWI" }
]
}
---
The Fields AI Assistants Check for Local Services
areaServed — The Most Important Field Most Businesses Miss
When someone asks "DWI attorney in Montclair," the AI assistant checks areaServed to match location. Without it, your business might get filtered out simply because the assistant can't confirm you serve that area.
List cities, counties, and regions explicitly. Don't rely on your address alone — an address in Newark doesn't tell an AI you serve Montclair 5 miles away.
openingHoursSpecification — AI Booking Agents Need This
AI scheduling agents — Siri booking an appointment, ChatGPT finding an available slot — read openingHoursSpecification to check availability before recommending or booking. Without it, an agent can't answer "are they open Saturday?" and will either skip you or hedge.
Include specialOpeningHoursSpecification for emergency availability, holiday hours, or after-hours contact options.
hasOfferCatalog — What Services You Offer and What They Cost
AI assistants matching "free consultation" queries read this field directly. A dentist that offers a free new patient exam should declare it in hasOfferCatalog — not just mention it in body text.
List your primary services as Service entities with descriptions. For services with set pricing, include Offer with price.
additionalProperty — The Matching Layer
The fields that map to specific buyer criteria:
Free Consultation: Yes — critical for service businesses, one of the most common filtersLanguages: English, Spanish — matches queries for bilingual servicesEmergency Availability: 24/7 — matches urgent service queriesBest For: [specific cases] — maps to "best for X" query patterns---
How AI Booking Agents Work for Local Services
The next frontier for local business AI visibility isn't just recommendations — it's AI agents that book appointments.
Apple Intelligence with Calendar access, Google AI with Maps, and ChatGPT operator mode can all initiate appointment bookings. The flow:
1. User: "Book me a dentist appointment for a cleaning this week in Montclair"
2. Agent searches its local business index — reads LocalBusiness schema with areaServed: Montclair, openingHoursSpecification, and hasOfferCatalog including cleaning services
3. Agent identifies available slots from openingHoursSpecification
4. Agent either surfaces options for human confirmation or — in agentic mode — initiates the booking via your scheduling system or MCP server
For businesses using Calendly, Acuity, or similar scheduling tools: add your booking URL to schema:
"potentialAction": {
"@type": "ReserveAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://calendly.com/your-business/consultation",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform"
]
},
"result": {
"@type": "Reservation",
"name": "Consultation Booking"
}
}
This ReserveAction tells AI booking agents there's a direct scheduling path — no phone call required, no friction. Agents prefer bookable businesses when completing scheduling tasks.
---
LocalBusiness Schema by Business Type
Legal (Attorney, Law Firm)
Use
@type: ["LocalBusiness", "Attorney"] or LegalService. Key fields: areaServed, practice areas in hasOfferCatalog, free consultation in additionalProperty, bar admissions.Medical / Dental
Use
@type: ["LocalBusiness", "Dentist"] or Physician, MedicalClinic. Key fields: insurance accepted in additionalProperty, services in hasOfferCatalog, new patient availability, telehealth option.Home Services (Plumber, HVAC, Electrician)
Use
@type: ["LocalBusiness", "HomeAndConstructionBusiness"] or Plumber, HVACBusiness, Electrician. Key fields: areaServed, emergency availability, licensed/insured in additionalProperty, service brands supported.Restaurant / Food Service
Use
@type: ["LocalBusiness", "Restaurant"]. Key fields: servesCuisine, menu URL, hasDeliveryMethod, acceptsReservations.Personal Services (Salon, Trainer, Coach)
Use
@type: ["LocalBusiness", "BeautySalon"] or SportsActivityLocation, HealthAndBeautyBusiness. Key fields: potentialAction: ReserveAction for booking, services in hasOfferCatalog, staff names for practitioners.---
Checklist: AI-Ready LocalBusiness Schema
@type set to correct business type (not just generic LocalBusiness)address with full PostalAddressgeo with lat/lng coordinatesareaServed listing all cities and counties servedopeningHoursSpecification for all operating daystelephone and emailhasOfferCatalog with primary servicesadditionalPropertyaggregateRating with real review countpotentialAction: ReserveAction with booking URL (if applicable)additionalProperty for languages, emergency availability, certifications---
Related articles: