🤖 Open Source Assistant
🤖

ReminderBot

A fully-featured Telegram Bot built on Cloudflare Workers. Manage reminders, events, and tasks with multi-calendar support.

🌍
Timezones
📅
Calendars
🔔
Events
🛡️
Secure KV
About ReminderBot
☁️

Serverless & Scalable

ReminderBot runs entirely on the Cloudflare Edge. It utilizes Cloudflare Workers for instant responses and KV storage for persistent, low-latency data access.

Built with JavaScript, it handles complex logic like multi-calendar conversions (Jalali, Hijri, Hebrew) and scheduled tasks via Cron Triggers without a traditional server.

🐼 Cloudflare Workers 💾 KV 📱 Telegram
Key Features

Why Use ReminderBot?

📅

Multi-Calendar

Supports Gregorian, Jalali, Hijri, Hebrew, Chinese, and Hindu Saka calendars for diverse users.

Smart Reminders

Set quick timers (10m), specific dates, or daily recurring reminders with natural language commands.

🎯

Custom Events

Create personalized events for birthdays or anniversaries and get notified automatically.

🌍

Timezone Aware

Full IANA timezone support ensures you get notified at the exact right time, anywhere in the world.

🔒

Privacy First

Data stored in secure Cloudflare KV. No third-party tracking or ads.

🔗

To-Do Integration

Syncs with To-Do Bot to manage your tasks and reminders in one place.

Getting Started

Deployment

Quick Deploy

Clone, install dependencies, and deploy using Wrangler CLI:

# Clone the repository
git clone https://github.com/psdkjoon/reminder
# Install dependencies
npm install
# Login to Cloudflare
npx wrangler login
# Set your Bot Token
npx wrangler secret put BOT_TOKEN
# Deploy
npx wrangler deploy

Configuration

Ensure you have your wrangler.toml configured with your KV bindings and schedule triggers.

[triggers]
crons = ["0 * * * *"]
Command Reference

Bot Commands

CommandActionDescription
/startInitializeStarts the bot and sets up basic data. Supports deep links (e.g., ?start=tz_Europe/London).
/remindReminderInteractive reminder setup. Supports quick timers (e.g., /remind 10m) or specific dates.
/subscribeEventsSubscribe to daily event notifications at a specific time (e.g., /subscribe 09:00).
/eventsBrowseToggle event packs (Gregorian, Jalali, etc.) and enable/disable specific holidays.
/addeventCustomAdd a custom event (e.g., birthday) to your personal calendar.
/timezoneSettingsSet your IANA timezone for accurate reminder timing.
/todoTasksView your active tasks from the linked To-Do Bot.
/broadcastAdminSend a message to all users (Admin only).
How to Use

Workflow Examples

⏱️ Quick Timer

User: /remind 15m Check laundry
Bot: ✅ Reminder Set!

Set a quick relative timer. The bot will notify you after the duration expires.

📅 Specific Date

User: /remind 2024-12-25 09:00 Christmas Morning
Bot: ✅ Saved!

Set a reminder for a specific date and time. Requires timezone setup first.

🌍 Timezone Setup

User: /timezone
Bot: 🌍 Select Your Region
User: [Selects Asia/Tehran]

Pick your timezone from an interactive region menu to ensure accurate scheduling.

🔔 Event Subscription

User: /subscribe 08:00
User: /events
User: [Toggles Persian Holidays]

Subscribe to daily notifications and choose which event packs (Jalali, Hijri, etc.) to follow.

Ready to deploy your own bot? 🚀

Get ReminderBot on GitHub