πŸ“…

Cambridge Events

A community-driven local events aggregator

Bringing together events from 20+ venues across Cambridge & Somerville

The Problem

The current Cambridge Day events page

πŸ‘€ Manual Process

A freelancer manually visits dozens of venue websites each week to compile the events list

πŸ“œ Wall of Text

Output is a long, unstructured list that's difficult to scan and parse through

πŸ” Hard to Search

No way to filter by date, category, venue, or location - you have to read everything

πŸ—ΊοΈ No Map View

Can't see events by location or find what's happening near you

What if we could automate this and make it searchable?

The Solution

An automated system that aggregates events from local venues
and makes them searchable in one place

20+ Venues

Local sources

β†’

Automated Scrapers

Daily collection

β†’

Validation

Quality control

β†’

Unified API

Easy access

β†’

Web & Chat

User interface

Sources We Aggregate

Events from venues across Cambridge, Somerville, and Harvard Square

Club Passim
The Sinclair
Regattabar
Middle East
Brattle Theatre
A.R.T.
The Lilypad
Comedy Studio
Harvard Book Store
Porter Square Books
Lamplighter Brewing
Aeronaut Brewing
Dance Complex
Sanders Theatre
Harvard Art Museums
Cambridge Gov
Arts at the Armory
Somerville Theatre
First Parish
+ many more...

How It Works: Web Scraping

Each venue has a custom scraper that understands its website structure

🌐 Fetch Web Pages

Automated browsers visit venue websites and retrieve their event listings

πŸ”Ž Parse HTML

Extract event details: title, date, time, venue, description, and category

βœ… Validate Data

Ensure events have required fields, valid dates, and clean formatting

πŸ”„ Deduplicate

Remove duplicate events that appear on multiple sites

Technology Stack

Built with modern, reliable open-source tools

Python FastAPI BeautifulSoup Selenium Pydantic GitHub Actions Railway Groq AI

Backend

Python scrapers with FastAPI serving a REST API

Automation

GitHub Actions runs scrapers daily at 6 AM UTC

Hosting

Railway auto-deploys on every push to main

AI Chat

Groq's Llama 3.3 70B for natural language queries

REST API

A clean, fast API that developers can build on

/events

List all events with filtering by date, category, venue

/events/search

Full-text search across titles and descriptions

/events/slim

Lightweight endpoint for maps and lists

/categories

Music, Theater, Lectures, Food & Drink, and more

/sources

See all venues we aggregate from

/stats

Event counts and data freshness info

AI-Powered Chat

Ask questions in natural language and get personalized recommendations

πŸ’¬ Natural Language

"What jazz shows are happening this weekend?"

πŸ‘¨β€πŸ‘©β€πŸ‘§ Family Aware

"What can I do with my toddler on Saturday?"

🎯 Smart Filtering

"Free events near Harvard Square tonight"

πŸ€– Context Aware

Remembers conversation context for follow-up questions

Powered by Llama 3.3 70B via Groq - fast inference with 500 events in context

Event Categories

Events are automatically categorized for easy discovery

🎡 Music

Concerts, jazz, folk, rock, classical performances

🎭 Theater

Plays, comedy shows, improv, musicals

🎨 Arts & Culture

Museum exhibits, gallery openings, art shows

🎀 Lectures

Author readings, talks, book signings, seminars

🍺 Food & Drink

Tastings, brewery events, food festivals

🀝 Community

Meetups, fundraisers, volunteer opportunities

Calendar Integration

Add events directly to your personal calendar with one click

πŸ“… Google Calendar

Direct link opens Google Calendar with event pre-filled

πŸ“§ Outlook

Works with Outlook.com and Office 365 calendars

πŸ“± ICS Download

Download .ics file for Apple Calendar, any app

πŸ”— API Endpoint

/events/{id}/calendar.ics for programmatic access

Data Quality Pipeline

Multiple layers ensure accurate, useful event data

Scrape

Raw data

β†’

Clean

Fix formatting

β†’

Validate

Check required fields

β†’

Geocode

Add coordinates

β†’

Deduplicate

Remove copies

Fully Automated

The system runs itself with no manual intervention needed

⏰ Daily Scraping

GitHub Actions triggers scrapers every day at 6 AM UTC automatically

πŸ’Ύ Auto-Commit

New events are committed to the repository and pushed

πŸš€ Auto-Deploy

Railway detects changes and deploys the updated API instantly

πŸ“Š Monitoring

Logs track scraper health and catch any issues early

By the Numbers

2,600+
Events
20+
Sources
8
Categories
Daily
Updates

Fresh data every day, covering events for the next 30+ days

Community Contributions

Users can submit events that aren't captured by scrapers

πŸ“ Event Submission Form

Simple web form to add community events, private gatherings, or one-off happenings

βœ‰οΈ Email Notifications

Admins receive email alerts when new events are submitted for review

βœ… Approval Workflow

Events are reviewed and approved before appearing publicly

πŸ”„ Weekly Sync

Approved events are automatically added to the main database

Open Source

The entire project is available on GitHub

πŸ“– Transparent

See exactly how every scraper works and how data is processed

πŸ”§ Extensible

Easy to add new venue scrapers following the base pattern

🀝 Contributions Welcome

Anyone can submit pull requests for new features or venues

πŸ“š Well Documented

Clear instructions for running locally and adding scrapers

Who Is This For?

🏠 Local Residents

Discover what's happening in your neighborhood this week

πŸŽ“ Students

Find free lectures, concerts, and campus events

πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Families

Family-friendly filtering helps find kid-appropriate activities

πŸ‘¨β€πŸ’» Developers

Build apps using the free API - no authentication required

System Architecture

20+ Venues
Passim, Sinclair, Brattle...
β†’
Scrapers
BeautifulSoup + Selenium
β†’
Pipeline
Validate β†’ Dedupe β†’ Geocode
β†’
events.json
2,600+ events
↓
FastAPI
/events   /search   /chat   /calendar.ics
↓
Web App
React + Mapbox
AI Chat
Groq + Llama 3.3
Developers
REST API

Try It Now

The API is live and free to use

API Base URL

web-production-00281.up.railway.app

Documentation

/docs (Swagger UI)

πŸ™

Thank You

Questions?

Built with Python, FastAPI, and a love for local community

GitHub: github.com/karakotaram/cambridge-events-api

1 / 19