CityHall
CityHall is a direct GovernmentBuilding subtype for the seat of a municipal government: the building where the mayor's office, city council chambers, and clerk's office live. It has no unique properties, but the typed classification is what puts a page into Google's civic knowledge panel alongside the city's Wikipedia / Wikidata entry.
Populate the inherited properties exhaustively:
address,geo,telephone,url.openingHoursSpecification: business-hours for the clerk's office + council-meeting windows.containedInPlace: the City that the CityHall serves (entity-link with@id).parentOrganization: the GovernmentOrganization for the municipality.event: upcoming council meetings as typed Event entries for calendar-surface visibility.
Full example of schema.org/CityHall json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CityHall",
"@id": "https://dunmore.gov.example/borough-hall",
"name": "Dunmore Borough Hall",
"url": "https://dunmore.gov.example/borough-hall",
"description": "Seat of the Borough of Dunmore. Mayor's office, council chambers, borough clerk, treasurer.",
"telephone": "+1-570-555-0001",
"address": {
"@type": "PostalAddress",
"streetAddress": "400 South Blakely Street",
"addressLocality": "Dunmore",
"addressRegion": "PA",
"postalCode": "18512",
"addressCountry": "US"
},
"geo": { "@type": "GeoCoordinates", "latitude": 41.4237, "longitude": -75.6324 },
"publicAccess": true,
"isAccessibleForFree": true,
"openingHoursSpecification": [
{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "08:30", "closes": "16:30" }
],
"containedInPlace": { "@type": "City", "@id": "https://xoocode.com/reference/city/dunmore-pa", "name": "Dunmore" },
"parentOrganization": { "@type": "GovernmentOrganization", "name": "Borough of Dunmore" },
"event": [
{
"@type": "Event",
"name": "Borough Council Regular Meeting",
"startDate": "2026-04-21T19:00:00-04:00",
"endDate": "2026-04-21T21:00:00-04:00",
"eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
"location": [
{ "@type": "Place", "name": "Dunmore Borough Hall Council Chambers" },
{ "@type": "VirtualLocation", "url": "https://dunmore.gov.example/council/livestream" }
]
}
]
}
</script>Minimal valid version
The smallest markup that still produces a valid CityHall entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CityHall",
"name": "Dunmore Borough Hall",
"address": { "@type": "PostalAddress", "streetAddress": "400 South Blakely Street", "addressLocality": "Dunmore", "addressRegion": "PA" },
"containedInPlace": { "@type": "City", "name": "Dunmore" }
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsLocal business / civic structure knowledge panelprimary
Common CityHall mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
GovernmentBuilding on a city hall
WrongGovernmentBuilding on the mayoral seatRightCityHall — the specific subtypeSpecific-type classification drives civic knowledge-panel construction.
- 02
Missing containedInPlace to the City
WrongCityHall with no City linkageRightcontainedInPlace: City with @id matching the city's canonical entityEntity-resolved containment collapses your CityHall into the city's broader knowledge panel.
- 03
Council meetings in prose instead of Event
WrongMeeting calendar as HTML textRightTyped Event entries in the event arrayStructured Event entries surface in Google's calendar widgets and in AI-assistant 'when does council meet' queries.
Schema properties in this example
Also mentioned in 1 other example
CityHall also appears in GovernmentBuilding. See the full CityHall schema page for every reference.
About the example data
Dunmore Borough Hall, the fictional seat of the Borough of Dunmore, hosting council meetings and the mayor's office.
Comments
Loading comments...