Inspiration

TaskPilot started with a simple thought: planning our day should not become another task we have to struggle with.

As students, we understand how difficult it can be to balance studies, deadlines, tests, personal commitments, and the unexpected things that come up every day. Making a timetable is easy; following it when the day doesn't go as planned is the real challenge. Most planning tools help us organise tasks, but we wanted to build something that could actually help us think through a plan, adapt to changes, and stay in control of our time.

That idea became TaskPilot, an AI-powered conversational planning assistant that turns natural-language instructions into structured, manageable schedules. Instead of filling out complicated forms, users can simply explain what they need to do, when their deadlines are, and how much time they have available. TaskPilot uses AI to generate a plan, break larger goals into smaller tasks, and schedule them according to the user's availability.

But we wanted it to do more than create a timetable. Real life is unpredictable, and a useful planning assistant should understand that. If a user becomes unavailable or falls behind, TaskPilot can propose a revised schedule, prioritise unfinished tasks, preserve completed work, and defer tasks that cannot realistically fit into the available time. Users can review and accept or reject proposed changes before they are applied. It also includes an internal calendar, reminders, task progress tracking, and persistent plan and conversation history, bringing the entire planning process into one place.

How we built it

We built TaskPilot using a React and Vite frontend, a Flask REST API backend, SQLite for persistent storage, and Groq's API with the openai/gpt-oss-120b model for AI-powered conversations and planning.

We wanted to make the experience conversational without making the system unreliable. Users should be able to express their intentions naturally, while the application still needs structured data to manage dates, task durations, priorities, reminders, and schedule changes. We worked on connecting these two sides so that AI-generated suggestions could be converted into validated actions, with user confirmation before execution.

We focused on making the interface intuitive and accessible through a purple-and-lavender design, an internal calendar, task progress indicators, plan management, and a conversational assistant. On the backend, we implemented the API and persistence layer to manage plans, tasks, reminders, conversations, AI actions, and activity history.

We also wanted the application to handle imperfect AI responses gracefully. Language models do not always return information in the exact format an application expects, so we worked on handling variations in JSON responses, missing action fields, and common API errors. Validation was especially important when dealing with schedules because an incorrect date or time can make an otherwise good plan unusable.

Challenges we ran into and What we Learned

One of our biggest challenges was getting the frontend, backend, and AI to work together consistently. A feature could appear to work on the screen but still fail to save correctly, update the right task, or remain consistent after a refresh. Debugging these interactions taught us to look beyond the visible interface and understand the complete flow of data through an application.

Another challenge was making AI-generated schedules practical rather than merely convincing. Availability can differ from one date to another, completed tasks must not be accidentally moved, and an overloaded schedule should not force every unfinished task into an unrealistic time window. These constraints made us think more carefully about validation, scheduling logic, and the distinction between an AI proposal and an action that the application is allowed to execute.

Building TaskPilot also taught us the importance of dividing responsibilities, communicating our ideas clearly, and connecting different parts of a project into one working system. We learned that developing an application is not just about adding features or making an interface look good. It involves understanding how different technologies interact, anticipating edge cases, handling failures, and ensuring that the application behaves consistently from the user's perspective.

Accomplishments that we're proud of

We’re proud of turning the idea: TaskPilot, into a working full-stack AI application that transforms natural-language instructions into structured study and task plans. Our biggest accomplishment is the adaptive rescheduling workflow, which prioritises unfinished tasks, preserves completed work, and proposes realistic schedules based on changing availability. We also implemented user confirmation for AI actions and safeguards for unexpected AI responses.

What's next for TaskPilot

TaskPilot is our step towards making productivity tools more adaptive, conversational, and realistic. We want planning to feel less like managing a rigid checklist and more like working with an assistant that understands constraints, explains its suggestions, and lets the user make the final decisions.

Building TaskPilot has been an opportunity for both of us to learn by creating something practical, confronting problems as they appeared, and improving the system until its different parts worked together. Our goal was never simply to generate the perfect timetable. It was to build a tool that helps people make better plans, recover when those plans change, and keep moving forward without losing control of their time.

Share this project:

Updates