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