A powerful Telegram bot that helps you manage reminders with support for one-time and recurring reminders. Never forget important tasks, meetings, or events again!
- One-time reminders - Set specific date/time reminders
 - Weekly reminders - Recurring every week
 - Yearly reminders - Recurring every year
 
- Full date/time: 
2024-12-25 14:30 Buy Christmas gifts - Date with hour only: 
2024-12-25 14 Meeting(defaults to 14:00) - Date only: 
2024-12-25 Shopping(defaults to 10:00) - Multiple date formats: 
DD/MM/YYYY,YYYY-MM-DD,DD-MM-YYYY 
- Weekly with time: 
weekly 09:00 Team meeting - Weekly at current time: 
weekly Grocery shopping - Yearly with time: 
yearly 18:00 Anniversary dinner - Yearly at current time: 
yearly Pay subscription 
/list- View pending reminders/listall- View all reminders (including sent ones)/delete <ID>- Delete specific reminders by ID- User-specific reminders (privacy protected)
 
- Checks every minute for due reminders
 - Sends overdue reminders even if time has passed
 - Automatic scheduling for recurring reminders
 - Handles timezone-aware scheduling
 
- Python 3.8+
 - Telegram Bot Token (get from @BotFather)
 
- Clone the repository
 
git clone <your-repo-url>
cd viberemind- Install dependencies
 
pip install -r requirements.txt- Configure environment
 
cp .env.example .env
# Edit .env and add your TELEGRAM_BOT_TOKEN- Run the bot
 
python3 viberemind.py2024-12-25 14:30 Buy Christmas gifts
25/12/2024 09:00 Doctor appointment
14:30 31/12/2024 New Year party
2024-12-25 14 Team meeting
2024-12-25 Shopping
weekly 09:00 Team standup
yearly 12:00 Birthday celebration
weekly Take out trash
yearly Renew insurance
/start - Start the bot
/help - Show detailed help
/list - View pending reminders
/listall - View all reminders
/delete 5 - Delete reminder with ID 5
- Run deployment script
 
chmod +x deploy.sh
sudo ./deploy.sh- Configure bot token
 
sudo nano /opt/reminder-bot/.env
# Add your TELEGRAM_BOT_TOKEN- Start the service
 
sudo systemctl start reminder-bot# Check status
sudo systemctl status reminder-bot
# View logs
sudo journalctl -u reminder-bot -f
# Restart service
sudo systemctl restart reminder-bot
# Stop service
sudo systemctl stop reminder-botcd /opt/reminder-bot
sudo -u reminder-bot git pull
sudo -u reminder-bot venv/bin/pip install -r requirements.txt --upgrade
sudo systemctl restart reminder-botThe bot uses SQLite with the following schema:
CREATE TABLE reminders (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    user_id INTEGER NOT NULL,
    chat_id INTEGER NOT NULL,
    reminder_text TEXT NOT NULL,
    reminder_time TEXT NOT NULL,
    sent BOOLEAN DEFAULT 0,
    recurring_type TEXT DEFAULT NULL,
    next_reminder_time TEXT DEFAULT NULL,
    created_at TEXT DEFAULT CURRENT_TIMESTAMP
);| Variable | Description | Required | Default | 
|---|---|---|---|
TELEGRAM_BOT_TOKEN | 
Bot token from @BotFather | β Yes | - | 
LOG_LEVEL | 
Logging level | β No | INFO | 
DATABASE_FILE | 
SQLite database path | β No | reminders.db | 
viberemind/
βββ viberemind.py          # Main bot application
βββ requirements.txt       # Python dependencies
βββ deploy.sh             # Production deployment script
βββ .env.example          # Environment template
βββ DEPLOYMENT.md         # Deployment guide
βββ README.md            # This file
- User Isolation - Users can only see/manage their own reminders
 - Input Validation - Comprehensive validation of dates and commands
 - Secure Storage - Environment variables for sensitive data
 - Sandboxed Execution - Runs as non-privileged user in production
 
Bot not starting:
# Check logs
sudo journalctl -u reminder-bot -n 50
# Verify token
sudo cat /opt/reminder-bot/.envReminders not sending:
# Check if service is running
sudo systemctl status reminder-bot
# Check database permissions
ls -la /opt/reminder-bot/reminders.dbPermission errors:
# Fix ownership
sudo chown -R reminder-bot:reminder-bot /opt/reminder-bot- Set up development environment
 
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt- Create development config
 
cp .env.example .env
# Add your development bot token- Run in development mode
 
python3 viberemind.py- Database changes go in 
init_database() - New commands need handlers in 
main() - Update help text in 
help_command() - Add tests for new functionality
 
This project is open source. Feel free to use, modify, and distribute as needed.
- Fork the repository
 - Create a feature branch
 - Make your changes
 - Add tests if applicable
 - Submit a pull request
 
- Issues: GitHub Issues
 - Questions: Create an issue with the 
questionlabel - Feature Requests: Create an issue with the 
enhancementlabel 
Made with β€οΈ for better time management