mcpbeat

Xs Calendar

karaage0703/xs-calendar

カレンダー予定を確認するスキル。ICS(Googleカレンダー等)と手動追加(画像読み取り)を統合。「今日の予定」「明日の予定」「カレンダー画像送って」「スケジュール確認」で使用。`/calendar` で発動。

3k tokens
context cost
the whole folder, loaded on every use
3
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
136
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/karaage0703/ai-assistant-workspace --skill xs-calendar

The instruction itself

5 sections, as written by the author

calendar スキル

ICSカレンダー(Googleカレンダー等)+ 手動追加の予定(画像読み取り等)を統合して予定を確認する。

セットアップ

[SKILL_DIR]/calendar_urls.json にICS URLを登録する:

{
  "calendars": [
    {
      "name": "main",
      "url": "https://calendar.google.com/calendar/ical/xxxxx/basic.ics"
    },
    {
      "name": "family",
      "label": "家族",
      "url": "https://calendar.google.com/calendar/ical/yyyyy/basic.ics"
    }
  ]
}
  • name: カレンダー識別名(必須)
  • url: ICSのURL(必須)。Googleカレンダーの場合「設定 → カレンダーの統合 → iCal形式の非公開URL」
  • label: 表示ラベル(任意)。設定すると予定に [家族] のようなタグが付く。共有カレンダーなど、自分の予定とは限らないものに付けると便利

コマンド

cd [SKILL_DIR] && uv run python calendar_check.py [引数]
  • today / 引数なし → 今日
  • tomorrow → 明日
  • week → 今後7日間
  • 0 7 → 今日から7日間(範囲指定)
  • -7 0 → 過去7日間

画像からの予定追加

カレンダーのスクリーンショットが送られたら:

Step 1: 画像を読み取る

添付画像を Read ツールで確認する。

Step 2: 予定を抽出

画像から以下の情報を読み取る:

  • 日付、開始時刻、終了時刻、予定名
  • 終日予定かどうか

Step 3: manual_events.json に保存

[SKILL_DIR]/manual_events.json に保存。既存の予定とマージする(同じ日付の予定は上書き)。

{
  "events": [
    {
      "date": "2026-03-01",
      "time_start": "09:00",
      "time_end": "10:00",
      "summary": "ミーティング",
      "all_day": false
    },
    {
      "date": "2026-03-01",
      "summary": "有給休暇",
      "all_day": true
    }
  ],
  "updated_at": "2026-03-01T12:00:00+09:00"
}

保存ルール

  • 同じ日付の予定は上書き(最新の画像が正)
  • updated_at を更新時刻に設定
  • 過去の予定は放置OK(表示時にフィルタされる)

Step 4: 再確認

保存後、calendar_check.py を再実行して反映を確認。

チェックリスト(実行時に必ず確認)

  • [ ] calendar_urls.json が存在するか(初回はセットアップを案内)
  • [ ] 画像から予定を追加した場合、保存後に再実行して確認したか
  • [ ] 🚨 共有カレンダーの予定を「あなたの予定」と断定しない(labelで区別する)

How to use it

Copy the folder

Take karaage0703/xs-calendar from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.