{
 "path": "/how-it-runs",
 "title": "How Hey Bath runs: sources, freshness and what’s down",
 "description": "Every source Hey Bath reads, how often we check it, when it last worked and whether anything is down right now.",
 "canonical": "https://heybath.uk/how-it-runs",
 "generated_at": "2026-10-04T21:05:45.784Z",
 "data": {
  "title": "Where our information comes from",
  "sources": [
   {
    "id": "open-meteo-pollen",
    "name": "Open-Meteo pollen",
    "topic": "air",
    "url": "https://air-quality-api.open-meteo.com/v1/air-quality",
    "licence": "CC BY 4.0",
    "cadence_minutes": 30,
    "last_ok": "2026-10-04T21:01:00.668Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:00.668Z"
   },
   {
    "id": "ukair-no2",
    "name": "UK-AIR (Defra) Bath A4 Roadside",
    "topic": "air",
    "url": "https://uk-air.defra.gov.uk/sos-ukair/api/v1/timeseries/4828/getData",
    "licence": "Open Government Licence v3.0",
    "cadence_minutes": 30,
    "last_ok": "2026-10-04T21:01:10.827Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:10.827Z"
   },
   {
    "id": "banes-bins",
    "name": "B&NES bin collections",
    "topic": "bins",
    "url": "https://api.bathnes.gov.uk/webapi/api/BinsAPI/v2/BartecFeaturesandSchedules/CollectionSummary/",
    "licence": "B&NES (unconfirmed)",
    "cadence_minutes": 1440,
    "last_ok": "2026-10-04T08:38:10.367Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T08:38:10.367Z"
   },
   {
    "id": "police-priorities",
    "name": "Avon and Somerset neighbourhood priorities",
    "topic": "crime",
    "url": "https://data.police.uk/api/avon-and-somerset/neighbourhoods",
    "licence": "Open Government Licence v3.0",
    "cadence_minutes": 1440,
    "last_ok": "2026-10-04T08:38:00.952Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T08:38:00.952Z"
   },
   {
    "id": "police-crime",
    "name": "data.police.uk street crime",
    "topic": "crime",
    "url": "https://data.police.uk/api/crimes-street/all-crime",
    "licence": "Open Government Licence v3.0",
    "cadence_minutes": 1440,
    "last_ok": "2026-10-04T08:38:10.324Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T08:38:10.324Z"
   },
   {
    "id": "pcc-news",
    "name": "Avon and Somerset PCC",
    "topic": "news",
    "url": "https://www.avonandsomerset-pcc.gov.uk/feed/",
    "licence": "Unconfirmed",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:03.391Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:03.391Z"
   },
   {
    "id": "police-news",
    "name": "Avon and Somerset Police news",
    "topic": "news",
    "url": "https://www.avonandsomerset.police.uk/news/feed/",
    "licence": "Unconfirmed",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:04.210Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:04.210Z"
   },
   {
    "id": "banes-newsroom",
    "name": "B&NES Council newsroom",
    "topic": "news",
    "url": "https://newsroom.bathnes.gov.uk/rss.xml",
    "licence": "Open Government Licence v3.0",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:02.277Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:02.277Z"
   },
   {
    "id": "banes-consultations",
    "name": "B&NES consultations",
    "topic": "news",
    "url": "https://www.bathnes.gov.uk/current-consultations",
    "licence": "Open Government Licence v3.0",
    "cadence_minutes": 720,
    "last_ok": "2026-10-04T12:00:08.969Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T12:00:08.969Z"
   },
   {
    "id": "bbc-bristol",
    "name": "BBC Bristol",
    "topic": "news",
    "url": "https://feeds.bbci.co.uk/news/england/bristol/rss.xml",
    "licence": "BBC News feeds: personal, non-commercial use per BBC terms; we show the headline and link only, filtered to Bath",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:02.241Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:02.241Z"
   },
   {
    "id": "bbc-somerset",
    "name": "BBC Somerset",
    "topic": "news",
    "url": "https://feeds.bbci.co.uk/news/england/somerset/rss.xml",
    "licence": "BBC News feeds: personal, non-commercial use per BBC terms; we show the headline and link only, filtered to Bath",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:02.755Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:02.755Z"
   },
   {
    "id": "bath-and-west",
    "name": "Bath & West",
    "topic": "news",
    "url": "https://www.bathandwest.com/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 360,
    "last_ok": null,
    "last_error": "Bath & West: not a feed (<html><head><link rel=\"icon\" href=\"data:)",
    "status": "down",
    "state": "pending",
    "label": "First check pending",
    "at": null
   },
   {
    "id": "bath-abbey-news",
    "name": "Bath Abbey",
    "topic": "news",
    "url": "https://www.bathabbey.org/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T12:00:07.989Z",
    "last_error": "Bath Abbey: not a feed (<html><head><link rel=\"icon\" href=\"data:)",
    "status": "down",
    "state": "down",
    "label": "Down",
    "since": "2026-10-04T18:00:07.989Z",
    "at": "2026-10-04T12:00:07.989Z"
   },
   {
    "id": "bath-echo",
    "name": "Bath Echo",
    "topic": "news",
    "url": "https://www.bathecho.co.uk/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:01.429Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:01.429Z"
   },
   {
    "id": "bath-fringe",
    "name": "Bath Fringe",
    "topic": "news",
    "url": "https://bathfringe.co.uk/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 720,
    "last_ok": "2026-10-04T12:00:07.146Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T12:00:07.146Z"
   },
   {
    "id": "bath-magazine",
    "name": "Bath Magazine",
    "topic": "news",
    "url": "https://bathmagazine.co.uk/feed.xml",
    "licence": "Headline, one line and link",
    "cadence_minutes": 180,
    "last_ok": "2026-10-04T21:01:02.843Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:02.843Z"
   },
   {
    "id": "bath-newseum",
    "name": "Bath Newseum",
    "topic": "news",
    "url": "https://bathnewseum.com/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:02.787Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:02.787Z"
   },
   {
    "id": "bath-preservation-trust",
    "name": "Bath Preservation Trust",
    "topic": "news",
    "url": "https://www.bath-preservation-trust.org.uk/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T18:01:06.537Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T18:01:06.537Z"
   },
   {
    "id": "bath-spa-news",
    "name": "Bath Spa University news",
    "topic": "news",
    "url": "https://www.bathspa.ac.uk/news-and-events/news/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T18:01:06.926Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T18:01:06.926Z"
   },
   {
    "id": "bath-voice",
    "name": "Bath Voice",
    "topic": "news",
    "url": "https://bathvoice.co.uk/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:01.501Z",
    "last_error": "timeout after 20000 ms for bathvoice.co.uk",
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:01.501Z"
   },
   {
    "id": "bathampton-pc",
    "name": "Bathampton Parish Council",
    "topic": "news",
    "url": "https://bathamptonparishcouncil.org.uk/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 720,
    "last_ok": "2026-10-04T12:00:13.114Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T12:00:13.114Z"
   },
   {
    "id": "batheaston-pc",
    "name": "Batheaston Parish Council",
    "topic": "news",
    "url": "https://www.batheaston-pc.gov.uk/newsroom",
    "licence": "Headline, one line and link",
    "cadence_minutes": 1440,
    "last_ok": "2026-10-04T08:38:16.162Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T08:38:16.162Z"
   },
   {
    "id": "mr-bs-news",
    "name": "Mr B’s Emporium",
    "topic": "news",
    "url": "https://www.mrbsemporium.com/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T12:00:13.251Z",
    "last_error": "timeout after 10000 ms for www.mrbsemporium.com",
    "status": "down",
    "state": "down",
    "label": "Down",
    "since": "2026-10-04T18:00:13.251Z",
    "at": "2026-10-04T12:00:13.251Z"
   },
   {
    "id": "nhs-bsw",
    "name": "NHS Bath, Swindon and Wiltshire",
    "topic": "news",
    "url": "https://bsw.icb.nhs.uk/news-and-events/news/",
    "licence": "NHS content, Open Government Licence; Crawl-delay 10 obeyed",
    "cadence_minutes": 720,
    "last_ok": "2026-10-04T12:00:10.021Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T12:00:10.021Z"
   },
   {
    "id": "radio-bath",
    "name": "Radio Bath",
    "topic": "news",
    "url": "https://radiobath.com/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:02.945Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:02.945Z"
   },
   {
    "id": "saltford-pc",
    "name": "Saltford Parish Council",
    "topic": "news",
    "url": "https://saltfordparishcouncil.gov.uk/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 720,
    "last_ok": "2026-10-04T12:00:12.014Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T12:00:12.014Z"
   },
   {
    "id": "somerset-live",
    "name": "Somerset Live (Bath)",
    "topic": "news",
    "url": "https://www.somersetlive.co.uk/all-about/bath?service=rss",
    "licence": "Headline, one line and link",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:00.368Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:00.368Z"
   },
   {
    "id": "bath-bee",
    "name": "The Bath Bee",
    "topic": "news",
    "url": "https://bathbee.substack.com/feed",
    "licence": "Headline, one line and link",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:02.590Z",
    "last_error": "HTTP 429 for bathbee.substack.com",
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:02.590Z"
   },
   {
    "id": "the-bath-magazine",
    "name": "The Bath Magazine",
    "topic": "news",
    "url": "https://www.thebathmagazine.co.uk/feed/",
    "licence": "Headline, one line and link",
    "cadence_minutes": 180,
    "last_ok": "2026-10-04T21:01:08.730Z",
    "last_error": "timeout after 10000 ms for www.thebathmagazine.co.uk",
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:08.730Z"
   },
   {
    "id": "banes-occupancy",
    "name": "B&NES car park spaces",
    "topic": "parking",
    "url": "https://data.bathnes.gov.uk/geoserver/parking/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=parking:CarParkOccupancy",
    "licence": "B&NES open data (unconfirmed)",
    "cadence_minutes": 15,
    "last_ok": "2026-10-04T21:01:07.978Z",
    "last_error": "no features returned",
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:07.978Z"
   },
   {
    "id": "banes-carparks",
    "name": "B&NES car parks",
    "topic": "parking",
    "url": "https://data.bathnes.gov.uk/geoserver/parking/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=parking:CarParks",
    "licence": "B&NES open data (unconfirmed)",
    "cadence_minutes": 1440,
    "last_ok": "2026-10-04T13:31:11.622Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T13:31:11.622Z"
   },
   {
    "id": "banes-planning",
    "name": "B&NES planning register",
    "topic": "planning",
    "url": "https://app.bathnes.gov.uk/webforms/planning/search.html",
    "licence": "B&NES (unconfirmed)",
    "cadence_minutes": 30,
    "last_ok": "2026-10-04T21:01:21.985Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:21.985Z"
   },
   {
    "id": "nged-power",
    "name": "National Grid power cuts",
    "topic": "power",
    "url": "https://connecteddata.nationalgrid.co.uk/api/3/action/datastore_search?resource_id=292f788f-4339-455b-8cc0-153e14509d4d",
    "licence": "Unconfirmed",
    "cadence_minutes": 15,
    "last_ok": "2026-10-04T21:01:00.297Z",
    "last_error": "HTTP 502 connecteddata.nationalgrid.co.uk",
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:00.297Z"
   },
   {
    "id": "fixmystreet",
    "name": "FixMyStreet (B&NES)",
    "topic": "problems",
    "url": "https://fix.bathnes.gov.uk/open311/v2/requests.xml",
    "licence": "FixMyStreet / B&NES",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:32.124Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:32.124Z"
   },
   {
    "id": "ea-warnings",
    "name": "Environment Agency flood warnings",
    "topic": "river",
    "url": "https://environment.data.gov.uk/flood-monitoring/id/floods",
    "licence": "Open Government Licence v3.0",
    "cadence_minutes": 15,
    "last_ok": "2026-10-04T21:01:11.348Z",
    "last_error": "timeout after 15000 ms from environment.data.gov.uk",
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:11.348Z"
   },
   {
    "id": "ea-levels",
    "name": "Environment Agency river levels",
    "topic": "river",
    "url": "https://environment.data.gov.uk/flood-monitoring/id/stations",
    "licence": "Open Government Licence v3.0",
    "cadence_minutes": 15,
    "last_ok": "2026-10-04T21:01:15.276Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:15.276Z"
   },
   {
    "id": "banes-tro",
    "name": "B&NES traffic orders and closures",
    "topic": "roads",
    "url": "https://www.bathnes.gov.uk/rss.xml",
    "licence": "Open Government Licence v3.0",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:06.892Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:06.892Z"
   },
   {
    "id": "national-highways",
    "name": "National Highways closures",
    "topic": "roads",
    "url": "https://www.nationalhighways.co.uk/travel-updates/",
    "licence": "Open Government Licence v3.0",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:01.678Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:01.678Z"
   },
   {
    "id": "open-meteo-weather",
    "name": "Open-Meteo weather",
    "topic": "weather",
    "url": "https://api.open-meteo.com/v1/forecast",
    "licence": "CC BY 4.0",
    "cadence_minutes": 30,
    "last_ok": "2026-10-04T21:01:00.392Z",
    "last_error": "HTTP 503 from api.open-meteo.com",
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:00.392Z"
   },
   {
    "id": "banes-events",
    "name": "B&NES events calendar",
    "topic": "whats-on",
    "url": "https://www.bathnes.gov.uk/whats-on/events-calendar",
    "licence": "Open Government Licence v3.0 (titles and dates, linked back)",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T18:01:09.237Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T18:01:09.237Z"
   },
   {
    "id": "bath-abbey",
    "name": "Bath Abbey",
    "topic": "whats-on",
    "url": "https://www.bathabbey.org/wp-json/tribe/events/v1/events",
    "licence": "Unconfirmed",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T12:00:13.849Z",
    "last_error": "blocked: not JSON from www.bathabbey.org (text/html): <html><head><link rel=\"icon\" href=\"data:;\"><meta http-equiv=",
    "status": "down",
    "state": "down",
    "label": "Down",
    "since": "2026-10-04T13:00:13.849Z",
    "at": "2026-10-04T12:00:13.849Z"
   },
   {
    "id": "bath-city-fixtures",
    "name": "Bath City FC fixtures",
    "topic": "whats-on",
    "url": "https://www.bathcityfc.com/2026-27-fixtures-results/",
    "licence": "Public fixtures page; date, opponent and venue",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T18:01:12.117Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T18:01:12.117Z"
   },
   {
    "id": "bath-rugby-fixtures",
    "name": "Bath Rugby fixtures",
    "topic": "whats-on",
    "url": "https://www.bathrugby.com/",
    "licence": "Home page fixture list (robots allows /; the league data host disallows robots, so it is not used)",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T18:01:13.101Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T18:01:13.101Z"
   },
   {
    "id": "bath-spa-events",
    "name": "Bath Spa University events",
    "topic": "whats-on",
    "url": "https://www.bathspa.ac.uk/news-and-events/events/",
    "licence": "Public events page; title, one line, date and link",
    "cadence_minutes": 720,
    "last_ok": "2026-10-04T12:00:11.322Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T12:00:11.322Z"
   },
   {
    "id": "chapel-arts",
    "name": "Chapel Arts Centre",
    "topic": "whats-on",
    "url": "https://chapelarts.org/events/feed/",
    "licence": "Public events feed; title, date, price and link",
    "cadence_minutes": 180,
    "last_ok": "2026-10-04T21:01:07.779Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:07.779Z"
   },
   {
    "id": "herschel-museum",
    "name": "Herschel Museum events",
    "topic": "whats-on",
    "url": "https://herschelmuseum.org.uk/events/feed/",
    "licence": "Public feed (not the disallowed ?ical= or list views)",
    "cadence_minutes": 1440,
    "last_ok": "2026-10-04T08:38:11.970Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T08:38:11.970Z"
   },
   {
    "id": "komedia-bath",
    "name": "Komedia Bath",
    "topic": "whats-on",
    "url": "https://komediabath.co.uk/events/feed/",
    "licence": "Public events feed; robots Crawl-delay 10 obeyed (one fetch every 3 hours)",
    "cadence_minutes": 180,
    "last_ok": "2026-10-04T21:01:05.370Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:05.370Z"
   },
   {
    "id": "picturehouse-little",
    "name": "Little Theatre Cinema (Picturehouse)",
    "topic": "whats-on",
    "url": "https://www.picturehouses.com/cinema/the-little-theatre-cinema",
    "licence": "Unconfirmed",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T21:01:05.712Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:05.712Z"
   },
   {
    "id": "mr-bs-events",
    "name": "Mr B’s Emporium events",
    "topic": "whats-on",
    "url": "https://mrbsemporium.com/events/feed/",
    "licence": "Public events feed; title, one line and link",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T18:01:10.711Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T18:01:10.711Z"
   },
   {
    "id": "no1-royal-crescent",
    "name": "No.1 Royal Crescent events",
    "topic": "whats-on",
    "url": "https://no1royalcrescent.org.uk/events/feed/",
    "licence": "Public events feed; title, date and link",
    "cadence_minutes": 1440,
    "last_ok": "2026-10-04T08:38:13.015Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T08:38:13.015Z"
   },
   {
    "id": "rondo-theatre",
    "name": "Rondo Theatre",
    "topic": "whats-on",
    "url": "https://rondotheatre.co.uk/feed/",
    "licence": "Public feed only (the calendar exporter is disallowed and not used)",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T18:01:13.753Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T18:01:13.753Z"
   },
   {
    "id": "saltford-meetings",
    "name": "Saltford Parish Council meetings",
    "topic": "whats-on",
    "url": "https://saltfordparishcouncil.gov.uk/events/?ical=1",
    "licence": "Public iCal feed",
    "cadence_minutes": 1440,
    "last_ok": "2026-10-04T08:38:15.793Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T08:38:15.793Z"
   },
   {
    "id": "bell-inn",
    "name": "The Bell Inn",
    "topic": "whats-on",
    "url": "https://thebellinnbath.co.uk/events/?ical=1",
    "licence": "Public iCal feed; title, time and link",
    "cadence_minutes": 180,
    "last_ok": "2026-10-04T21:01:08.315Z",
    "last_error": "timeout after 10000 ms for thebellinnbath.co.uk",
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:08.315Z"
   },
   {
    "id": "bath-forum",
    "name": "The Forum",
    "topic": "whats-on",
    "url": "https://www.bathforum.co.uk/",
    "licence": "Home page only (robots blocks ?query URLs and /my/); title, date and link",
    "cadence_minutes": 360,
    "last_ok": "2026-10-04T18:01:15.573Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T18:01:15.573Z"
   },
   {
    "id": "spektrix-theatre-royal",
    "name": "Theatre Royal Bath",
    "topic": "whats-on",
    "url": "https://system.spektrix.com/theatreroyalbath/api/v3/events",
    "licence": "Unconfirmed",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:05.585Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:05.585Z"
   },
   {
    "id": "venue-rss",
    "name": "Venue feeds (Bath Festivals, Holburne, Bath BID, Bath City FC)",
    "topic": "whats-on",
    "url": "https://bathfestivals.org.uk/feed/",
    "licence": "Unconfirmed",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:08.096Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:08.096Z"
   },
   {
    "id": "visit-bath",
    "name": "Visit Bath what’s on",
    "topic": "whats-on",
    "url": "https://www.visitbath.co.uk/whats-on/searchresults",
    "licence": "Listing pages read as robots.txt allows (no booking, staydate or refined= URLs); title, one line, dates and link only",
    "cadence_minutes": 60,
    "last_ok": "2026-10-04T21:01:09.070Z",
    "last_error": "HTTP 403 for www.visitbath.co.uk",
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T21:01:09.070Z"
   },
   {
    "id": "widcombe-association",
    "name": "Widcombe Association",
    "topic": "whats-on",
    "url": "https://www.widcombeassociation.org.uk/pages/3-events",
    "licence": "Small volunteer group: title, date and link only",
    "cadence_minutes": 720,
    "last_ok": "2026-10-04T12:00:12.261Z",
    "last_error": null,
    "status": "ok",
    "state": "ok",
    "label": "Up to date",
    "at": "2026-10-04T12:00:12.261Z"
   }
  ]
 }
}