Aegis LifeOS is an AI-powered Google Calendar sidebar add-on that plans and schedules learning goals directly into your calendar. It uses a multi-agent architecture to understand your intent, generate detailed learning roadmaps, detect scheduling conflicts, and book sessions — all from a panel inside Google Calendar.
- Google Calendar Sidebar — interact with Aegis without leaving your calendar
- Multi-Agent Orchestration — specialized agents for planning, scheduling, and coordination
- Smart Scheduling — detects conflicts and books study sessions automatically
- Learning Roadmaps — generates multi-week curricula for any topic
- Human-in-the-Loop — approve, revise, or reject plans before they hit your calendar
- Knowledge Base — upload PDFs so the AI can answer questions from your documents
graph LR
User([User]) -->|Calendar Sidebar| GAS[Google Apps Script]
GAS -->|API Request| Orchestrator{Orchestrator Agent}
Orchestrator -->|Intent: Learn| Planner[Planner Agent]
Orchestrator -->|Intent: Schedule| Scheduler[Scheduler Agent]
Planner -->|RAG| KB[(Knowledge Base)]
Scheduler -->|Manage| GCal[Google Calendar]
KB -->|Context| Planner
GCal -->|Availability| Scheduler
| Component | Tech |
|---|---|
| Frontend | Google Apps Script (Calendar sidebar card UI) |
| Backend | FastAPI · Python 3.10+ |
| AI | Google Gemini · LangGraph · LlamaIndex |
| Auth | Google OAuth 2.0 via Calendar API |
- Python 3.10+
- A Google Cloud Console project with the Google Calendar API enabled
- A Google Gemini API key
git clone https://github.com/noahnghg/Aegis.git
cd Aegiscd backend
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in backend/:
GEMINI_API_KEY=your_key_here- Go to the Google Cloud Console.
- Create or select a project.
- Enable the Google Calendar API.
- Configure the OAuth Consent Screen (External or Internal).
- Create OAuth Client ID credentials (Application type: Desktop App).
- Download the JSON file and save it as
credentials.jsoninsidebackend/.
cd backend
uvicorn app.main:app --reloadThe API will be available at http://localhost:8000.
Note: For the Google Apps Script add-on to reach your local backend, you must expose it via a tunnel like ngrok:
ngrok http 8000Copy the generated
https://...ngrok-free.appURL — you will need it in the next step.
- Go to script.google.com → New Project.
- Rename the project to Aegis LifeOS.
- Replace the contents of
Code.gswith the file fromgoogle_apps_script/Code.gs. - Update the
BASE_URLvariable at the top ofCode.gswith your backend URL (ngrok or production). - In the editor sidebar, click the gear icon (Project Settings):
- Enable Show "appsscript.json" manifest file in editor.
- Open
appsscript.jsonin the editor and replace its contents withgoogle_apps_script/appsscript.json. - Click Deploy → Test deployments → select Google Workspace Add-on → Install.
- Open Google Calendar. Click the Aegis LifeOS icon in the right sidebar.
| Action | What Happens |
|---|---|
| Ask Aegis | Type a prompt like "Plan learning Python in 4 weeks" → get a roadmap → approve or revise |
| Check Schedule | Scans the next hour for conflicts and suggests open slots |
| Upload PDF | Opens the FastAPI Swagger UI to upload documents for the knowledge base |
Aegis/
├── backend/
│ ├── app/
│ │ ├── agents/ # Orchestrator, Planner, Scheduler agents
│ │ ├── core/ # Ingestion, RAG, config
│ │ ├── tools/ # Google Calendar tool
│ │ └── main.py # FastAPI entrypoint
│ └── requirements.txt
├── google_apps_script/
│ ├── Code.gs # Add-on UI and API calls
│ └── appsscript.json # Manifest with scopes and triggers
└── README.md
MIT