Agendly is an AI-powered calendar and task management assistant specifically designed for individuals with Executive Function difficulties. It combines calendar management, task scheduling, and voice interaction capabilities to provide comprehensive support for daily planning and organization.
- 🗣️ Voice and text-based interaction
- 📅 Google Calendar integration
- ✅ Smart task scheduling
- ⏲️ Built-in timer for task management
- 🔋 Energy level-aware task planning
- 📚 Context-aware responses using RAG (Retrieval-Augmented Generation)
- 🎯 Automatic task breakdown and scheduling
- 🔄 Real-time calendar updates
- 🗣️ Text-to-speech responses
- Python 3.12+
- Google Calendar API credentials (Create from Google Cloud Console → Enable Calendar API → Create OAuth 2.0 Client ID → Download credentials.json)
- OpenAI API key
- Ollama (for local LLM support)
- ChromaDB (for document storage)
- Clone the repository:
git clone <repository-url>
cd agendly- Create and activate a Conda environment:
conda create -n agendly python=3.12
conda activate agendly- Install required packages:
pip install -r requirements.txt- Set up environment variables:
Create a
.envfile in the root directory with:
MODEL_NAME=<your-openai-model>
OPENAI_API_KEY=<your-openai-api-key>
- Set up Google Calendar Authentication:
- Place your
credentials.jsonfile in the root directory - On first run, you'll be prompted to authenticate with Google Calendar
- Create a ChromaDB database for context-aware responses:
jupyter notebook create_database.ipynb- Run all cells to initialize the database with your PDF documents
- Start the Streamlit application:
streamlit run main.py-
Connect your Google Calendar when prompted
-
The interface provides:
- Energy level slider (1-10)
- Voice recording capability
- Task input and management
- Calendar event viewing and scheduling
- Timer functionality
main.py: Main Streamlit applicationchatbot_with_todo.py: Core chatbot and task management logicevent_handler.py: Google Calendar integration and event managementcreate_database.ipynb: ChromaDB setup for document storagerequirements.txt: Project dependencies
- Automatically schedules tasks based on:
- Current energy level
- Task complexity
- Available time slots
- Existing calendar events
- Includes 15-minute breaks between tasks
- Considers user's energy levels for optimal task placement
- Records voice input using sounddevice
- Transcribes audio to text
- Provides text-to-speech responses using OpenAI's TTS
- Tracks user's energy levels (1-10)
- Adjusts task scheduling based on energy:
- Low energy (1-3): Shorter, easier tasks
- Medium energy (4-6): Moderate complexity
- High energy (7-10): Challenging tasks
- Uses ChromaDB for document storage
- Implements RAG for informed responses
- Maintains conversation history
- Switches between different LLM models based on needs
- OpenAI GPT for main interactions
- Gemma (local) for overwhelm support
- Deepseek for specialized planning
- All-MiniLM-L6-v2 for embeddings
[Add contribution guidelines here]
[Add license information here]