DayPilot — Your Voice-First AI Day Planner
Inspiration
We all have tasks to finish, deadlines to meet, and plans we want to follow. But sometimes, deciding what to work on next becomes another task in itself.
I wanted to build something that makes daily planning feel more natural. Instead of manually arranging tasks in a calendar or constantly reorganizing a to-do list, what if you could simply tell an assistant what you need and receive an actionable plan?
That idea inspired DayPilot, a voice-first AI day planner designed to help people organize their day through natural-language interaction.
What it does
DayPilot helps users turn everyday requests into structured daily plans.
Its core capabilities include:
- Natural-language planning: Ask DayPilot to organize your day or prioritize pending tasks.
- Daily schedule generation: Create actionable plans based on tasks, deadlines, and available scheduling information.
- Task management: View pending tasks, create tasks, and mark tasks as completed.
- Deadline awareness: Access upcoming deadlines to support better prioritization.
- User preferences: Retrieve and update planning preferences.
- Adaptive planning: Generate new plans as tasks and priorities change.
- Voice-friendly interface: Interact through a browser-based interface designed around conversational requests.
- MCP integration: Expose DayPilot's capabilities to compatible Model Context Protocol clients.
The goal is simple: spend less time organizing your day and more time getting things done.
How I built it
I developed DayPilot using Python and FastAPI for the application backend, with HTML, CSS, and JavaScript for the browser interface.
The assistant processes natural-language requests and connects them to task management and planning functionality. The project includes AI-assisted responses and scheduling logic for generating daily plans.
A key technical component is the Model Context Protocol (MCP) server, implemented using the Python MCP SDK and FastMCP.
The MCP server exposes eight tools:
- get_tasks
- get_calendar
- get_deadlines
- get_user_preferences
- update_user_preferences
- create_task
- generate_daily_plan
- complete_task
The server uses Streamable HTTP to communicate with MCP clients.
I verified the integration using a real MCP client that successfully initialized a session, discovered all eight tools, and demonstrated task retrieval through get_tasks.
The project also includes automated tests to help validate core application functionality.
Challenges I faced
One of the biggest challenges was connecting the different parts of the application into a consistent experience.
Building the MCP server required understanding how tools are registered, discovered, and invoked through the protocol. I also encountered Python package compatibility and server startup issues while setting up the MCP environment.
Another challenge was handling natural-language requests reliably. Requests such as planning a day, viewing pending tasks, and completing a task need to trigger different actions. I worked on improving request handling and assistant responses so the experience would feel more useful and predictable.
Finally, I focused on making the interface simple enough for someone to use without needing to understand the underlying technical architecture.
What I learned
This project helped me gain practical experience with:
- Building and testing an MCP server
- Designing tools that can be discovered and called by MCP clients
- Integrating AI-assisted responses with application logic
- Building APIs with FastAPI
- Managing task and scheduling workflows
- Testing, debugging, and improving a complete application
- Presenting a technical project through a working product demo
I also learned that building an AI assistant involves more than generating responses. The assistant needs reliable tools, useful context, and a clear way to translate user requests into actions.
What's next for DayPilot?
My next goal is to explore deeper integrations with compatible voice assistants and external calendar or task-management services.
I would also like to improve personalized scheduling, support more dynamic replanning, and make DayPilot accessible beyond a locally hosted browser application.
DayPilot is an early step toward a more natural, conversational way to manage everyday productivity.
Built for the Build, Ship, Shape: Amazon Developer Hackathon — Alexa+ track.
Built With
- css3
- fastapi
- fastmcp
- html5
- javascript
- json
- model-context-protocol
- openai-api
- pytest
- python
Log in or sign up for Devpost to join the conversation.