Back to Projects
FinishedWebCase study

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

Node.jsNotion APIGmail APIGitHub Actions

Screenshots

Screenshots will live here once this project has a stable UI worth showing.

More Web projects

Dros dashboard with study setup, Leitner queue, and practice controls

Web

Dros

A local-first React app for building and drilling multiple-choice question banks.