Timestamp-first perpetual calendar interop for AI agents. Use when agents need cross-calendar conversion (Gregorian/Julian/ISO/ROC/Buddhist/Japanese era/sexa...
Provide a single, agent-friendly bridge layer so different tools can ask calendar questions in a common schema and receive normalized JSON. Treat this skill as the date interoperability baseline for multi-agent ecosystems.
capabilities first to discover supported calendars, optional providers, and locale support.timeline (timestamp-first) instead of direct date conversion.calendar_month when UI needs true month boundaries in non-Gregorian systems.day_profile for one-call details (sexagenary, solar_term_24, chinese_lunar, optional astro, optional metaphysics).locale (en, zh-CN, zh-TW) when user-facing text is required.Install and run as an MCP server for Claude Desktop / Claude Code:
python3 -m pip install -U "clawlendar[all]"
clawlendar
One-line registration in Claude Code:
python3 -m pip install -U "clawlendar[all]" && claude mcp add clawlendar -- clawlendar
Or run directly from source:
pip install -e .
python -m clawlendar.server
List supported calendars and optional backends:
pip install -e .
python3 scripts/calendar_bridge.py capabilities
Convert one date into multiple targets:
python3 scripts/calendar_bridge.py convert \
--source gregorian \
--targets julian,iso_week,minguo,buddhist,japanese_era,sexagenary,solar_term_24 \
--date-json '{"year": 2026, "month": 3, "day": 9}'
Normalize one instant with timestamp-first model (external time wheel):
python3 scripts/calendar_bridge.py timeline \
--input-json '{"timestamp": 1773014400}' \
--timezone 'Asia/Taipei' \
--date-basis local \
--targets minguo,japanese_era,sexagenary,solar_term_24
Generate an astro snapshot for zodiac wheel rendering:
python3 scripts/calendar_bridge.py astro \
--input-json '{"timestamp": 1773014400}' \
--timezone 'Asia/Taipei'
Get true month boundaries for non-Gregorian month mode:
python3 scripts/calendar_bridge.py calendar-month \
--source minguo \
--month-json '{"year":115,"month":3}'
Get unified daily profile payload:
python3 scripts/calendar_bridge.py day-profile \
--input-json '{"timestamp": 1773014400}' \
--timezone 'Asia/Taipei' \
--locale 'zh-TW'
Include full metaphysics block (Bazi/Huangli + Western almanac):
python3 scripts/calendar_bridge.py day-profile \
--input-json '{"timestamp": 1773014400}' \
--timezone 'Asia/Taipei' \
--locale 'zh-CN'
Run HTTP API for multi-claw integration:
pip install -e ".[api]"
./scripts/run_api.sh
Run with Docker:
docker build -t clawlendar:mvp .
docker run --rm -p 8000:8000 clawlendar:mvp
Use the JSON contract in references/integration-contract.md for tool-to-tool integration. Keep payload keys calendar-specific and avoid ambiguous fields.
capabilities, convert, timeline, astro_snapshot, calendar_month, day_profilecapabilities, convert, timeline, astro, calendar-month, day-profileGET /capabilities, POST /convert, POST /timeline, POST /astro, POST /calendar-month, POST /day-profilereferences/integration-contract.md for request/response schema and compatibility guidance.references/calendar-landscape.md for East/West major calendar systems and rollout priorities.references/time-wheel-model.md for timestamp-first design and instant/date projection rules.references/mvp-release-notes.md as GitHub release draft baseline.timeline as the default bridge for multi-agent scheduling and event processing.chinese_lunar conversion payload is numeric; Chinese textual month/day labels are exposed via day_profile.metaphysics.eastern.lunar_date when lunar_python is available.ZIP package — ready to use