Case study · Data pipelines · Multi-site
Events Naples
The events engine for Southwest Florida. It reads venue calendars in a dozen formats, normalizes and dedupes them, and publishes one clean feed across four city sites and the rest of the network.
- One codebase, four city sites
- Reads calendars in a dozen formats, even flyers
- Feeds every publication in the network

The problem
Event listings in Southwest Florida are scattered across venue sites, ticketing platforms, chambers and social posts. Every visitor guide either ignores events or shows a stale, hand-entered list.
What I built
A single events platform that reads dozens of venue calendars, normalizes everything into one schema, and publishes it across a family of regional sites: Events Naples, Events Bonita, Events Fort Myers and Events Marco.
- Ingestion that meets venues where they are. Adapters cover iCal feeds, ticketing and booking APIs, website builders like Wix and Squarespace, and plain HTML. When a brewery only posts its monthly calendar as an image, Claude Sonnet reads the image and turns it into events.
- Dedupe in layers. Admin edits always win. After that, events are matched by exact hash, by a seen-before marker, by fuzzy title at the same venue and date, and by recurrence rule.
- AI-assisted sorting. Claude Haiku sorts every event into nine fixed categories, from Live Music to Family & Kids, and scores quality before publish. Trusted sources skip the check.
- One codebase, four domains. The hostname picks the market. Naples, Bonita and Fort Myers share events with each other, but Marco is its own network and never mixes.


Distribution
The feed earns its keep downstream:
- Newsletters go out Thursday (“This Weekend”) and Monday (“This Week”).
- Daily social posts go to Facebook and Instagram: a branded image of the top events, with captions written by Claude.
- Featured spots are either paid through Stripe or filled by AI picks for each market each day.
- The same feed powers the events sections of Visit Naples, Visit Marco Island and Naples Day.
Why it matters for clients
This is the kind of system most organizations eventually need: many messy inputs, one clean model, and many outputs. It applies to directories, listings, inventory and calendars.