Monthly Checklist

Tutorial

How to use the app, create a group, link Telegram, and finish first-run setup.

Open dashboard
1

How to use the app

  1. Start at /home. Choose Tutorial or Dashboard.
  2. Open Dashboard to see every notification group. Each group is one spreadsheet tab and one Telegram chat.
  3. Click a group to open /group/name.
  4. Use Task list to create, edit, or remove task definitions. These are not checked off.
  5. The system creates a Notification checklist from those tasks. Track it by month and check a row when that occurrence is resolved.
  6. Set how often a task should create a notification (once, daily, weekly, biweekly, monthly, quarterly, or yearly), and whether to notify on the due date or 1–7 days before.
  7. Turn on Skip weekends if a Saturday or Sunday due date should move to the Friday before.
  8. The top of the group page shows the next 5 upcoming notifications. Every day at 08:00 Vietnam time, Telegram gets a digest of due or overdue items.
2

How to create a new group

  1. Go to the Dashboard.
  2. Type a name such as Home or Office in the box at the top.
  3. Click Create group. The app adds a new tab in the shared Google spreadsheet and lists the group on the dashboard.
  4. Click the new group card to open its checklist. The URL will look like /group/home.
  5. Use Create task to start the task list. You can rename or delete the group later from Telegram & settings.
4

First-run setup

Do this once before groups and Telegram linking will work. Secrets stay in Vercel environment variables, not in the browser.

Create a Google spreadsheet

  1. Open Google Drive and create a blank spreadsheet.
  2. Copy the spreadsheet ID from the URL: docs.google.com/spreadsheets/d/THIS_PART/edit
  3. Leave the file empty. The app will create the tabs.

Create a Google Cloud service account

  1. Go to Google Cloud Console and create a project (or pick one).
  2. Enable the Google Sheets API.
  3. IAM & Admin → Service accounts → Create service account.
  4. Open the account → Keys → Add key → JSON, then download it.
  5. Share the spreadsheet with the service account email as Editor.

Create one Telegram bot for all groups

  1. In Telegram, open @BotFather and send /newbot.
  2. Copy the bot token.
  3. Send /setprivacy to @BotFather, choose the bot, then choose Disable so it can see /link in groups.
  4. Generate two random secrets for TELEGRAM_WEBHOOK_SECRET and CRON_SECRET.

Add environment variables on Vercel

Project → Settings → Environment Variables. Also set APP_URL to your production URL after the first deploy. Do not use a NEXT_PUBLIC_ prefix.

  • GOOGLE_SERVICE_ACCOUNT_EMAILMissing
  • GOOGLE_PRIVATE_KEYMissing
  • GOOGLE_SPREADSHEET_IDMissing
  • TELEGRAM_BOT_TOKENMissing
  • TELEGRAM_WEBHOOK_SECRETMissing
  • CRON_SECRETMissing
  • APP_URLMissing

For GOOGLE_PRIVATE_KEY, paste the full PEM, including BEGIN/END lines. Keep quoted newlines as \n if Vercel asks you to.

Connect Google Sheets

Waiting for credentials.

Not ready

This creates a _meta tab for groups and a _links tab for Telegram codes. Each new group gets its own tab.

Register the Telegram webhook

Bot: not detected

Webhook URL:

Deploy to Vercel first. Localhost cannot receive Telegram group messages. You can still paste a chat ID later if needed.

Ready to try it

Anyone with this site URL can view and edit checklists. Keep the Vercel URL private.

Open dashboard