reads a json file of assignments and sends a telegram message for anything overdue, due today, or due tomorrow. plain python, stdlib only, no dependencies.
it keeps a small cache file so the same alert is not sent twice within 24 hours, and it caps output at 3 messages per run. between 11pm and 7am it stays quiet except for overdue items.
the input file needs an assignments list where each item has a title, a course, a due_iso timestamp and a due_unix epoch. point ASSIGNMENTS_FILE at it, set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID, optionally CACHE_FILE and ALERT_TZ, then run it from cron or a systemd timer. pass --test to print what it would send without sending anything.