Discord Reminder Daemon is a lightweight background client that logs in as a Discord bot and sends scheduled reminder messages to a specified channel. Designed for one-shot execution, it’s ideal for use with cron jobs, GitHub Actions, or any external scheduler.
Built with Node.js and discord.js, this daemon ensures your team never misses a beat — without keeping the bot online full-time.
- 🔔 Sends automated reminder messages
- 💬 Integrates with any Discord text channel
- 🎨 Customizable message content via .env
- ⚙️ Simple and environment-based configuration
- ⏰ Works with any external scheduler (cron, GitHub Actions, Railway, etc.)
- Node.js - Runtime environment
- TypeScript - Programming language
- Discord.js (v14.18.0) - Discord API wrapper
- dotenv - Environment variable management
- moment-timezone - Date and time handling
- node-cron - Task scheduling
- Node.js (v14 or higher)
- Yarn package manager
- Discord Bot Token
- Discord Channel ID
- Clone the repository:
git clone [repository-url]- Install dependencies:
yarn install- Start the bot:
yarn startThe bot will:
- Connect to Discord
- Send a reminder message to the specified channel
- Automatically disconnect after sending the message
Configure your environment variables in the .env file:
TOKEN=your_discord_bot_token
CHANNEL_ID=your_discord_channel_id
MESSAGE=your_custom_message
SCHEDULE_HOUR=17 # 24-hour format
TIMEZONE=your_timezone # (e.g., America/Sao_Paulo, America/New_York)
To configure the bot in GitHub Actions, add the following secrets in your repository settings:
TOKEN: Your Discord bot tokenCHANNEL_ID: Your Discord channel IDMESSAGE: Your custom messageSCHEDULE_HOUR: The hour when the reminder should be sent (24-hour format)TIMEZONE: The timezone in which the message should be scheduled (e.g., America/Sao_Paulo, America/New_York)
discord-reminder-daemon/
├── src/
│ └── index.ts # Main bot implementation
├── .env # Environment variables
├── package.json # Project dependencies
├── tsconfig.json # TypeScript configuration
└── yarn.lock # Dependency lock file
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the ISC License.
Made with ❤️ by Gustavo Abel