Notion Schedule Agent
Click on "Deploy 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: Bird 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 deployed
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server for Notion API with optimized token efficiency and full database property filtering, enabling AI assistants to manage pages, databases, and blocks.3240 npm1MIT
- FlicenseNot gradedqualityDmaintenanceA personal assistant MCP server that integrates Todoist, Anki, Obsidian, and Google Calendar to help you learn, organize, and stay productive through natural language interactions.2-
- FlicenseNot gradedqualityBmaintenanceAutomates task execution from Notion across GitHub, Instagram, VS Code, and Telegram, running as an MCP server locally or as a Vercel cron job.-
- FlicenseNot gradedqualityCmaintenanceA local Python MCP server that creates a GitHub issue, Notion task page, and Google Calendar event from a single task description, enabling project management across multiple platforms.-