From calendar
Publishes weekly agendas, focus time reports, and deadline tables to Notion pages via the Notion API. Acts as a display layer for calendar data; vault is source of truth.
How this skill is triggered — by the user, by Claude, or both
Slash command
/calendar:app-notionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Auth:** Notion integration token (`NOTION_API_KEY`)
Auth: Notion integration token (NOTION_API_KEY)
URL: https://www.notion.so
API: https://api.notion.com/v1
Configuration: Set token and page IDs in vault/calendar/config.md
Provides the calendar-agent with write access to Notion so that completed weekly agendas, focus time reports, and deadline tables can be published to a Notion page for reading on any device. Notion is a display layer for the calendar plugin — the vault is the source of truth. The calendar-agent never reads from Notion as its primary data source.
Add to vault/calendar/config.md:
notion_api_key: secret_YOUR_NOTION_TOKEN
notion_calendar_page_id: YOUR_CALENDAR_PARENT_PAGE_ID
notion_deadlines_database_id: YOUR_DEADLINES_DATABASE_ID
notion_agenda_page_id: YOUR_WEEKLY_AGENDA_PAGE_ID
Integration setup: Create a Notion integration at notion.so/my-integrations → copy the
integration token to notion_api_key. Share the calendar parent page (and any databases) with the
integration: open the page → ... menu → Add Connections → select your integration. Without
this step, API calls will return 404 even with a valid token.
POST https://api.notion.com/v1/pages
PATCH https://api.notion.com/v1/pages/{page_id}
GET https://api.notion.com/v1/databases/{id}/query
POST https://api.notion.com/v1/blocks/{block_id}/children
Authorization: Bearer $NOTION_API_KEY
Notion-Version: 2022-06-28
Content-Type: application/json
When writing a weekly agenda to Notion, use the following block structure:
Week of {Monday date, Month Day}Focus BlocksDeadlines This WeekCalendar OverviewOpen ItemsThe Notion deadlines database should have these properties:
Before adding a new deadline row to the Notion database, query for existing entries with the same name and due date:
POST https://api.notion.com/v1/databases/{id}/query
Body: {"filter": {"and": [
{"property": "Name", "title": {"equals": "{deadline_name}"}},
{"property": "Due Date", "date": {"equals": "YYYY-MM-DD"}}
]}}
If a match is found, PATCH the existing row to update urgency or status rather than creating a duplicate entry.
op-weekly-agenda — publish completed weekly agenda to Notion agenda page after local writeop-deadline-alert — sync flagged deadlines to Notion deadlines databaseop-focus-time-review — write focus time weekly report to Notion calendar page~/Documents/aireadylife/vault/calendar/02_briefs/notion-sync-errors.md and continue.notion_calendar_page_id is not configured, skip Notion sync silently.~/Documents/aireadylife/vault/calendar/02_briefs/ — agendas written firstCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub fru-dev3/ai-ready-life --plugin calendar