School Schedule Notifier
A small Python service that watches for next-day schedule changes and emails them automatically.

What it does
A local school publishes next-day schedule changes as an image on its website, on no fixed schedule — so checking manually means either remembering to look or missing a change. This is a small always-on service that checks instead.
Once a day, shortly before the next school day, it checks whether a schedule-change image has been published for the relevant class. If one has, it emails it — with the image attached — to the people who need to see it. If nothing changed, it stays quiet.
Example
The schedule image attached to the email above:

How it works
- A scheduled job (the
schedulelibrary, not cron) fires once a day at a configurable time - It skips weekends, since the school does not publish changes for non-school days
- Checks for the image with a plain HTTP HEAD request before doing anything else, so a missing image is a normal, silent outcome rather than an error
- Sends the email over SMTP with the image attached, using an app password rather than a real account password
- Configuration — sender/receiver addresses, the class to watch, the time to run — is entirely environment variables, so nothing personal lives in the code
Deployment
Packaged as a Docker image, built for both amd64 and arm64 with buildx and published to Docker
Hub, so it runs unattended on the same small ARM board that serves this site.