Notion Schedule Agent
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Notion Schedule Agentplan tomorrow's schedule based on my Notion tasks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Notion Schedule Agent
An MCP server that turns your Notion task list into an AI-optimized daily schedule.
Every night you pull tomorrow's tasks from your "Upcoming Tasks" database and manually slot them into half-hour blocks. This agent does that for you — it reads your tasks (including page body content like workout plans and watchlists), understands priorities via the Eisenhower matrix, respects fixed-time commitments parsed from task names, and writes a clean schedule back to Notion.
Demo
1. Tasks in Notion with Eisenhower priorities and weekday assignments

2. The agent reads full page content for smarter scheduling

3. One command generates an AI-optimized daily schedule

4. Schedule written back to Notion as a half-hour block table

5. Built as an MCP server — usable from Claude Desktop, Cursor, or any MCP client

Related MCP server: notion-mcp-server
How It Works
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Upcoming Tasks │──────▶│ AI Scheduler │──────▶│ Schedule Today │
│ (Notion DB) │ │ (OpenAI) │ │ (Notion Table) │
│ │ │ │ │ │
│ • Task name │ │ • Reads page │ │ 6:00 Free time │
│ • Priority │ │ body content │ │ 9:00 LeetCode │
│ • Weekday │ │ • Parses times │ │ 9:30 Standup │
│ • Page content │ │ • Sorts by │ │ 10:00 Deep work │
│ │ │ priority │ │ ... │
└──────────────────┘ └──────────────────┘ └──────────────────┘Priority System (Eisenhower Matrix)
Status | Meaning | Scheduling |
| Important & Urgent | Peak focus hours first |
| Urgent, not important | Soon, lighter slots |
| Important, not urgent | Focused time available |
| Currently being worked on | Dedicated blocks |
| Neither important nor urgent | Fill remaining gaps |
| Recurring/daily tasks | Spread across the day |
Key Features
Deep content reading — reads the body of each task page (bullet lists, paragraphs) so the AI understands what "Gym - upper body" actually involves
Time-locked tasks — parses times from task names (e.g. "Team standup 9:30am") and locks them to the correct slot
Eisenhower priority — schedules Important & Urgent tasks in peak focus hours, lighter tasks in the evening
Two-step workflow — preview the schedule before writing it to Notion
MCP server — any MCP client can invoke
plan_day,get_tasks, andapply_schedule
Setup
1. Install dependencies
pip install -r requirements.txt2. Create a Notion Integration
Click New integration, give it a name (e.g. "Schedule Agent")
Copy the Internal Integration Secret — this is your
NOTION_API_KEY
3. Share your Notion pages with the integration
Open your Upcoming Tasks database in Notion
Click ... → Connections → select your integration
Do the same for your Getting Things Done page (the one with "Schedule Today")
4. Get your database and page IDs
Open Upcoming Tasks in Notion. The URL looks like:
https://notion.so/workspace/YOUR_DB_ID?v=...Copy the 32-character hex ID.Open Getting Things Done page. Same format — copy the page ID.
5. Configure environment
cp .env.example .envEdit .env with your keys:
NOTION_API_KEY=ntn_your_key_here
OPENAI_API_KEY=sk-your_key_here
NOTION_TASKS_DB_ID=your_database_id
NOTION_SCHEDULE_PAGE_ID=your_page_idUsage
CLI Mode
# List tomorrow's tasks
python -m src.cli tasks tomorrow
# Generate and apply a schedule for tomorrow
python -m src.cli plan tomorrow
# Plan a specific day
python -m src.cli plan mondayThe plan command shows a preview and asks for confirmation before writing to Notion.
MCP Server Mode
Run the server for use with Claude Desktop, Cursor, or any MCP client:
python -m src.mcp_serverClaude Desktop configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"notion-schedule-agent": {
"command": "python",
"args": ["-m", "src.mcp_server"],
"cwd": "/path/to/notion-mcp-v2",
"env": {
"NOTION_API_KEY": "ntn_...",
"OPENAI_API_KEY": "sk-...",
"NOTION_TASKS_DB_ID": "...",
"NOTION_SCHEDULE_PAGE_ID": "..."
}
}
}
}Available MCP Tools
Tool | Description |
| List tasks for a given day from Notion |
| Generate an AI-optimized schedule (preview) |
| Write the previewed schedule to Notion |
day accepts "today", "tomorrow", or a weekday name like "Monday".
Tech Stack
Python — core language
Notion API via
notion-client— reads task database + page content, writes schedule tableOpenAI (
gpt-4o-mini) — intelligent scheduling with priority awarenessMCP (Model Context Protocol) via
mcpSDK — exposes tools to any MCP client
Project Structure
src/
config.py — environment config, time slots, priority mapping
notion_ops.py — Notion API operations (read tasks + page content, write schedule)
scheduler.py — OpenAI-powered schedule generation
mcp_server.py — MCP server entry point with tool definitions
cli.py — standalone CLI for direct usageLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SeanOnamade/notion-mcp-v2'
If you have feedback or need assistance with the MCP directory API, please join our Discord server