I set an AI loose in the streets of London with the instruction to "Do Catholic Stuff!" It got frustrated when it went to confession only to find that confessions were cancelled that day. So it's started reading every London parish newsletter each week and sticking their confession times up on this website. Now I can see at a glance if confession is cancelled and where I can go instead. Maybe you'll find it helpful too? 🤷
The confession times of every church in Central London (inside Zone 1 on the tube map) are listed on this website.*
For each church, we give chatGPT a copy of this week's parish newsletter and ask it "Are these confession times accurate according to this newsletter?" If the times are inaccurate, chatGPT gives us a brief assessment highlighting the difference. This is where the "disruption" notices come from:
If the newsletter does not detail any changes to this week's confession schedule, then it is marked as "✅ Good service".
Some churches are marked as "Unknown status". This can happen for a few reasons, the most likely ones being:
- The church doesn't keep an up-to-date online newsletter.
- The AI took too long to understand the newsletter so we gave up.
- The AI has gone on strike until I put more money into my openAI account.
* Only English-speaking, Catholic churches that maintain a publicly accessible newsletter are included. So churches like the Ukrainian Catholic Cathedral in Mayfair are excluded from this website.
This is a Next.js project with a Typescript frontend and a Python backend. Inside the ai_pipeline folder, newsletters are scraped from parish websites using Selenium. These newsletters are posted to the chatGPT API with the relevant prompt (see prompts.py) and are then written to json (appraisals.json). That json file is used to configure the frontend.

