Todoist AI Bot Integration
Connect your AI chatbot to Todoist. Manage tasks, projects, and productivity through OpenClaw or OpenClaw via chat.
Overview
Connect your AI chatbot to Todoist and manage your tasks entirely through chat. Add tasks, check your schedule, complete items, and get productivity insights - all by messaging your bot.
What You Can Do
- Add tasks: "Add buy milk to my shopping list"
- View tasks: "What's on my agenda today?"
- Complete tasks: "Mark the report as done"
- Reschedule: "Move the dentist appointment to Friday"
- Projects: "Show me all tasks in the Work project"
- Search: "Find all tasks tagged with urgent"
Setup Guide
Step 1: Get Todoist API Token
- Go to todoist.com/app/settings/integrations
- Scroll to "API token"
- Copy your token
Step 2: Configure Your Bot
# Todoist Integration
TODOIST_ENABLED=true
TODOIST_API_KEY=your-api-token-here
Step 3: Test Connection
# Restart bot
pm2 restart openclaw
# Test in chat
"Show my tasks for today"
Usage Examples
Quick Add
Natural language task creation:
You: "Remind me to call John tomorrow at 2pm" Bot: "Added task: 'Call John' due tomorrow at 2:00 PM ā"
You: "Add 'Review proposal' to work project, high priority, due Friday" Bot: "Added to Work project: 'Review proposal' (Priority 1) due Friday ā"
View Tasks
You: "What do I need to do today?" Bot: "š Today's Tasks (5 items):
High Priority:
- [ ] Finish quarterly report
Work:
- [ ] Team standup @ 10:00
- [ ] Client call @ 14:00
Personal:
- [ ] Dentist @ 16:30
- [ ] Pick up groceries"
Complete Tasks
You: "I finished the quarterly report" Bot: "Completed: 'Finish quarterly report' ā
Great job! 4 tasks remaining for today."
Reschedule
You: "Push the client call to tomorrow" Bot: "Rescheduled: 'Client call' moved to tomorrow at 14:00 ā"
Project Overview
You: "How's the website project looking?" Bot: "š Website Redesign Project:
Progress: 8/15 tasks complete (53%)
Overdue (2):
- Design mockups (2 days)
- Content review (1 day)
Due This Week (3):
- Homepage layout
- Mobile responsive
- SEO optimization"
Advanced Features
Smart Parsing
The AI understands context:
You: "Add eggs, milk, and bread to shopping" Bot: "Added 3 tasks to Shopping list:
- Eggs
- Milk
- Bread ā"
You: "Schedule a meeting with Sarah next Tuesday at 3" Bot: "Added: 'Meeting with Sarah' scheduled for Tuesday, Feb 4 at 15:00 ā"
Recurring Tasks
You: "Add 'Weekly review' every Friday at 4pm" Bot: "Added recurring task: 'Weekly review' every Friday at 16:00 ā"
Labels and Filters
You: "Show all tasks tagged @urgent" Bot: "Urgent Tasks (3):
- Submit tax forms (Due: Tomorrow)
- Fix production bug (Due: Today)
- Respond to client (No date)"
Productivity Stats
You: "How productive was I this week?" Bot: "š Weekly Productivity Report:
Tasks Completed: 23 Tasks Created: 18 Completion Rate: 92%
By Project:
- Work: 12 completed
- Personal: 8 completed
- Shopping: 3 completed
Best Day: Wednesday (8 tasks) Karma Points: +45"
Automation Ideas
Morning Briefing
TODOIST_MORNING_BRIEFING=true
BRIEFING_TIME=07:30
Bot sends at 7:30 AM: "āļø Good morning! Here's your day:
5 tasks for today:
- [ ] Standup meeting @ 10:00
- [ ] Review PR @ 11:00
- [ ] Lunch with team @ 12:30
- [ ] Client demo @ 15:00
- [ ] Gym @ 18:00
Overdue (1):
- [ ] Send invoice (yesterday)
You've got this! šŖ"
Evening Review
TODOIST_EVENING_REVIEW=true
REVIEW_TIME=21:00
Bot sends at 9 PM: "š Daily wrap-up:
Completed today: 6 tasks Moved to tomorrow: 2 tasks Added today: 3 tasks
Tomorrow's Preview: 4 tasks scheduled
Anything to add before tomorrow?"
Automatic Project Creation
Triggered by external events:
// When new MacStories Weekly is published
// Create project for next issue
async function createNextIssue() {
const issueNumber = await getCurrentIssue() + 1;
await todoist.addProject({
name: `MacStories Weekly #${issueNumber}`,
parent_id: process.env.NEWSLETTER_PROJECT_ID
});
// Add standard tasks
await todoist.addTasks([
{ content: 'Write main article', project: newProject.id },
{ content: 'Curate app picks', project: newProject.id },
{ content: 'Record audio version', project: newProject.id }
]);
}
Integration Patterns
Voice Task Entry
Combine with voice features:
š¤ "Add call plumber to home tasks for tomorrow" š¤ "Done! Added 'Call plumber' to Home, due tomorrow."
Cross-Integration
Combine Todoist with other services:
You: "Create a task from my last email from John" Bot: "Created task: 'Reply to John re: Project Update' with email link attached ā"
You: "Add tasks from today's meeting notes" Bot: "Found 4 action items in your meeting notes. Added:
- Send proposal to client
- Schedule follow-up call
- Review contract terms
- Update project timeline"
Replace Zapier
Instead of paying for Zapier automations:
// Cron job on your VPS - runs every hour
async function checkRSSAndCreateTasks() {
const newItems = await checkRSSFeed('your-feed-url');
for (const item of newItems) {
await todoist.addTask({
content: `Review: ${item.title}`,
project_id: process.env.READING_PROJECT,
labels: ['@reading']
});
}
}
Savings: £15-50/month in Zapier fees
Configuration
Default Project
TODOIST_DEFAULT_PROJECT=Inbox
TODOIST_DEFAULT_PRIORITY=2
Project Shortcuts
TODOIST_PROJECT_ALIASES="
work=2294567890
home=2294567891
shopping=2294567892
"
You: "Add meeting prep to work" Bot: Uses the correct project ID automatically.
Natural Language Settings
# Date parsing
TODOIST_DATE_FORMAT=European # DD/MM format
TODOIST_WEEK_START=Monday
TODOIST_DEFAULT_TIME=09:00
Troubleshooting
Tasks not adding
# Check API connection
curl -X GET "https://api.todoist.com/rest/v2/tasks" \
-H "Authorization: Bearer YOUR_TOKEN"
Wrong project/label
- Check project and label names match exactly
- Use project IDs for reliability
- Verify API token permissions
Duplicates created
- Implement deduplication check
- Use task IDs for updates
- Check for webhook duplicates
Security
Token Permissions
Todoist API tokens have full access. Protect them:
# Store securely
TODOIST_API_KEY=your-token
# Never log
LOG_API_KEYS=false
User Isolation
For multi-user setups, each user needs their own token.
Related Guides
Need Help?
Todoist integration with natural language understanding requires proper configuration. Our setup service includes full Todoist integration with automation setup.
Need a VPS for Your Bot?
We recommend Hostinger KVM 2 VPS - reliable, fast, and perfect for AI chatbots. Get started with our recommended setup.
Get Hostinger VPSNeed Help With Setup?
Got your VPS? Let us handle the technical work. Professional setup and maintenance for OpenClaw (formerly Clawd.bot).