An AI-powered task management application with real-time chat, event scheduling, intelligent automation, and webhook integrations.
Live Demo β’ Features β’ Quick Start β’ Development
DerPlanner Task Event Planner is a full-stack web application that helps you manage tasks and events through natural conversation with an AI assistant. Instead of clicking through forms, just tell DerPlanner what you need to do, and it will:
- β Create and manage tasks
- π Schedule events and meetings
- π¬ Have intelligent conversations about your work
- π Remember your conversation history
- β‘ Stream real-time responses
- π Share conversations with family and collaborate in real-time
- π± Work as a Progressive Web App (PWA) - install on any device
DerPlanner's webhook integrations enable powerful automation workflows. Here's a real-world example:
graph LR
A["π DerPlanner Task"] -->|Task Completed| B["π Webhook Trigger"]
C["π
DerPlanner Event"] -->|Event Started| B
B -->|HTTP POST| D["n8n Workflow Engine"]
D -->|Process Event| E{Workflow Logic}
E -->|Send Email| F["π§ Email Service"]
E -->|Send SMS| G["π± SMS Service"]
E -->|Create Contact| H["π₯ CRM System"]
E -->|Add to Campaign| I["π Marketing Platform"]
F --> J["β
Customer Notified"]
G --> J
H --> J
I --> J
style A fill:#e1f5ff
style C fill:#e1f5ff
style B fill:#fff3e0
style D fill:#f3e5f5
style J fill:#c8e6c9
How it works:
- Task Completion: When a task is marked complete in DerPlanner, a webhook triggers
- Event Start: When a scheduled event begins, another webhook fires
- n8n Processing: The webhook payload reaches your n8n workflow
- Automated Actions: n8n processes the data and triggers downstream services:
- Send customer confirmation emails
- Update CRM with new leads
- Add contacts to marketing campaigns
- Send SMS notifications
- Create calendar entries
- And much more...
Example Scenarios:
- π Lead Capture: Task "Follow up with lead X" β Complete β Webhook β Email sent + CRM updated
- π Event Marketing: Event "Product Launch" β Starts β Webhook β SMS blast + email campaign triggered
- π Analytics: Task completion β Webhook β Log to analytics platform + Slack notification
Let DerPlanner automate your entire blog publishing pipelineβfrom deep research to scheduled posts:
graph TD
A["π€ User Request"] -->|"Create 4-week blog schedule"| B["π€ AI Chat Interface"]
B -->|Routes to| C["π¬ Research Agent"]
C -->|Deep Research| D["π OpenAI o3-deep-research"]
D -->|Citation-backed insights| E["βοΈ Generate Content"]
E -->|Creates planned events| F["π
Event Calendar"]
F -->|Monday 9 AM| G["Event: Publish Post 1"]
F -->|Wednesday 9 AM| H["Event: Publish Post 2"]
F -->|Friday 9 AM| I["Event: Publish Post 3"]
G -->|Scheduled time arrives| J["π Webhook Trigger"]
H -->|Scheduled time arrives| J
I -->|Scheduled time arrives| J
J -->|HTTP POST with content| K{Route to Service}
K -->|Option A: n8n| L["n8n Automation Engine"]
K -->|Option B: Direct API| M["Blog Platform API"]
L -->|Process & Format| N["π€ Post to Platform"]
M -->|Direct publish| N
N -->|Auto-publish| O["β
Blog Post Live"]
O -->|Sync back| P["π Analytics & Feedback"]
P -->|Track engagement| F
style A fill:#e3f2fd
style B fill:#e3f2fd
style C fill:#f3e5f5
style D fill:#f3e5f5
style E fill:#fff3e0
style F fill:#e0f2f1
style G fill:#e0f2f1
style H fill:#e0f2f1
style I fill:#e0f2f1
style J fill:#fff3e0
style L fill:#ede7f6
style M fill:#ede7f6
style N fill:#c8e6c9
style O fill:#c8e6c9
style P fill:#b3e5fc
Workflow Breakdown:
- Natural Request: "Plan a 4-week blog schedule on AI trends with SEO optimization"
- Deep Research:
- Research Agent uses OpenAI's o3-deep-research model
- Gathers latest insights from across the web
- Returns citation-backed, structured content
- Content Planning:
- AI generates blog post outlines with key points
- Creates calendar events for publication dates/times
- Each event stores content metadata for publishing
- Automated Publishing (on schedule):
- Event trigger fires at scheduled time
- Webhook sends content payload
- Option A: n8n workflow formats, optimizes SEO, and posts to platform
- Option B: Direct API call to WordPress/Medium/Hashnode/Ghost
- Live & Tracked: Blog posts go live automatically with analytics sync
Real Example:
User: "Create a 4-week AI trends blog schedule, research the latest developments,
and auto-publish every Monday, Wednesday, and Friday at 9 AM to my WordPress blog"
Result:
β
Week 1: "Generative AI Breakthroughs" - Mon 9 AM
β
Week 1: "Enterprise AI Adoption" - Wed 9 AM
β
Week 1: "AI Ethics & Regulation" - Fri 9 AM
[... continues for 4 weeks ...]
All content researched, scheduled, and publishing automatically!
Supported Platforms:
- WordPress (via REST API)
- Medium (via API)
- Hashnode (via GraphQL)
- Ghost (via Admin API)
- Dev.to (via API)
- Any platform with webhook/API support via n8n
- Create tasks by typing naturally ("Create a task to finish the report")
- Set priority levels, due dates, and descriptions
- Track task status (pending, in progress, completed)
- Organize with tags and categories
- Schedule meetings and events in seconds
- Set locations, attendees, and reminders
- View upcoming events in a calendar
- Natural language like "Schedule a meeting tomorrow at 2 PM"
- Conduct comprehensive research on various topics
- Web search integration with citation-backed responses
- Multi-step research analysis and synthesis
- Extract key insights and patterns from findings
- Quick research for definitions and explanations
- Powered by OpenAI's GPT models (including o3/o4 for deep research)
- Understands natural language requests
- Intelligent message routing to the right agent
- Contextual responses based on conversation history
- Live streaming responses
- Message history
- Conversation memory (remembers previous context)
- Beautiful, responsive UI
- Share Conversations: Generate shareable links to invite others to collaborate on the same conversation in real-time
- Shared Context: Anyone with the link can see the full chat history, tasks, and events discussed
- Unified Workspace: Multiple users can work on the same tasks and events with synchronized updates
- Easy Access: No login required to join a shared conversation - just share the URL
- Overview of all tasks and events
- Quick stats (completed, pending, upcoming)
- Visual calendar view
- Search and filter options
- Event Webhooks: Trigger HTTP requests when events start (with configurable offset)
- Task Webhooks: Trigger HTTP requests on task completion, status changes, creation, or updates
- Flexible Configuration: Customize trigger events, authentication, retry logic, and request bodies
- Execution Logging: Complete audit trail of all webhook executions
- Test Mode: Test webhook configurations before enabling
- Event Alarms: Receive push notifications before events start (configurable timing: 5 minutes to 1 day before)
- Works Offline: Notifications appear even when the PWA is closed or device is locked
- User Preferences: Configure notification timing, sound, and display settings per user
- Service Worker Powered: Uses browser Push API for reliable, native-like notifications
- Smart Scheduling: Backend automatically monitors events and sends notifications at the right time
- Cross-Platform: Works on Android, iOS (limited), and Desktop browsers
Choose one of the following methods:
Perfect for: Production deployment, quick testing, or if you don't want to install PostgreSQL manually.
# 1. Clone the repository
git clone <repository-url>
cd derplanner-task-event-planner
# 2. Run the interactive setup (creates .env and starts everything)
# On macOS/Linux:
cd docker && chmod +x setup.sh && ./setup.sh
# On Windows (PowerShell):
cd docker
.\setup.ps1
# OR manually:
# Create .env file
cp docker/.env.example .env
# Edit .env with your OPENAI_API_KEY
# Start all services
docker-compose up -dAccess your application:
- π Frontend: http://localhost
- π Backend API: http://localhost:3001
- β€οΈ Health Check: http://localhost:3001/health
What you get:
- β PostgreSQL with pgvector (auto-configured)
- β Backend API (production build)
- β Frontend (production build with Nginx)
- β All networking handled automatically
- β Data persists between restarts
Useful commands:
docker-compose logs -f # View logs
docker-compose down # Stop services
docker-compose restart backend # Restart a service
docker-compose down -v # Remove everything including dataπ Full Docker documentation: See docker/README.md or docker/QUICKSTART.md
Perfect for: Active development, debugging, or learning the codebase.
- Node.js v18+ (LTS recommended)
- npm or yarn
- PostgreSQL (with pgvector extension)
# 1. Clone the repository
git clone <repository-url>
cd derplanner-task-event-planner
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp server/.env.example server/.env
# Edit server/.env with your PostgreSQL credentials and OpenAI API key
# 4. Start PostgreSQL (if not running)
# Make sure PostgreSQL is installed and running on port 5432
# 5. Start the development servers
# Terminal 1: Start the backend (with hot reload)
cd server && npm run dev:watch
# Terminal 2: Start the frontend (with hot reload)
npm run devAccess your application:
- π Frontend: http://localhost:5173
- π Backend API: http://localhost:3001
DerPlanner makes it easy to collaborate with family and friends by sharing conversations, tasks, and events.
- Open Settings: Click the settings icon in the chat interface to open the AI Configuration modal
- Go to Share Tab: Navigate to the "Share" tab
- Copy Link: Click "Copy Link" to get a shareable URL
- Share with Others: Send the link via email, Slack, Teams, or any communication tool
When you share a conversation link, anyone with the link can:
- β See all previous messages and responses
- π View all tasks created during the conversation (with full details)
- π Access all events scheduled in the conversation (including attendees and reminders)
- π¬ Continue the conversation and add new messages
- π Create additional tasks and events
- π View the AI's analysis and recommendations
- Team Planning: Share a planning conversation with your team to keep everyone aligned
- Project Collaboration: Multiple person can contribute to task and event management
- Client Updates: Share progress conversations and milestones with clients
- Knowledge Sharing: Distribute research findings and analysis across your organization
- Open the chat interface
- Type:
"Create a task to finish the project by Friday" - The bot will create the task automatically
- Type:
"Schedule a meeting with John tomorrow at 2 PM" - The bot will add it to your calendar
- Type:
"How many tasks do I have this week?" - Get instant stats and summaries
- Type:
"Research the latest AI trends in 2025" - The bot will conduct comprehensive research and provide citation-backed insights
- Ask follow-up questions for deeper analysis
derplanner-task-event-planner/
βββ src/ # React frontend
β βββ components/ # UI components
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utilities and helpers
β βββ pages/ # Main pages
β
βββ server/ # Express backend
β βββ src/
β β βββ mastra/ # AI agents and workflows
β β βββ routes/ # API endpoints
β β βββ config/ # Database config
β β βββ types/ # TypeScript types
β βββ package.json
β
βββ tests/ # Integration tests
The system uses multiple specialized agents coordinated through an intelligent routing workflow:
- Task Agent: Handles task creation, updates, and management
- Event Agent: Manages event scheduling and calendar operations
- Research Agent: Conducts comprehensive research with web search integration
- Uses OpenAI's Deep Research API (o3-deep-research/o4-mini-deep-research)
- Provides
webResearchToolfor complex, multi-faceted research - Provides
quickResearchToolfor definitions, explanations, and single-topic queries - Returns citation-backed, structured responses
- Routing Agent: Intelligently routes user messages to the appropriate agent
See server/src/mastra/agents/ for implementation details.
# Build frontend
npm run build
# Build backend (in server/)
cd server && npm run build
# Run production server
cd server && npm start- React 18 - UI framework
- TypeScript - Type safety
- Vite - Fast build tool
- Tailwind CSS - Styling
- shadcn/ui - Component library
- Vitest - Testing
- Express.js - Web framework
- TypeScript - Type safety
- PostgreSQL - Database with pgvector for embeddings
- OpenAI API - LLM integration (including Deep Research models for o3/o4)
- Mastra - AI orchestration with multi-agent support
- Mastra Memory - PostgreSQL-backed conversation context
- Automatic context retention across sessions
- Intelligent routing and multi-agent coordination
- Socket.io - Real-time communication
- Node.js - Runtime
- npm - Package manager
GET /healthReturns server status.
POST /api/agent/general # General questions
POST /api/agent/task # Task-specific requests
POST /api/agent/event # Event scheduling
POST /api/agent/stream # Streaming responsesGET /api/tasks # List all tasks
GET /api/tasks/:id # Get specific task
POST /api/tasks # Create task
PUT /api/tasks/:id # Update task
DELETE /api/tasks/:id # Delete taskGET /api/events # List all events
GET /api/events/:id # Get specific event
POST /api/events # Create event
PUT /api/events/:id # Update event
DELETE /api/events/:id # Delete eventGET /api/summary/daily # Daily summary
POST /api/search # Search tasks/events# Event Webhooks
PUT /api/events/:id/webhook # Update event webhook configuration
GET /api/events/:id/webhook/logs # Get webhook execution logs
POST /api/events/:id/webhook/test # Test webhook configuration
POST /api/events/:id/webhook/trigger # Manually trigger webhook
# Task Webhooks
PUT /api/tasks/:id/webhook # Update task webhook configuration
GET /api/tasks/:id/webhook/logs # Get webhook execution logs
POST /api/tasks/:id/webhook/test # Test webhook configuration
POST /api/tasks/:id/webhook/trigger # Manually trigger webhookGET /api/push/public-key # Get VAPID public key for subscription
POST /api/push/subscribe # Subscribe to push notifications
POST /api/push/unsubscribe # Unsubscribe from push notifications
POST /api/push/test # Send test notification
GET /api/push/logs/:userId # Get notification logs
GET /api/push/subscriptions/:userId # Get user's push subscriptions# Frontend
npm run dev # Start dev server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run linter
npm test # Run tests
# Backend (cd server/)
npm run dev # Start dev server with auto-reload
npm run build # Build TypeScript
npm start # Run production server
npm run dev:watch # Watch modeCreate a .env file in the server/ directory:
# Server
PORT=3001
NODE_ENV=development
# Database (optional)
DATABASE_URL=postgresql://user:password@localhost:5432/derplanner_task_event_planner
POSTGRES_DB=derplanner_task_event_planner
# OpenAI
OPENAI_API_KEY=sk_your_key_here
DAILY_REQUEST_LIMIT=20
# Push Notifications (Optional - for PWA event alarms)
# Generate keys with: cd server && node generate-vapid-keys.js
VAPID_PUBLIC_KEY=your_vapid_public_key_here
VAPID_PRIVATE_KEY=your_vapid_private_key_here
VAPID_SUBJECT=mailto:[email protected]
# Other services
# Add as needed- Create a branch:
git checkout -b feature/your-feature - Make changes: Edit files as needed
- Test locally: Run
npm run dev(both frontend and backend) - Commit:
git commit -m "Add your feature" - Push:
git push origin feature/your-feature - Create PR: Open a pull request
We welcome contributions! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit (
git commit -m 'Add amazing feature') - Push (
git push origin feature/amazing-feature) - Open a Pull Request
- Style Guide: Follow ESLint rules
- TypeScript: Full type coverage required
- Components: Keep them small and reusable
- Comments: Add comments for complex logic
- Commits: Use clear, descriptive messages
- User-First: Design for real users, not just developers
- Simple: Easy to understand and use
- Reliable: Robust error handling
- Maintainable: Clean, well-organized code
- Scalable: Built to grow
Q: Do I need a database to run this locally?
A: No, it works with in-memory storage for development. PostgreSQL is optional.
Q: Can I use this without OpenAI?
A: The AI features require OpenAI, but the task management works without it.
Q: Is this production-ready?
A: Yes! It's fully functional. Make sure to set up proper environment variables.
Q: How do I customize the AI responses?
A: Edit the agent prompts in server/src/mastra/agents/.
Q: Can I add more AI agents?
A: Absolutely! See server/src/mastra/agents/ for examples.
Q: How do push notifications work?
A: Push notifications use the browser Push API and Service Workers. Configure alarm settings in the "Alarm" tab, and you'll receive notifications before events start - even when the app is closed. Generate VAPID keys with node server/generate-vapid-keys.js and add them to your .env file.
- Issues: Open an issue on GitHub
- Discussions: Use GitHub Discussions
- Docs: Check
/docsfolder - Email: Support contact here
Licensed under the Apache License, Version 2.0. See LICENSE.md for full license text.
If you find this project helpful, please:
- β Star the repository
- π΄ Fork it
- π€ Share it with others