Timely was inspired by a simple problem: people do not struggle because they lack to-do lists, they struggle because plans do not adapt to real life. Deadlines shift, energy dips, and priorities collide. We wanted to build an assistant that understands natural language, schedules intelligently, and checks in like a supportive coach, not just a reminder app.
Timely is an AI-powered personal time assistant that helps users turn messy thoughts into actionable schedules.
It can:
- Parse natural-language tasks into structured plans (title, priority, deadline, estimated duration).
- Auto-schedule tasks into open time slots while avoiding overload.
- Generate a daily brief and read it aloud with voice audio.
- Send diagnostic check-ins (e.g., "What are you doing?") through interactive notifications.
- Log behavior signals to improve future scheduling and personalization.
We built Timely as a full-stack system with resilience in mind, ensuring it works in development or partial-config environments:
- Frontend: Flutter app with Riverpod state management
- Backend: FastAPI with async architecture
- Database: MongoDB (via async Motor driver)
- AI parsing & briefing: Gemini integration with robust fallback parsing
- Voice output: ElevenLabs text-to-speech (with gTTS fallback)
- Notifications: Firebase Cloud Messaging (FCM) + local notification actions
- Scheduling: Custom engine handling overlap detection, priority balancing, wake/sleep windows, and day-load awareness
- End-to-end working flow from task input to scheduled timeline to daily voice brief.
- Human-aware scheduling engine (beyond naive first-fit placement).
- Interactive diagnostic notifications that act as behavioral feedback.
- Strong fallback strategy for missing API keys (Firebase, Gemini, ElevenLabs).
- Clean separation of concerns across services, routers, providers, and UI modules.
- Richer personalization using diagnostics and completion trends.
- Real-time schedule re-planning when users snooze or miss blocks.
- Collaborative and external calendar integrations (school/work).
- Expressive voice experience enhancements.
- Analytics dashboards for habit insights and burnout risk detection.
The project consists of a FastAPI backend and a Flutter frontend.
- Python 3.9+
- Flutter SDK
- MongoDB instance (local or Atlas)
- Navigate to the
backenddirectory:cd backend - Create and activate a virtual environment:
python -m venv .venv # Windows: .venv\Scripts\activate # macOS/Linux: source .venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Configure environment variables:
Copy
.env.exampleto.envand fill in necessary keys (MongoDB URI, Gemini, ElevenLabs, etc.).copy .env.example .env
- Run the FastAPI server:
uvicorn app.main:app --reload --port 8000
Note: The backend uses graceful fallbacks. If API keys for Gemini, ElevenLabs, or Firebase are missing, the app will degrade to deterministic local logic so you can still run it!
- Navigate to the
frontenddirectory:cd frontend - Fetch Flutter dependencies:
flutter pub get
- Run the Flutter application on your desired device/emulator:
flutter run