Skip to main content

Timestamp-first perpetual calendar interop for AI agents — MCP server for cross-calendar conversion across East/West calendar systems.

Project description

Clawlendar

Timestamp-first perpetual calendar interop for AI agents.

Clawlendar = Claw (AI agent) + Calendar

Clawlendar helps agents speak the same time language across systems, regions, and calendar traditions. It normalizes an instant first (Unix timestamp), then projects to multiple calendars with a stable JSON contract.

Available as an MCP server (for Claude Desktop / Claude Code), a FastAPI HTTP service, and a CLI tool.

Install as MCP Server

From PyPI

pip install clawlendar

From source

git clone https://github.com/Hosuke/Clawlendar.git
cd Clawlendar
pip install -e .

Claude Desktop configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "clawlendar": {
      "command": "clawlendar"
    }
  }
}

Config file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Claude Code

claude mcp add clawlendar -- clawlendar

MCP Tools

Once connected, Claude has access to three tools:

Tool Description
capabilities List all supported calendars, payload schemas, and optional provider status
convert Convert a date from one calendar to one or more target calendars
timeline Normalize an instant (timestamp-first) and project into multiple calendar systems

Supported Calendars

  • gregorian
  • julian
  • iso_week
  • unix_epoch
  • minguo
  • buddhist
  • japanese_era
  • sexagenary (approximate)
  • solar_term_24 (approximate)

Optional (install extras)

pip install clawlendar[all]       # all optional calendars
pip install clawlendar[lunar]     # Chinese lunar only
pip install clawlendar[extra-calendars]  # Islamic, Hebrew, Persian
  • chinese_lunar — via lunardate
  • islamic / hebrew / persian — via convertdate

CLI Usage

pip install -e .

# List calendars
python3 scripts/calendar_bridge.py capabilities

# Convert a date
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}'

# Timeline projection
python3 scripts/calendar_bridge.py timeline \
  --input-json '{"timestamp": 1773014400}' \
  --timezone 'Asia/Taipei' \
  --date-basis local \
  --targets minguo,japanese_era,sexagenary,solar_term_24

HTTP API (FastAPI)

pip install -e ".[api]"
./scripts/run_api.sh

Endpoints: GET /health · GET /capabilities · POST /convert · POST /timeline

# Smoke test
./scripts/curl_examples.sh

# Convert a date
curl -sS -X POST http://127.0.0.1:8000/convert \
  -H "Content-Type: application/json" \
  -d '{
    "source": "gregorian",
    "targets": ["julian", "iso_week", "minguo"],
    "source_payload": {"year": 2026, "month": 3, "day": 9}
  }' | python3 -m json.tool

Docker

docker build -t clawlendar:mvp .
docker run --rm -p 8000:8000 clawlendar:mvp

Architecture

  1. Parse input as an instant (timestamp, timestamp_ms, iso_datetime, or local_datetime + timezone).
  2. Normalize to UTC.
  3. Choose projection date basis (local or utc).
  4. Convert from canonical Gregorian bridge date to target calendars.
  5. Return structured JSON plus warnings for optional/approximate providers.

Repository Structure

src/clawlendar/
  __init__.py            # package version
  bridge.py              # core calendar conversion engine
  server.py              # MCP server entry point
scripts/
  calendar_bridge.py     # CLI wrapper
  api_server.py          # FastAPI service layer
  run_api.sh             # API launch helper
  curl_examples.sh       # HTTP smoke examples
references/
  integration-contract.md
  time-wheel-model.md
  calendar-landscape.md
  mvp-release-notes.md

Known Limitations (MVP)

  • sexagenary year boundary is approximate.
  • solar_term_24 is fixed-date approximation, not ephemeris-accurate astronomy.
  • Some calendars are available only when optional dependencies are installed.

Roadmap

  • Astronomical solar-term provider.
  • Higher-precision Chinese lunar provider with regression fixtures.
  • Publish to PyPI and MCP server directory.

中文说明

Clawlendar 是一个给 AI agents 用的「时间与历法互通层」,同时也是一个 MCP Server(可直接接入 Claude Desktop / Claude Code)。

核心做法是先用时间戳统一「绝对时间」,再投影到不同时区与历法,输出稳定 JSON,方便多工具接入。

安装

pip install clawlendar

在 Claude Desktop 的 claude_desktop_config.json 中加入:

{
  "mcpServers": {
    "clawlendar": {
      "command": "clawlendar"
    }
  }
}

支持的历法

  • 公历、儒略历、ISO 周、Unix 纪元
  • 民国纪年、佛历、日本年号
  • 干支(近似)、二十四节气(近似)
  • 可选:农历(lunardate)、伊斯兰历、希伯来历、波斯历(convertdate

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clawlendar-0.1.1.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clawlendar-0.1.1-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file clawlendar-0.1.1.tar.gz.

File metadata

  • Download URL: clawlendar-0.1.1.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for clawlendar-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1ebed60e53eee2c0931ac9fba737564e46466cf96a6d2ba1f5208bc53f07e8de
MD5 4262034578d09209ba6654fa9f664176
BLAKE2b-256 10164098241162b1f9d340320433cf86a6c128373d80720eb9064b92c5d26e3b

See more details on using hashes here.

File details

Details for the file clawlendar-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: clawlendar-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for clawlendar-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 41bd65a3f0e23bb022706d10cbc8e9953218844401dbd446142fd371b0654efc
MD5 18ad3e3acb0aec323e7cae84e4b37090
BLAKE2b-256 0f3586a930f72e8e456d102e5eebe617a6ebd3db3882d7a21ade5c730921b64f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page