XooCode(){

CivicStructure

CivicStructure is a Place subtype for public structures: town halls, concert halls, airports, bus stations, bridges, cemeteries, parks, schools, stadiums. It adds one direct property: openingHours (Text, using the two-letter day code + 24-hour time format).

It has around 30 direct subtypes covering transportation (Airport, BoatTerminal, BusStation, SubwayStation, TrainStation), cultural institutions (Museum, MusicVenue, MovieTheater, StadiumOrArena, Zoo, Aquarium), public infrastructure (Bridge, Beach, Cemetery, FireStation, PoliceStation, GovernmentBuilding), and more.

Full example of schema.org/CivicStructure json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/CivicStructure
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "CivicStructure",
  "name": "Dunmore Community Center",
  "description": "Multi-purpose civic building housing the Dunmore municipal offices, a community meeting hall, and a rotating gallery of Lackawanna Valley artists.",
  "address": { "@type": "PostalAddress", "streetAddress": "22 Main St", "addressLocality": "Dunmore", "addressRegion": "PA", "postalCode": "18512", "addressCountry": "US" },
  "telephone": "+1-570-555-0177",
  "openingHours": "Mo-Fr 08:30-17:00, Sa 09:00-13:00",
  "geo": { "@type": "GeoCoordinates", "latitude": 41.4267, "longitude": -75.6324 },
  "photo": "https://xoocode.com/dunmore/community-center.jpg",
  "isAccessibleForFree": true
}
</script>

openingHours format

Use two-letter day codes (Mo, Tu, We, Th, Fr, Sa, Su) followed by a 24-hour time range: "Mo-Fr 09:00-17:00". Multiple ranges separate with comma: "Mo-Fr 09:00-12:00, Mo-Fr 13:00-17:00". For richer schedules (holidays, seasonal), prefer OpeningHoursSpecification.

When to use bare CivicStructure

Rarely. There is almost always a more specific subtype. Use bare CivicStructure only when the structure does not fit any of the 30 subtypes (an unusual civic installation, a historical building whose function has changed).

Minimal valid version

The smallest markup that still produces a valid CivicStructure 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.

schema.org/CivicStructure (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "CivicStructure",
  "name": "Dunmore Community Center",
  "openingHours": "Mo-Fr 08:30-17:00"
}
</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.

  • Local business / place knowledge panel (when applicable)
    Google docs

Common CivicStructure 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.

  1. 01

    openingHours as free text

    Wrong
    "openingHours": "Monday through Friday 8:30am - 5pm"
    Right
    "openingHours": "Mo-Fr 08:30-17:00"

    openingHours uses a compact machine-parseable format: two-letter day codes + 24-hour time ranges. Free text is silently dropped.

  2. 02

    Using CivicStructure when a subtype fits

    Wrong
    CivicStructure for an airport or museum
    Right
    Airport / Museum / TrainStation / Bridge, whichever matches

    Specific subtypes carry search-specific signals. Google's place cards and knowledge panels key on the specific type.

About the example data

The Dunmore Community Center, a civic building in Dunmore, PA used for elections, community meetings, and rotating art exhibitions.

Comments

Loading comments...

Leave a comment