Project Info
Inspiration
Keeping track of a busy schedule is a frustrating, manual process. Adding, searching, and editing events takes a lot more effort than it should, with the average American spending anywhere between 45-50 minutes planning their day. Most calendar apps require a manual configuration of details (specific dates, times, and names) and don't adapt to how people plan their days. What if your calendar could think the way you do? Instead of forms and dropdowns, imagine just typing what you need — "Block focus time in the mornings" or "Find time for dinner with Sarah next week" — with your schedule update instantly. We're making scheduling effortless with natural language processing and smart event handling.
What it does
At a high level, Chronos is a set of intelligent agents working together to find the intent behind your prompt and schedule your event for you in real-time. We have combined this agentic workflow with a beautiful UI/UX to create a truly comprehensive AI scheduling assistant. Prompt Chronos to create, modify, or delete simple events like “Lunch with James at 12:45pm tomorrow”, or even complex queries like “I want to go to the gym with kunal@email.com at 8am every other day for the next 3 weeks.” P.S.--adding your university course schedule for the quarter/semester has never been easier! Preferences act as your “user profile.” This is where you put conditions that don’t often change and that Chronos must always keep in mind, i.e. “I don’t want to have any meetings after 6pm.” How We Built This Agent Architecture Our system is built on a sophisticated multi-agent architecture powered by Groq's LLaMA 3.3 70B model. Each agent is specialized for specific calendar operations and works in concert to provide intelligent scheduling: Intent Agent Primary classifier for all user interactions Categorizes requests into CREATE, DELETE, EDIT, or UNKNOWN Uses sophisticated prompt engineering to understand context and implied actions Handles complex queries like "let's move tomorrow's lunch to Friday" Routes requests to appropriate specialized agents Availability Agent Manages calendar availability analysis Processes two-week forward-looking time windows Generates human-readable availability summaries Considers timezone constraints (America/Los_Angeles) Formats events into digestible daily schedules Handles overlapping and adjacent event logic Preferences Agent Converts natural language preferences into structured time-based rules Processes work hours, social time, and recurring patterns Extracts activity types, time constraints, and applicable days Determines if rules are blocking or preferential Maintains preference hierarchy and conflict resolution Integrates with scheduling decisions Search Agent Implements vector-based calendar search using ChromaDB Creates and maintains sentence transformer embeddings Processes calendar events in optimized chunks Enables semantic understanding of event context Provides real-time event lookup and retrieval Handles fuzzy matching and contextual search Mutability Agent Specializes in event modifications and deletions Preserves event integrity during changes Handles recurring event patterns Manages attendee updates and notifications Ensures calendar consistency during modifications Validates changes against user preferences Scheduling Agent Orchestrates all other agents' operations Implements the core scheduling logic Manages Google Calendar API integration Handles contact lookup and attendee validation Processes complex scheduling constraints Provides real-time feedback and confirmation People Agent Grabs relevant contacts over the Google People API Allows users to mention contacts in natural language Events are created with attendee emails by default, without extra effort from the user Backend Pipeline Request Processing Natural Language Input → Intent Classification → Agent Selection → Preference Validation → Calendar Operation → Real-time Response Request Processing Data Flow User Input → Flask Server → Groq LLM → Google Calendar API → ChromaDB → UI Update Data Flow Performance Optimizations Chunked Processing Calendar events are processed in chunks of 10 Reduces memory usage and improves response time Chunked Processing Calendar events are processed in chunks of 10 Reduces memory usage and improves response time Embedding Caching Vector embeddings are cached in ChromaDB Enables fast semantic search without recomputing Embedding Caching Vector embeddings are cached in ChromaDB Enables fast semantic search without recomputing Background Processing Long-running tasks are handled asynchronously Provides immediate user feedback while processing Background Processing Long-running tasks are handled asynchronously Provides immediate user feedback while processing Response Streaming Implemented server-sent events for real-time updates Reduces perceived latency for users Response Streaming Implemented server-sent events for real-time updates Reduces perceived latency for users Preference Optimization Caches processed preference rules Maintains preference hierarchy for quick access Optimizes rule matching during scheduling Preference Optimization Caches processed preference rules Maintains preference hierarchy for quick access Optimizes rule matching during scheduling
Challenges we ran into
Building Agent Architecture Challenge: Ensuring seven AI agents work seamlessly, especially in coordinating Availability, Preferences, and Scheduling Agents. Solution: Developed a cascading agent system, where the Intent Agent first classifies the request, then routes tasks to specialized agents. Building Agent Architecture Challenge: Ensuring seven AI agents work seamlessly, especially in coordinating Availability, Preferences, and Scheduling Agents. Solution: Developed a cascading agent system, where the Intent Agent first classifies the request, then routes tasks to specialized agents. Natural Language Understanding Challenge: Users phrase scheduling requests ambiguously ("Call in the evening with James"), requiring accurate intent recognition. Solution: Fine-tuned LLM-powered parsing to handle multi-step requests and ensure structured inputs for downstream agents. Natural Language Understanding Challenge: Users phrase scheduling requests ambiguously ("Call in the evening with James"), requiring accurate intent recognition. Solution: Fine-tuned LLM-powered parsing to handle multi-step requests and ensure structured inputs for downstream agents. Multi-Event Scheduling Logic Challenge: Handling recurring commands like "Go to the gym every night" required resolving conflicts, durations, and smart defaults. Solution: Used prompt engineering to generate structured event outputs, enabling the Scheduling Agent to process multiple events accurately. Multi-Event Scheduling Logic Challenge: Handling recurring commands like "Go to the gym every night" required resolving conflicts, durations, and smart defaults. Solution: Used prompt engineering to generate structured event outputs, enabling the Scheduling Agent to process multiple events accurately. Real-time Calendar Updates Challenge: Keeping the UI and Google Calendar synchronized in real-time. Solution: Built a streaming response system using Flask and React's state management to reflect changes instantly. Real-time Calendar Updates Challenge: Keeping the UI and Google Calendar synchronized in real-time. Solution: Built a streaming response system using Flask and React's state management to reflect changes instantly. Preference Management Challenge: Converting natural language preferences into actionable scheduling rules. Solution: Designed a structured JSON schema for preferences and used LLM-powered conversion for consistency. Preference Management Challenge: Converting natural language preferences into actionable scheduling rules. Solution: Designed a structured JSON schema for preferences and used LLM-powered conversion for consistency. Vector Search Optimization Challenge: Running efficient semantic search across thousands of calendar events. Solution: Implemented chunked processing and optimized embeddings to speed up retrieval. Vector Search Optimization Challenge: Running efficient semantic search across thousands of calendar events. Solution: Implemented chunked processing and optimized embeddings to speed up retrieval. Speech-to-Text Challenges Challenge: Adding voice commands required transferring audio from frontend to backend, but encoding and permission issues caused failures. Solution: Pivoted to prioritize text-based interaction, ensuring reliability before revisiting accessibility features. Speech-to-Text Challenges Challenge: Adding voice commands required transferring audio from frontend to backend, but encoding and permission issues caused failures. Solution: Pivoted to prioritize text-based interaction, ensuring reliability before revisiting accessibility features.
Accomplishments we're proud of
✅ User-Friendly Interface – Our intuitive design makes it effortless to manage schedules, with 35 people already on the waitlist for our Beta launch. ✅ Smart Multi-Event Scheduling – Users can create recurring or multi-event commands in plain English, like: "Start going to the gym every night." Chronos understands and schedules it seamlessly. ✅ Agent Transparency – Users can see how our seven specialized AI agents collaborate in real-time to process and optimize scheduling requests.
What we learned
Agentic Workflows need to be Robust … User Research is Crucial Speaking with 40+ users helped us uncover real pain points and focus on solving actual problems, not just assumptions. Organization is Key for Success Defining roles and workflows made collaboration across teams smooth and efficient. Structured Workflows Keep Teams Aligned A clear process + ongoing to-do list ensured everyone stayed on the same page and could adapt during hectic moments. Moving Quick Moving quickly while staying focused on goals helped our team deliver results under tight deadlines
What's next
This weekend, we spoke to fellow hackers to learn from their experiences and better understand their pain points. We now have a growing waitlist of 35 students. In the coming weeks, we want to keep iterating. Here’s what’s next: Speech-to-Text Integration (Groq): Enable users to add, search, and modify events, plus log preferences using voice input. Interactive Chat Functionality: Introduce a conversational interface where users can ask about their schedule, reschedule events, and receive smart recommendations. Keyboard Shortcuts for Efficiency: Implement quick actions for scheduling, searching, and editing events – making navigation even quicker. Understanding Preference-Backed Goals: Offer scheduling suggestions based on user habits. We want Chronos to learn and adapt from previous calendar events.
Chronos Calendar
A next-generation calendar application powered by Large Language Models, offering natural language scheduling and intelligent event management. Built for TreeHacks 2025.
🌟 Overview
Chronos reimagines calendar management through natural language processing and intelligent agents. Users can schedule, modify, and search events using conversational language, while the system handles complex scheduling logic, preference management, and calendar optimization.
🤖 Intelligent Agents
Intent Agent
- Classifies user requests into CREATE, DELETE, EDIT, or UNKNOWN
- Powered by Groq's LLaMA 3.3 70B model
- Enables context-aware response handling
Availability Agent
- Analyzes calendar for free/busy times
- Considers timezone constraints (America/Los_Angeles)
- Generates human-readable availability summaries
Preferences Agent
- Converts natural language preferences into structured rules
- Handles work hours, social time, and recurring patterns
- Ensures scheduling respects user constraints
Search Agent
- Vector-based calendar search using ChromaDB
- Semantic understanding of event context
- Real-time event lookup and retrieval
Mutability Agent
- Handles event modifications and deletions
- Preserves event integrity during changes
- Manages recurring event patterns
Scheduling Agent
- Orchestrates all other agents
- Handles complex scheduling logic
- Manages Google Calendar integration
🎯 Key Features
Natural Language Interface
"Schedule lunch with Connor next Wednesday at noon"
"Move my 2pm meeting to tomorrow morning"
"What meetings do I have this week?"
Smart Calendar Views
- Monthly overview with preference highlighting
- Weekly detailed view with real-time updates
- Integrated chat interface for natural interaction
Preference-Aware Scheduling
- Learning from user patterns
- Time-block restrictions
- Custom scheduling rules
🚀 Getting Started
Prerequisites
- Node.js 16.x+
- Python 3.8+
- Google Cloud Platform account
- Groq API key
- ChromaDB account
Frontend Setup
cd chronos-frontend
npm install
npm run dev
Backend Setup
cd chronos-backend
pip install -r requirements.txt
# Configure environment variables
FLASK_APP=app.py
FLASK_ENV=development
GROQ_API_KEY=your_key
CHROMA_TENANT_KEY=your_key
CHROMA_API_KEY=your_key
OPENAI_API_KEY=your_key
python app.py
🛠 Technology Stack
Frontend
- Next.js 13+
- React
- Tailwind CSS
- shadcn/ui
- Google Calendar API
Backend
- Flask
- Groq LLM
- ChromaDB
- Google Calendar/People APIs
- Sentence Transformers
📊 System Architecture
User Input (Natural Language)
↓
Intent Classification
↓
Agent Orchestration ←→ Preference Rules
↓
Calendar Operations ←→ Google Calendar
↓
Real-time Updates
🔒 Security & Performance
- OAuth 2.0 authentication
- Rate limiting and request throttling
- Chunked event processing
- Vector search optimization
- Real-time response streaming
🤝 Contributing
- Fork the repository
- Create feature branch
- Commit changes
- Push to branch
- Create Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
Analysis
View
Metric
- 53
- 48
- 20
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FlaskIn code
- JavaScriptIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
7 of 7 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
192 KB
Source files
47
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
sfkunal/Chronos
65 files · 378 KB · @ 4e64d3e
Structure
Interface
39 files · 60%Screens, components and styles rendered to the user.
Application logic
6 files · 9%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript62%
- Python31%
- Markdown6%
- CSS1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
chronos-frontend/package.json
npm · 20- @radix-ui/react-dialog
- @radix-ui/react-label
- @radix-ui/react-popover
- @radix-ui/react-scroll-area
- @radix-ui/react-slot
- @radix-ui/react-tooltip
- class-variance-authority
- clsx
- date-fns
- lucide-react
- next
- react
- react-day-picker
- react-dom
- react-markdown
- sonner
- tailwind-merge
- tailwindcss-animate
- +2 more
chronos-backend/requirements.txt
pypi · 14- chromadb
- datetime
- flask
- flask-cors
- google-api-python-client
- google-auth
- google-auth-httplib2
- google-auth-oauthlib
- groq
- instructor
- pydantic
- python-dotenv
- pytz
- sentence-transformers
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.