Task Manager Agent β Personal AI OS
Automatically turns emails and meeting notes into prioritized, synced tasks.
What it does
| Capability | Detail |
|---|---|
| Email β Tasks | Scans inbox every 15 min, extracts actionable items via Groq |
| Meeting β Tasks | Parses Google Calendar descriptions for action items and follow-ups |
| Prioritization | LLM scores each task 1β10 using urgency + impact + effort |
| Deduplication | Never creates the same task twice |
| Sync | Pushes to Notion DB and/or Todoist |
| Digest | Sends a formatted email + optional WhatsApp summary |
| Triggers | New email detection (polling) + daily 9 AM scheduled sync |
File structure
task_manager_agent/
βββ main_agent.py # Orchestrator, scheduler, email watcher
βββ data_fetcher.py # Gmail + Calendar + existing task fetch
βββ llm.py # Groq extraction + prioritization prompts
βββ task_store.py # Local JSON persistence + dedup
βββ delivery.py # Email SMTP, WhatsApp, Notion, Todoist
βββ .env.example # All env vars with explanations
βββ requirements.txt
βββ README.md
Setup
1. Install dependencies
pip install -r requirements.txt
2. Configure environment
cp .env.example .env
# Edit .env with your credentials
3. Google credentials
Share the same credentials.json and token.json from your earlier agents.
The agent needs scopes:
gmail.readonlycalendar.readonly
4. Notion Database setup
Create a Notion database with these properties:
| Property | Type |
|---|---|
| Name | Title |
| Status | Select: To Do, In Progress, Done |
| Priority | Select: Critical, High, Medium, Low |
| Due Date | Date |
| Category | Select: Work, Personal, Admin, Communication, Research, Finance, Health, Other |
| Source | Rich Text |
| Priority Score | Number |
| Notes | Rich Text |
Copy the DB ID from the Notion URL:
https://notion.so/your-workspace/THIS-IS-YOUR-DB-ID?v=...
5. Run
python main_agent.py
On startup the agent runs immediately, then enters the continuous loop:
- Email watcher polls every
EMAIL_POLL_INTERVAL_MINUTESminutes - Full sync fires daily at 09:00
How prioritization works
The LLM scores each task using four axes:
Priority Score (1-10) = f(urgency, impact, effort, dependencies)
| Score | Label | Example |
|---|---|---|
| 9β10 | Critical | "Contract due tomorrow, client blocked" |
| 7β8 | High | "Respond to investor by Friday" |
| 5β6 | Medium | "Update project docs" |
| 1β4 | Low | "Read that article someone forwarded" |
Cron alternative
To run via system cron instead of the built-in scheduler:
# Daily 9 AM sync
0 9 * * * cd /path/to/task_manager_agent && python -c "from main_agent import run_task_extraction_pipeline; run_task_extraction_pipeline('cron_9am')"
# Email polling every 15 min
*/15 * * * * cd /path/to/task_manager_agent && python -c "from main_agent import run_task_extraction_pipeline; run_task_extraction_pipeline('email_poll')"
Agent position in Personal AI OS
01 β
Daily Planner Agent
02 β
Email Agent
03 β
Meeting Prep Agent
04 β
End-of-Day Review Agent
05 β
Task Manager Agent β YOU ARE HERE
06 Research Agent
07 Finance Agent
08 LinkedIn Agent
09 Knowledge Agent
10 Master Orchestrator (Mem0 + LangGraph)
The Master Orchestrator will call run_task_extraction_pipeline() directly
and read from TaskStore to feed task context into other agents.