A simple but powerful task management bot with a live updating board, reminders, deadlines, and team member tagging — all controlled through Discord UI buttons.
- Go to https://discord.com/developers/applications
- Click New Application → name it "TaskBot"
- Go to Bot tab → click Add Bot
- Under Token → click Reset Token → copy the token
- Under Privileged Gateway Intents, enable:
- ✅ Server Members Intent
- ✅ Message Content Intent
Go to OAuth2 → URL Generator:
- Scopes:
bot,applications.commands - Bot Permissions:
Send Messages,Embed Links,Read Message History,Use Slash Commands,Manage Messages
Copy the generated URL and open it in your browser to invite the bot.
# Clone or download the bot files
cd discord-taskbot
# Install dependencies
npm install
# Copy and fill in your token
cp .env.example .env
# Edit .env and paste your DISCORD_TOKEN
# Start the bot
npm start| Command | Description |
|---|---|
/tasklist |
Posts the live task board in the current channel. Use this once to set up — the board updates automatically! |
/addtask |
Quickly add a task via command options |
/settings |
Open server-wide settings panel |
After running /tasklist, a pinned message appears with buttons:
| Button | Action |
|---|---|
| ➕ Add Task | Opens a form to add a task with title, description, assignees, deadline, reminder |
| ✅ Complete | Pick a task to mark done |
| ✏️ Edit | Edit any existing task |
| 🗑️ Delete | Remove a task |
| ⚙️ Settings | Configure timezone & working hours |
| Setting | Description |
|---|---|
| 🌍 Set Timezone | Server-wide timezone (e.g. Europe/Berlin) |
| 🕘 Work Hours | Reminder window (e.g. 09:00 – 17:00) |
| 📅 Work Days | Which days to send reminders (0=Sun, 1=Mon, … 6=Sat) |
| 👤 My Timezone | Each member can set their own timezone for personal DM reminders |
- Set
reminder: yeswhen adding a task - Reminders are sent as DMs to assigned users
- Only sent during working hours in the member's timezone
- Escalate in urgency: 🔔 normal →
⚠️ 3 days left → 🚨 last day - Stop automatically when the deadline passes or task is completed
discord-taskbot/
├── bot.js # Main entry point
├── commands.js # Slash command logic
├── buttonHandlers.js # Button click handlers
├── modalHandlers.js # Form submission handlers
├── selectHandlers.js # Dropdown selection handlers
├── taskManager.js # Data persistence (JSON files)
├── embedBuilder.js # Discord embed builder
├── reminderService.js # Background reminder scheduler
├── deploy-commands.js # Registers slash commands with Discord
├── package.json
├── .env.example
└── data/ # Auto-created
├── tasks.json # Task data
└── settings.json # Settings data
- Pin the task board message so it's always visible
- Use
/tasklistin a dedicated#taskschannel - Members can set their own timezone with the 👤 My Timezone button so reminders arrive at the right time for them
- Completed tasks are kept (last 5 shown) so the board shows progress
- Persistent storage: Replace
data/*.jsonwith a real database (SQLite, PostgreSQL) for large servers - Multiple boards: Modify
taskManager.jsto support per-channel boards - Recurring tasks: Add a
recurrencefield and handle inreminderService.js