A powerful Discord bot that helps you set and manage reminders with support for repeating reminders, flexible time formats, and web monitoring.
- Personal Reminders - Set reminders that mention only you
- Everyone Reminders - Set reminders that mention @everyone (requires permissions)
- Repeating Reminders - Set reminders that repeat at custom intervals
- Flexible Time Formats - Support for relative time, shortcuts, and exact timestamps
- Web Interface - Built-in web server for monitoring and health checks
- Persistent Storage - Reminders are saved to JSON file and persist across restarts
!remind <time> <message>- Set a personal reminder!remindall <time> <message>- Set a reminder that mentions @everyone!myreminders- List all your active reminders!deletereminder <id>- Delete a specific reminder!stoprepeat <id>- Stop a repeating reminder!help- Show detailed help information
- Relative:
5m,2h,3d(minutes, hours, days) - Shortcuts:
tomorrow_9am,today_3pm - Exact:
2024-12-25_18:00(YYYY-MM-DD_HH:MM)
Add repeat:<interval> to any reminder:
repeat:30m- Every 30 minutesrepeat:2h- Every 2 hoursrepeat:1d- Every day
Add until:<time> to stop at a specific time:
until:5pm- Stop at 5 PM todayuntil:tomorrow_6pm- Stop tomorrow at 6 PM
Example: !remind 9am repeat:1h until:5pm Status check
- Python 3.8+
- Discord Bot Token
- Discord Server with appropriate permissions
-
Clone the repository
git clone <repository-url> cd reminder-bot
-
Install dependencies
pip install -r requirements.txt
-
Configure environment variables
cp .env.example .env
Edit
.envwith your configuration:DISCORD_BOT_TOKEN=your_discord_bot_token_here DISCORD_CHANNEL_ID=your_default_channel_id_here REMINDERS_FILE=reminders.json CHECK_INTERVAL=30 COMMAND_PREFIX=!
-
Run the bot
python main.py
| Variable | Description | Default |
|---|---|---|
DISCORD_BOT_TOKEN |
Your Discord bot token | Required |
DISCORD_CHANNEL_ID |
Default channel ID for reminders | Required |
REMINDERS_FILE |
File to store reminders | reminders.json |
CHECK_INTERVAL |
How often to check for due reminders (seconds) | 30 |
COMMAND_PREFIX |
Bot command prefix | ! |
- Go to Discord Developer Portal
- Create a new application
- Go to "Bot" section and create a bot
- Copy the bot token to your
.envfile - Enable "Message Content Intent" in bot settings
- Invite bot to your server with appropriate permissions:
- Send Messages
- Use Slash Commands
- Mention Everyone (for
!remindallcommand)
The bot includes a built-in web server that provides:
- Home Page (
/) - Status dashboard with bot information - Health Check (
/health) - JSON health status for monitoring - Ping (
/ping) - Simple ping endpoint
The web server runs on port 8080 by default and is useful for:
- Monitoring bot status
- Deployment health checks (Render, Heroku, etc.)
- Keeping the bot alive on cloud platforms
reminder-bot/
├── main.py # Application entry point
├── reminder_bot.py # Discord bot implementation
├── reminder_service.py # Reminder storage and management
├── web_server.py # Flask web server
├── config.py # Configuration management
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
├── .gitignore # Git ignore rules
└── README.md # This file
!remind 5m Take a break
!remind 2h Meeting with team
!remind tomorrow_9am Daily standup
!remind 9am repeat:1h until:5pm Hourly check-in
!remind tomorrow_10am repeat:1d Daily standup
!remindall 1h repeat:4h Server maintenance check
!myreminders # List your reminders
!deletereminder 123456_1234567890.0 # Delete specific reminder
!stoprepeat 123456_1234567890.0 # Stop repeating reminder
python main.pyThe bot is designed to work with cloud platforms like Render, Heroku, or Railway:
- Set environment variables in your platform
- The web server keeps the bot alive and provides health checks
- Reminders are stored in
reminders.json(consider using a database for production)
The bot logs to both console and reminder_bot.log file:
- INFO: General operations and reminder activities
- WARNING: Non-critical issues
- ERROR: Critical errors with full stack traces
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is open source and available under the MIT License.
If you encounter any issues or have questions:
- Check the logs in
reminder_bot.log - Verify your
.envconfiguration - Ensure the bot has proper Discord permissions
- Check the web interface at
http://localhost:8080for status
Built with ❤️ using Python, Discord.py & Flask