Skip to content

Todo Reminder System

This is a Todo management system based on Cloudflare Workers. It supports adding, editing, deleting, and notifying todo items, and sends reminder messages via a Telegram Bot.

  • Login authentication (password + optional reCAPTCHA)
  • Add/Edit/Delete todos
  • List display with pagination and sorting
  • Test notification button
  • Scheduled daily reminder at 14:00 Beijing Time
  • Telegram Bot reminder support (with MarkdownV2 escaping)
  1. Create a Worker in the Cloudflare Dashboard
    Create Worker Step 1
    Create Worker Step 2

  2. Set environment variables (in Vars):

    • PASS: Login password (required)
    • TGID: Telegram chat_id (required)
    • TGTOKEN: Telegram Bot Token (required)
    • RECAPTCHA_SITE_KEY: Google reCAPTCHA site key (optional)
    • RECAPTCHA_SECRET: Google reCAPTCHA secret (optional)

    Set Vars

  3. Create and bind the KV namespace TODO_KV to store the todos list

    Bind KV

  4. Upload worker.js and save deployment

    Upload and Deploy

Github

Visit the home page / and log in with your password. The login status is managed via a loggedIn=true cookie.

If reCAPTCHA is enabled, verification is also required.

All API paths start with /api/todos and require login:

  • GET /api/todos: Get all todos
  • GET /api/todos/:id: Get a specific todo
  • POST /api/todos: Create a new todo
  • PUT /api/todos/:id: Update a todo
  • DELETE /api/todos/:id: Delete a todo
  • POST /api/todos/:id/test-notification: Test Telegram notification

Set the Worker’s Cron trigger to 0 6 * * * (UTC), which corresponds to 14:00 Beijing Time. The system will iterate through all todos and send notifications based on advanceDays and continuousDays.

Example:

🔔 Dear Boss, this is a reminder from Xiaobao:
Todo: Submit the quarterly report
Due Date: 2025/05/20
You have 3 days left to take action.
  • Use wrangler dev to test page rendering
  • Use the KV simulator (wrangler kv:namespace) to store data
  • Or split logic into functions for easier testing

This project is suitable for:

  • Individuals or small teams who need recurring, structured reminders;
  • People who prefer Telegram Bot as the primary notification channel instead of SMS or email;
  • Developers looking for a serverless solution using Cloudflare Workers + KV storage;
  • Users who want automated scheduled reminders (without using heavyweight platforms like DingTalk or Slack);
  • Anyone needing a lightweight, clientless, cross-platform todo reminder system;
  • Telegram users who want daily reminder messages (e.g., business renewals, study plans);
  • Projects running in resource-constrained environments or aiming to use Cloudflare’s free tier.

MIT License

AgADbxkAAgf-GFU.webp AgADbhkAAgf-GFU.webp AgADcRkAAgf-GFU.webp AgADcBkAAgf-GFU.webp