Data Sources & Connection Status

Every event source we've tried connecting to for 313 Events, and the real, current status of that connection — no source is silently dropped.

← Back to calendar

Live & Automated

Running on a daily Vercel Cron job, writing straight into the database. No manual entry required.

SourceMethodConfidenceNotes
Ticketmaster Discovery API Official public API (free developer key) High Also includes TicketWeb, Front Gate, MoshTix & Universe — Ticketmaster sub-brands syndicated through the same API. api/cron-ticketmaster.js
WDET (101.9 FM) Official public JSON REST API (WordPress "The Events Calendar" plugin) High Verified live before building. Includes WDET's own programming plus community/partner events at other Detroit venues; WDET Travel's international trip listings are filtered out. api/cron-wdet.js
HALO Detroit HTML scrape of the venue's own site Moderate robots.txt places no restriction on this page. Parser built from a confirmed real event block, not guessed — still worth a spot-check after the first live run since it's a Wix site. api/cron-halo.js
Trinosophes HTML/text scrape of the venue's own site Low–moderate Page has zero structure to hook into (no containers, no JSON-LD) — parser was written from a description, not tested against live data. Verify its first real run. api/cron-trinosophes.js
Belle Isle Nature Center Official public JSON REST API (WordPress "The Events Calendar" plugin) High Verified live before building — clean field names, same plugin API as WDET. Small venue, usually only a handful of upcoming events at a time; that's expected, not a broken scraper. api/cron-belle-isle-nature-center.js
Metro Times XML sitemap + HTML scrape of individual event pages Blocked — infra, not policy The search/listing UI is blocked by robots.txt, but the sitemap of individual event pages isn't, and this cron is built to read that instead. The catch, confirmed 2026-08-25: the same URL fetches cleanly from outside Vercel but returns an explicit HTTP 403 every time the cron itself runs — a hard "forbidden," not a timeout or a soft failure — which points to Metro Times' bot-protection blocking Vercel's hosting IP ranges specifically, a common default for sites behind a WAF and unrelated to anything about this request or Vercel's plan tier. Tried switching to a standard browser User-Agent as a first fix; still a 403, confirming this is IP-based rather than header-based blocking. Leaving api/cron-metrotimes.js in place (it's correctly built and would work if run from anywhere else) but not chasing an IP-reputation problem further for now. Would still land as pending_review rather than auto-publish if it ever does connect, since it's a general community calendar (concerts, sports, everything).
Redford Theatre HTML scrape of the venue's own site Moderate robots.txt only blocks parameterized calendar views, not the base events page. Built from a real fetch of the live page, not guessed — still worth a spot-check on the first run. api/cron-redford-theatre.js
Cinema Detroit WordPress core REST API (wp/v2/pages) — no calendar plugin; each film is hand-published as its own page Low No dedicated events API on this site. At build time every published page was already past-dated, so this may upsert 0 rows until they publish something new — expected, not a bug, but worth an occasional manual check against the live site. api/cron-cinema-detroit.js
Dossin Great Lakes Museum HTML scrape of the Detroit Historical Society's combined events page, filtered by location Moderate The Dossin's own "events-listing" page is a Drupal lazy-loaded block that returns nothing to a plain fetch — this reads the general /events page instead and keeps only Dossin-tagged rows. Drupal's JSON:API exists at /jsonapi/node/event but denies anonymous reads of individual events. api/cron-dossin.js

Separately, these outlets' own general-news RSS/Atom feeds are polled for editorial coverage to match against events already in the database (rendered as "As seen in" on the matching event, and as standalone cards on radar.html when nothing matches but the article still looks like event coverage — see looksLikeEventCoverage()). This is a different data model from the event-listing sources above: no new events are created from these, only coverage of events that already exist.

SourceMethodConfidenceNotes
Metro Times (arts & culture) Outlet's own partner RSS feed High metrotimes.com/syndication/'s documented ?partner-feed=arts-culture path — real, valid RSS 2.0, verified live. This is Metro Times' own editorial writing, separate from the community-calendar sitemap api/cron-metrotimes.js already (unsuccessfully) scrapes for event listings above — no overlap.
BridgeDetroit (editorial) Outlet's own RSS feed High bridgedetroit.com/feed, linked from the site's own footer — real, valid RSS 2.0, verified live. Separate from this same outlet's "no events calendar" entry in "Checked — Nothing to Connect To" below, which was about event listings, not general news coverage.
WDET (general news/arts) Outlet's own RSS feed High wdet.org/feed/ — real, valid RSS 2.0, verified live. Mixes real event previews (including WDET's own "Metro Events Guide" roundups) with daily news segments; looksLikeEventCoverage() filters the latter out before storage.
Model D Media Feedburner-hosted RSS feed Unconfirmed feeds.feedburner.com/ModelDMedia, found via a third-party RSS directory — this project's sandbox couldn't fetch feedburner.com directly to independently confirm it. First live cron run's result will confirm or refute. Note Model D's own site has a separate, unrelated ToS block against scraping its (nonexistent) events calendar — see "Blocked — Terms of Service" above; that's about event listings, not this general-content RSS feed.
Detroit Music Magazine Outlet's own Atom feed High detroitmusicmag.com/feed/atom/ — real, valid Atom (not RSS 2.0), verified live. Detroit techno/electronic coverage including Movement Festival reviews.
Hour Detroit (editorial) Outlet's own RSS feed (guessed path) Unconfirmed hourdetroit.com/feed/, standard WordPress path — not independently hit-tested. Separate concern from this same outlet's "Investigated — Inconclusive" entry below, which found the live site's firewall 403s automated requests to /events/ specifically — this general /feed/ path wasn't checked and may behave differently.
PLAYGROUND DETROIT Outlet's own RSS feed (guessed path) Unconfirmed playgrounddetroit.com/feed/, standard WordPress path — not independently hit-tested.
Eater Detroit Vox Media network RSS feed (guessed path) Unconfirmed detroit.eater.com/rss/index.xml, standard Vox Media path — not independently hit-tested.
Hip In Detroit Blogger-hosted RSS feed (guessed path) Unconfirmed hipindetroit.com/feeds/posts/default?alt=rss, standard Blogger path — not independently hit-tested.
Ann Arbor Observer Outlet's own RSS feed High Added 2026-08-28 from Jody's Metro Detroit outlet-research list. annarborobserver.com/feed/ — real, live WordPress RSS 2.0, verified via a real browser fetch, most recent items dated same-day. robots.txt permissive (only standard WordPress /wp-login.php//wp-admin/ disallows, no AI-crawler block) but sets Crawl-delay: 600 — comfortably respected by a Cron running far less than every 10 minutes. No Terms of Service page found at either standard path to check for a scraping restriction. General feed mixes real event previews ("Event Reviews" category — UMMA, Hill Auditorium, etc.) with news/obituaries/real estate; looksLikeEventCoverage() sorts these the same as WDET's mixed feed. Ann Arbor is 36mi from Detroit — in scope per SERVICE_AREA.md.
C&G Newspapers Outlet's own RSS feed High Added 2026-08-28 on a second research pass, after Jody asked "could we really find NOTHING in all of those media outlet feeds?" — a fair challenge, since the first pass's "no feed found" verdict for this outlet came from a subagent whose own sandbox couldn't reliably reach the site. A direct browser fetch confirmed candgnews.com/feed/ is real, live WordPress RSS 2.0 (real local news across Macomb/Oakland-area communities, including genuine community-event coverage). robots.txt fully permissive.
Grosse Pointe News Outlet's own RSS feed High Added 2026-08-28, same second-pass correction as C&G Newspapers above (same publisher platform, same wrong "no feed" verdict from the first pass). grossepointenews.com/feed/ confirmed real and live via direct browser fetch. robots.txt fully permissive.
Michigan Chronicle Outlet's own RSS feed High Added 2026-08-28, second-pass correction — the first pass reported an HTTP 403 fetching michiganchronicle.com/feed/, which turned out to be a subagent-sandbox issue, not a real block: a direct browser fetch got the real, live feed cleanly, including genuine event coverage (e.g. a "40 Under 40" honoree feature). robots.txt is permissive of /feed/ but does set Request-rate: 1/20, Crawl-delay: 22, and Visit-time: 0700-1300 (UTC) — a courtesy crawl window this project doesn't currently schedule around (every cron runs on Vercel's own fixed schedule), flagged rather than ignored.

Covered Indirectly

These venues sell tickets through a platform we already pull from automatically, so no separate connector was needed.

VenueActually sells throughNotes
Garden TheaterTicketWeb → Ticketmaster Discovery APIConfirmed TicketWeb is a Ticketmaster brand included in Discovery API results.
St. Andrew's HallLive Nation / Ticketmaster
Aretha Franklin AmphitheatreTicketmaster
Sound Board (MotorCity Casino)Ticketmaster
Small's (Hamtramck)Ticketmaster / Live Nation, via The Crofoot network

Blocked — Terms of Service

These platforms explicitly prohibit automated scraping in their Terms of Use and offer no public events API a project like this can use. Manual/editorial-only, unless a written partnership is pursued.

PlatformWhat we foundAffected venues
Resident Advisor (RA) ra.co Terms of Use ban scraping without a written partner agreement. Marble Bar, TV Lounge, Spot Lite Detroit, and others — still hand-curated where possible.
Dice.fm Terms of Use §8.4 explicitly bans automated data collection. El Club and others — hand-curated from Dice's public listing pages instead.
AXS.com Terms of Use ban "any automatic means... to retrieve, index, data mine" event pages, and separately ban using AXS data to "train... any automated system." No public developer API exists — the only "AXS API" is a private reseller/fulfillment integration. Masonic Temple Theatre, The Chapel at Masonic, The Acacia Room, The Fillmore Detroit, Majestic Theatre, Magic Stick, Cliff Bell's, El Club, Music Hall Detroit, PJ's Lager House
Model D Media Terms of Use explicitly prohibit scraping, harvesting, aggregation, deep-linking, and republishing without written consent. Moot either way — no events/calendar feature exists on the site to take from. n/a — publication has no events calendar
Eventbrite (discovery/search pages) Different question than the API row below — this is about the human-facing eventbrite.com/d/mi--<city>/events/ browse pages. Technically these ARE scrapeable (real event data renders server-side in plain HTML, and robots.txt doesn't block the /d/ path) — but Eventbrite's Terms of Service §13, "Scraping or Commercial Use of Site Content is Prohibited," explicitly states: "You have no right to, and you agree not to, scrape, crawl, or employ any automated means to extract data from the Sites." That's an unconditional contractual ban regardless of what robots.txt allows, so this stays off-limits. Checked for Detroit, Hamtramck, and Highland Park city-discovery pages — same platform, same ToS, same verdict for all three.
Detroit Jewish News thejewishnews.com's Terms of Service, and separately its parent company Lee Enterprises' own Terms of Use, both explicitly ban automated collection and redistribution of site content. Researched 2026-08-28 from Jody's Metro Detroit outlet list. n/a — general-news RSS candidate for radar.html, not an event-listing source

Blocked — robots.txt disallows AI crawlers

These sites don't block scraping in general, but their robots.txt specifically names and disallows AI/Claude-branded crawlers. We respect that, even though it's not a blanket disallow. Squarespace appears to ship this AI-bot block by default on many client sites now — five of the seven below hit it for that reason alone.

Siterobots.txt rule
Detroit House of ComedyDisallows ClaudeBot, GPTBot, CCBot, Google-Extended, Amazonbot, Bytespider, meta-externalagent (generic * allowed).
The Congregation DetroitDisallows ClaudeBot, anthropic-ai, GPTBot, PerplexityBot (generic * allowed).
TV LoungeSquarespace default AI-bot block (ClaudeBot, anthropic-ai, GPTBot, and ~20 others).
Spot Lite DetroitSame Squarespace block — also moot either way, since the page itself just embeds an RA promoter widget (ra.co/promoters/107721/widget/events), so the underlying data is RA's regardless.
Northern Lights LoungeSquarespace default AI-bot block.
Painted Lady Lounge (Hamtramck)Squarespace default AI-bot block. Also moot — the "calendar" link on the page is a malformed/broken URL, not a working embed.
Eastern Market Brewing Co.Squarespace default AI-bot block.
Senate TheaterSquarespace robots.txt explicitly names and disallows ClaudeBot and anthropic-ai. Their public calendar page also has no usable feed (Squarespace's own iCal/JSON export formats are separately blocked) — respected and skipped either way.
Scarab ClubDifferent case from the rest of this table: this one actually has a working per-event ICS feed on its calendar page, which would otherwise be a great source. But its robots.txt carries an explicit, deliberate blocklist of ~150 named bots/scrapers (not just the generic Squarespace AI-bot default). Given that clear signal from a small artist-run nonprofit, the right move is asking them directly for the feed rather than pulling it. As of 2026-08-26 there's now a real place to send them: submit.html's "Submit your event feed" option, reviewed once and then polled automatically — see FEED_SUBMISSIONS.md. Still needs a human to actually reach out; the form existing doesn't send the email by itself.
Mato (ma.to)A consumer events-discovery app/site (NYC-based, also covers Detroit and a handful of other metros) — its /events/detroit/today page genuinely has ~19 real, current, broad-interest Detroit listings, which would otherwise be a solid source. robots.txt explicitly disallows ClaudeBot, GPTBot, Google-Extended, CCBot, and several other named AI crawlers (generic * allowed, and it even sets a Content-Signal: ai-train=no, use=reference, search=yes header spelling out the distinction) — respected and skipped, same as the rest of this table.
The Michigan Dailymichigandaily.com's robots.txt confirmed live (2026-08-28, from Jody's Metro Detroit outlet list) to disallow a /feed/-pattern path specifically. General-news RSS candidate for radar.html, not an event-listing source — skipped either way.
El Central Hispanic Newselcentralmedia.com — confirmed 2026-08-28 via direct browser fetch to have a real, live, content-rich RSS feed at /feed/ (strong Culture/Events coverage of Detroit's Latino community) — but the site's own robots.txt explicitly disallows the /feed/ path for all crawlers (a default Yoast SEO block, not obviously deliberate anti-AI policy the way the rest of this table's sites are — but this project respects robots.txt regardless of the site owner's likely intent). Not added, despite the feed working.
Oakland Presstheoaklandpress.com (MediaNews Group) — robots.txt confirmed live (2026-08-28) to explicitly disallow ClaudeBot and essentially every other named AI crawler, with a header comment additionally banning use of site content for "retrieval augmented generation, grounding, training, or development of... AI systems." One of the more explicit, deliberate blocks found in this whole research pass.
Flint Journal / MLivemlive.com — Flint is 57mi from Detroit per SERVICE_AREA.md, in scope, and MLive is a large regional network that would otherwise be a strong source. robots.txt confirmed live (2026-08-28) to explicitly disallow ClaudeBot alongside GPTBot, CCBot, Google-Extended, and most other named AI crawlers, site-wide.

No Public API Available

Not a Terms of Service prohibition — these platforms simply don't offer programmatic access to the data we'd need, for any developer.

PlatformWhat we foundAffected venues
Eventbrite Public search API was deprecated in Feb 2020. The current API only lets an organizer read their own events with their own login — no third-party access to other organizers' events. Comedy Bar Detroit (100% Eventbrite-hosted, no listings on their own site), Planet Ant Theatre, New Dodge Lounge, some Garden Theater shows
Facebook Events No public events API. Requires an authenticated app + Meta's review process. General gap — noted in the calendar's footer
Partiful Events are private invite links by design — nothing public to pull from. General gap
Edmtrain Event search renders via JavaScript in ways that couldn't be reliably fetched past the navigation shell. General gap
thedetroitilove.com robots.txt blocks automated fetching — skipped out of respect for that, same as the AI-bot blocks above. If this venue publishes its own calendar feed (Google Calendar, Eventbrite, an .ics export, etc.), they can register it directly at submit.html's "Submit your event feed" option instead of us pulling from the blocked page — see FEED_SUBMISSIONS.md. General gap

Investigated — Inconclusive

Real attempts were made; the result wasn't clean enough to build against yet. Worth another pass.

SourceWhat happened
New Dodge Lounge (Hamtramck)Their own site's events page rate-limited our fetch attempts (HTTP 429) twice in a row — couldn't confirm page structure. Ticketing via Ticketleap.
Planet Ant Theatre (Hamtramck)Fetch tool returned rendered season-subscription text rather than the actual show listing structure — inconclusive.
Michigan Science Centercalendar page (mi-sci.org/calendar/) is plain scrapeable HTML, robots.txt is permissive — but every date visible at check time was already in the past relative to that day, suggesting stale or cached page content. Didn't want to build a scraper against data we can't confirm is current — worth another pass with fresh eyes.
Detroit Free PressNo dedicated events/calendar page could be found — current entertainment coverage looks like SEO listicles ("things to do this weekend"), not a structured calendar. Gannett's domains were also blocked at this session's network level, independent of the site itself, so this is lower-confidence than the rest of this page — worth a two-minute manual browser check before fully ruling it out.
The Detroit NewsA "Things To Do" section exists (detroitnews.com/things-to-do/events/); a dedicated calendar built on a vendor called SpinGo existed as of 2014, current status unconfirmed. Same network-level block as Free Press affected this check — recommend a manual look.
Hour Detroitrobots.txt is permissive, but the live site's firewall returns 403 to automated requests against /events/ and its own terms page regardless — stated policy and real-world behavior don't match. Worth a spot-check in case that's inconsistent by page or time of day.
Visit Detroit (DMCVB)The official Detroit Metro Convention & Visitors Bureau site. Its /events/annual-events/ page only lists a handful of flagship destination events (Auto Show, Movement, Detroit Jazz Fest, Grand Prix, Thanksgiving Parade, Dream Cruise) with no dates shown — marketing copy, not a real database. robots.txt is permissive, but individual event pages (/event/<slug>/) return infinite redirect loops to an automated fetch — a bot-mitigation signal independent of robots.txt. Their Terms also claim a narrow "limited license... solely for authorized uses" without an explicit scraping clause either way. Between the thin content and the real technical block, not worth pursuing right now.
Cosm DetroitReal, confirmed venue — an immersive-dome sports/entertainment space opening September 10, 2026 at Cadillac Square, downtown Detroit. Squarely in scope by location. But the site is a JS-rendered Next.js app with no feed, API, or JSON-LD in the static HTML a plain scraper sees — content only appears after client-side rendering. robots.txt is permissive (explicitly allows the relevant paths), so this isn't a permissions problem, just a bigger technical lift: every other source on this page is read with a plain fetch(), and this would be the first one needing an actual headless browser. Worth revisiting once it opens and there's real programming to check against — either as a manual-curation entry or as the case for adding headless-browser scraping to this project.

Metro Detroit outlet research, 2026-08-28 (Jody-supplied list of ~29 outlets, cross-referenced against SERVICE_AREA.md's 75-mile boundary) — these are all editorial/news RSS candidates for api/cron-editorial.js, not event-listing sources, except where noted.

SourceWhat happened
The South End (Wayne State University)thesouthend.wayne.edu — confirmed real campus Arts & Entertainment coverage. Runs on BLOX CMS; /feed/ confirmed 404 via a direct browser fetch (2026-08-28) — no standard RSS path found.
Between the Lines / Pride Sourcepridesource.com — outlet's own site claims to publish RSS, but /feed/ confirmed via direct browser fetch (2026-08-28) to redirect to the plain homepage, not XML. Real LGBTQ+ community/culture coverage otherwise, including its own "Events" page — a possible future scrape target, distinct from an RSS pull.
The Arab American Newsarabamericannews.com — the only feed URLs found live on an unofficial-looking new.arabamericannews.com dev subdomain with SSL errors; not trustworthy enough to add as-is. Worth checking whether the outlet's main domain has its own feed via a direct browser visit.
Windsor Starwindsorstar.com (Postmedia) — Windsor is 1mi from Detroit per SERVICE_AREA.md, squarely in scope. Direct browser fetch (2026-08-28) confirmed windsorstar.com/feed is real, live, valid RSS 2.0 with genuine local event coverage (e.g. a "What's On Windsor" roundup). robots.txt is permissive for this path (only blocks admin paths, `omgili`/`omgilibot`, and any URL containing a ? — the plain /feed URL isn't affected) — but it also publishes an X-RSL line pointing to a Postmedia network content-license file (postmedia-network-license.xml), a machine-readable licensing signal this project hasn't dealt with before and didn't read the terms of. Held back pending a read of that license, not added on the strength of the feed alone.
The Eastern Echo (Eastern Michigan University)Campus paper — tooling couldn't reach the site to check. Genuinely unchecked.
Macomb Dailymacombdaily.com (MediaNews Group) — not independently fetched, but its sibling Oakland Press (same MediaNews Group robots.txt template, see below) explicitly disallows ClaudeBot and the rest of MediaNews Group's standard named-AI-bot blocklist; almost certainly the same on this domain given they're run by the same company on the same platform. Treated as blocked by inference rather than direct proof — worth a one-line confirmation if this ever gets close to being added.
Observer & Eccentrichometownlife.com (Gannett) — same corporate family as the Free Press/Detroit News, whose domains this session's network already can't reach (see those two outlets' entries above). Likely the same block; not independently confirmed for this specific domain.
Monroe Newsmonroenews.com (Gannett) — Monroe is 34mi from Detroit per SERVICE_AREA.md, in scope. Same Gannett network-block pattern as above; not independently confirmed.
Daily Press & Argus / Livingston Dailylivingstondaily.com (Gannett) — Howell is 49mi from Detroit, in scope. Same Gannett network-block pattern as above; not independently confirmed.
The Daily Telegram (Adrian)lenconnect.com (Gannett, via the 2019 GateHouse merger) — Adrian is 59mi from Detroit, in scope. Same Gannett network-block pattern as above; not independently confirmed.

Checked — Nothing to Connect To

robots.txt allows crawling these, and they're not on any blocked platform — but as of the last check, there's no actual event content on the page to pull. A scraper here would reliably return zero results, so nothing was built. Worth a periodic re-check rather than a one-time build.

SourceCityWhat we found
Batch Brewing CompanyDetroitEvents page just reads "email us to host an event" — no listings. Wix site, no JSON-LD.
Grand Trunk PubDetroitExactly one entry on the page, and it's a Labor Day hours notice, not a show.
Baker's Keyboard LoungeDetroitEvents page is a genuinely empty template — nav and contact info only.
Bert's MarketplaceDetroitSite is live, but there's no events page in its current navigation/structure at all.
Deadline DetroitDetroitNews aggregator/commentary site — no events or calendar feature exists anywhere on it.
BridgeDetroitDetroitNo standing events calendar — the only "listings" content found was a one-off page for the 2025 election cycle, not an ongoing feature. Their content license (CC BY-NC-ND) also explicitly bars automatic/wholesale republishing, so this would be a dead end twice over even if a calendar existed.
Crain's Detroit BusinessDetroitHas a real, technically scrapeable events page — but confirmed to be exclusively business/networking content (Power Breakfasts, "Notable" awards, sector summits), nothing arts/culture/nightlife. Out of scope, not a technical or legal problem.
Belle Isle AquariumDetroitCalendar page (belleisleconservancy.org/summercalendar) is plain scrapeable HTML with no bot restrictions — but the listings are almost entirely recurring/relative ("Second Fridays," date ranges like "Jun 15 – Aug 21," multi-date entries like "Jul 30 & Aug 20"), not the discrete single dates this calendar's data model expects. Didn't want to force bad data into a clean schema — worth revisiting with real recurrence-handling logic.
Tuskegee Airmen National MuseumDetroitevents page is open and scrapeable (no robots.txt at all) — but its "events" are actually long-running recurring class schedules (e.g. a mechanic-training course meeting a dozen-plus dates through the year), a fundamentally different shape than a one-off event. Skipped rather than build something that would need custom logic just for this one source.
Detroit Public Library (Main Branch)DetroitReal, current, scrapeable listings exist (events-search?location=main) — but the content is overwhelmingly community/workforce programming (resume workshops, basic computer skills classes), not arts/culture/nightlife. Skipped as a scope mismatch rather than a technical one; worth reconsidering if the calendar's scope ever broadens to general community events.
City of Detroit official calendarDetroitdetroitmi.gov/Calendar-and-Events is real and live, but the content sampled was entirely civic/government business — Planning Commission and Board of Police Commissioners meetings, an Ombudsman office-hours notice, a vehicle auction, an Election Dept. item. No parks/rec, festival, or arts programming showed up. No feed/API/JSON-LD either way. Out of scope, not a technical problem — worth a periodic re-check in case that changes.
City of Highland Park official calendarHighland Parkhighlandparkmi.gov/community/calendar/ is a thin hub page that mostly links out to City Council/Planning Commission/Police & Fire Commission meeting pages — no dated public event listings found, no feed/API. Small-municipality site (runs a CMS called MuniCMS/Muniweb), doesn't appear to maintain a real public events database.
Bridge MichiganStatewide (Ann Arbor-based)bridgemi.com confirmed via direct fetch (2026-08-28, from Jody's Metro Detroit outlet list) to be a statewide policy/politics nonprofit newsroom — no community events, arts, or culture coverage. Its own "Events" section is internal panels/webinars, not local listings. Wrong content type, not a technical or access problem.

Manually Curated

No automated connector — these are hand-entered from the venue's own listings, editorially reviewed, and re-checked periodically. This is how the original 187-event seed dataset was built.

SourceNote
Detroit Institute of Arts (DIA)dia.org — own ticketing (tickets.dia.org)
MOCADmocadetroit.org — mostly free events
Eastern Marketeasternmarket.org
Detroit Opera HouseOwn ticketing (cart.detroitopera.org), also partially on Ticketmaster
Detroit Historical Museumdetroithistorical.org
Motown MuseumOwn Azure-based ticketing portal. An automated check was attempted — the site's /event/ page has no JSON-LD or calendar-plugin API, and the listings visible at check time looked stale (past dates) and included at least one non-Detroit event (a Martha's Vineyard satellite program), so this stays manual for now rather than risk publishing bad data.
The Wright (Charles H. Wright Museum)Own/ACME ticketing. Automated check attempted — the site runs Drupal (not WordPress), and its /whats-on/events page currently shows "no current events to display" behind a date-range filter form whose query parameters weren't confirmed. Worth another pass if the filter's URL pattern gets figured out.
Michigan CentralOwn site, mixed with some Eventbrite listings
Fox Theatre / 313 Presentslivenation.com, 313presents.com
Comerica Park / Little Caesars ArenaMajor venue sites
19hz.infoUnderground/electronic listings aggregator
Paxahaupaxahau.com — Movement Festival & affiliated electronic events
Resident Advisor (manual)Hand-pulled from RA's per-week Detroit listing pages, not just their "Popular" homepage picks — see the AXS/RA/Dice blocked-sources note above for why this stays manual
Dice (manual)Hand-pulled from Dice's public listing pages, primarily El Club
City of Hamtramck festivalshamtramckcity.gov/community/festivals-events/ describes five recurring annual festivals (Diversity Festival, Labor Day Festival, Eid Festival, Paczki Day Run, Strawberry Festival) but without inline dates — the real dates live in a linked, yearly-updated "Annual Events Schedule" PDF. No feed/API exists (robots.txt is permissive, no ToS restriction found), but with only five stable annual events, hand-checking that PDF once a year is more reliable than building a PDF-parsing scraper for it. Hamtramck Blowout isn't listed on this city page at all — that stays whatever source it's currently tracked from, if any.