Inspiration
Planning a schedule and actually following it are often treated as two separate problems. Calendar tools help users organize their time, while productivity tools focus on execution, but they rarely work together in a meaningful way. This disconnect often leads to schedules that look good on paper but are difficult to maintain in practice.
PrepTime was inspired by the idea of bridging this gap by turning a carefully planned first week into a reusable structure for the rest of the month. Instead of repeatedly planning similar weeks, users can define their ideal routine once and let the system handle the repetition intelligently.
What the project does
PrepTime is an intelligent task scheduling system that learns from a user’s Week 1 schedule and automatically generates Weeks 2–4 using AI-powered pattern analysis and productivity techniques. Users manually create their first week, and PrepTime analyzes patterns such as work hours, task distribution, energy preferences, and task categories.
Using this information, the system generates a monthly schedule that preserves consistency while remaining flexible and editable. PrepTime also integrates productivity methods such as Pomodoro, time blocking, energy management, and optimized break cycles to help users stay focused and productive.
How we built it
PrepTime was built as a full-stack system with a modern web frontend and a dedicated backend for scheduling intelligence. The frontend, built with Next.js and TypeScript, provides an interactive calendar for manual scheduling and a sidebar for task execution and focus tracking.
The backend, powered by FastAPI and Python, handles pattern extraction, scheduling logic, conflict detection, and AI-based slot scoring. A shared layer of type definitions ensures consistency between the frontend and backend. Machine learning techniques are used to evaluate and rank potential time slots, allowing the system to place tasks in positions that best match the user’s habits.
Challenges we faced
One of the main challenges was managing the complexity of state synchronization between the calendar, task sidebar, and generated schedules. Ensuring that AI-generated results remained explainable and editable was also important, as users need to understand and trust the system’s decisions.
Another challenge was balancing automation with user control. The system needed to reduce repetitive planning without removing flexibility, which required careful design of both the scheduling logic and the user interface.
What we learned
Through building PrepTime, we learned how to design systems that combine user-driven input with intelligent automation. We gained experience working with full-stack architectures, machine learning–assisted decision making, and explainable AI concepts. Most importantly, we learned the value of building productivity tools that prioritize clarity, flexibility, and real-world usability over rigid automation.
Built With
- catboost
- devpost
- fastapi
- framermotion
- github
- heuristicschedulingengine
- localstorage
- next.js
- python
- react
- restapis
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.