
Notion Study Reminder
A Node.js service that reads a Notion study-scheduler page and its deadline database, classifies tasks in Beirut time, and emails morning/evening digests plus a midday urgent-only reminder via Gmail, scheduled through GitHub Actions.
Problem
My study plan lived in Notion, but Notion doesn't push a consolidated view of what's due — unchecked tasks and approaching deadlines only mattered if I remembered to open the page.
Solution
The service pulls unchecked checklist items from the scheduler page and active deadlines from the inline database, then sends three kinds of email on a Beirut-time schedule: a 07:00 morning digest, a 13:00 urgent-only reminder, and a 20:00 evening digest, through either Gmail SMTP or the Gmail API. An hourly GitHub Actions cron fires the runs and the code itself decides the correct mode, so daylight-saving changes never break the schedule.
What I learned
Cron doesn't know about timezones — running hourly and resolving 'what should happen now' in code was far more robust than encoding Beirut hours into the cron expression.
Tech Stack
Screenshots
More Web projects

