AI連携(API)

みんなの縦型カレンダー · 最終更新日:2026年10月23日

English

ChatGPT や Claude などの AI、iOS ショートカット、自作のプログラムから、みんなの縦型カレンダーの予定を見たり、追加・変更・削除したりできます。

できることの例

1. はじめに(キーの取り方)

AI からの追加・変更・削除は、アプリの編集履歴に「AI(サービス名 / 申請した人)」として残り、ほかのメンバーにも通知されます。

2. ChatGPT のプラグインで使う

ChatGPT の無料プランを含む多くのプランで、URL を入力せずにつなげます。

  1. ChatGPT の「プラグイン」で「縦型カレンダー」と検索し、「みんなの縦型カレンダー」(Funeasy Soft)を追加します。
  2. 「みんなの縦型カレンダーにつなぐ」というページが開くので、アプリで表示した API キーを貼って「許可する」を押します。
  3. あとは「来週の予定を教えて」「土曜の10時にお父さんの買い物を入れて」のように話しかけるだけです。

3. ChatGPT・Claude にコネクタでつなぐ

AI の「コネクタ」(カスタムコネクタ・MCP サーバー)に、次の URL を追加します。

https://mcp.tatekare.com/mcp
  1. Claude:無料プランからつなげます。claude.ai の「設定 → コネクタ → カスタムコネクタを追加」に、名前と上の URL を入れて追加し、「連携」を押します。
  2. ChatGPT:自分でつなげるのは、ChatGPT の Business・Enterprise・Edu のワークスペースです(Pro は読み取りのみ。無料・Go・Plus はつなげません)。それ以外のプランでは、上のプラグインをお使いください。管理者が「Plugins → Add custom MCP server」で上の URL を入れ、認証に OAuth を選びます。
  3. 「みんなの縦型カレンダーにつなぐ」というページが開くので、アプリで表示した API キーを貼って「許可する」を押します。
  4. あとは「来週の予定を教えて」「土曜の10時にお父さんの買い物を入れて」のように話しかけるだけです。

AI が使える操作は、このページの REST API と同じ13個です(項目の一覧、予定の一覧・取得・追加・変更・削除、繰り返しの追加・変更・削除、添付・添付の削除・ダウンロード用リンク、今日使った回数)。

4. iOS ショートカットの例

「今日の予定を読み上げる」ショートカットの作り方です。

  1. 「日付を整形」で、今日を yyyy-MM-dd の形にします。
  2. 「URL」に https://mcp.tatekare.com/api/v1/events?from=(整形した日付)&to=(整形した日付) を入れます。
  3. 「URLの内容を取得」で、方法を GET、ヘッダに Authorization=Bearer tk_... を足します。
  4. 「辞書の値を取得」で events を取り出し、「各項目を繰り返す」で item_name・start_time・title をつなげて「テキストを読み上げる」に渡します。

予定を足すときは、方法を POST にして、本文を JSON で item・date・title などを入れます。

細かい指定(項目・日付・時刻の形、予定の種類、エラー、回数の上限)は、このあとの各章をご覧ください。

5. REST API の基本

ベース URLhttps://mcp.tatekare.com/api/v1
認証Authorization: Bearer tk_...(アプリで表示した API キー)
送る形Content-Type: application/json(POST・PATCH)
日付YYYY-MM-DD(例 2026-11-03)。カレンダーの日付そのもので、時差の変換はしません
時刻HH:MM(24時間、例 15:30)。REST では空文字 "" で時刻を消せます。終わりが始まりより前(例 22:00〜06:00)なら、翌朝までの予定で、始まりの日に表示されます
項目item には項目の id か、項目の名前(完全に一致するもの)を入れます
curl -H "Authorization: Bearer tk_xxxxxxxx" https://mcp.tatekare.com/api/v1/items

6. 予定の id と種類

予定は kind で3種類に分かれ、操作する入口が違います。id は一覧や追加の返り値に入っているものを使ってください。

kind中身id の形変更・削除
single1日だけの予定s.202611.xxxx.xxxx/events/{id}
repeat繰り返しの予定r.xxxx/repeats/{id}
span日をまたぐ予定(例 3日間の出張)r.xxxx/repeats/{id}

繰り返し・日をまたぐ予定は、一覧では日ごとに1件ずつ出ます(同じ id が日付を変えて並びます)。

7. 項目の一覧

GET /items

カレンダーの名前・今日の日付(カレンダーの持ち主のタイムゾーン)・項目の一覧・カレンダーの色(colors)を返します。最初に呼んでください。

{
  "calendar": "わが家",
  "today": "2026-10-20",
  "timezone": "Asia/Tokyo",
  "items": [
    { "id": "WdkinSMj", "name": "お父さん", "writable": true },
    { "id": "nZRHciBt", "name": "お母さん", "writable": true }
  ],
  "colors": [
    { "color": "#ffffff", "color_name": "none" },
    { "color": "#a685ff", "color_name": "purple", "color_label": "仕事" }
  ],
  "note": "Google カレンダーから取り込んだ予定は表示されません。…"
}

writable: false の項目(Google カレンダーから取り込む連携をしている項目)は、読み書きできません。

8. 予定の一覧・取得

GET /events?from=YYYY-MM-DD&to=YYYY-MM-DD

パラメータ
from・to必須。両端を含みます。一度に31日まで
item任意。項目の id か名前で絞り込み
q任意。予定の文字で絞り込み
{
  "from": "2026-11-01", "to": "2026-11-10",
  "events": [
    { "id": "s.202611.StEHSASn4dZUWqaVuU2z.bf1c543e", "kind": "single",
      "item_id": "nZRHciBt", "item_name": "お母さん", "date": "2026-11-03",
      "start_time": "15:30", "end_time": "16:00", "title": "歯医者", "color": "#fa604b", "color_name": "red", "has_memo": true },
    { "id": "r.r1fvl6hskvyxm", "kind": "repeat",
      "item_id": "BKuGvbhE", "item_name": "こども", "date": "2026-11-04",
      "start_time": "17:00", "end_time": "18:00", "title": "習い事", "color": "#ffffff", "color_name": "none",
      "repeat": { "freq": "weekly", "interval": 1, "weekdays": [1, 3] },
      "repeat_start": "2026-11-02", "repeat_end": "2026-11-30" },
    { "id": "r.rdx15q5700sdy", "kind": "span",
      "item_id": "WdkinSMj", "item_name": "お父さん", "date": "2026-11-06",
      "start_time": null, "end_time": null, "title": "出張", "color": "#ffffff", "color_name": "none",
      "start_date": "2026-11-06", "end_date": "2026-11-08" }
  ]
}

時刻のない予定は start_time・end_time が null です。一覧にはメモの中身は入らず、メモがあるときだけ has_memo: true が付きます。

GET /events/{id}

1件をメモ(memo)と添付の一覧(attachments)付きで返します。

{ "id": "s.202611.StEHSASn4dZUWqaVuU2z.bf1c543e", "kind": "single",
  "item_id": "nZRHciBt", "item_name": "お母さん", "date": "2026-11-03",
  "start_time": "15:00", "end_time": "16:00", "title": "歯医者", "color": "#ffffff", "color_name": "none",
  "memo": "保険証", "attachments": [] }

9. 予定の追加・変更・削除

POST /events

項目
item必須。項目の id か名前
date必須。YYYY-MM-DD
end_date任意。入れると日をまたぐ予定(kind: "span")になります。時刻は start_time・end_time の両方を入れるか、両方とも省きます
title予定の文字(500字まで)
start_time・end_timeHH:MM
memoメモ(5000字まで)
color色。名前(red・blue など、赤・青 でも可)、#RRGGBB、カレンダーの色のラベル(例 仕事)のどれか。色の指定を参照

title と時刻のどちらかは必要です。

curl -X POST https://mcp.tatekare.com/api/v1/events \
  -H "Authorization: Bearer tk_xxxxxxxx" -H "Content-Type: application/json" \
  -d '{"item":"お母さん","date":"2026-11-03","title":"歯医者","start_time":"15:00","end_time":"16:00","memo":"保険証"}'

返り値は、作った予定(GET /events/{id} と同じ形)です。

PATCH /events/{id}

1日だけの予定(single)を変えます。送った項目だけが変わります。date・item を送ると、予定が移ります。

{"start_time": "15:30"}

DELETE /events/{id}

{ "deleted": true, "id": "s.202611.StEHSASn4dZUWqaVuU2z.bf1c543e" }

10. 繰り返し・日をまたぐ予定

POST /repeats

項目
item必須
start_date必須。繰り返しの始まり
end_date任意。省くと終わりなし
repeat必須。下の表
title・start_time・end_time・memo・color単発と同じ
repeat の項目
freqdaily・weekly・monthly・yearly
interval何日・何週・何か月・何年ごとか(省くと1)
weekdaysweekly のときの曜日。1=月 … 7=日
monthly{"day": 15}(毎月15日)、{"day": -1}(月末)、{"nth": 2, "weekday": 2}(第2火曜)、{"nth": -1, "weekday": 5}(最終金曜)

1回の長さは24時間未満です。夜をまたぐ予定(例 毎週金曜 22:00〜06:00)は繰り返せますが、24時間以上続く予定(例 毎月1日から3日間)は繰り返しにできません。その場合は、日をまたぐ予定を1回ずつ POST /events(end_date 付き)で作ってください。end_date は繰り返しの終わりの日で、1回の長さではありません。

{"item":"こども","start_date":"2026-11-02","end_date":"2026-11-30",
 "title":"習い事","start_time":"17:00","end_time":"18:00",
 "repeat":{"freq":"weekly","weekdays":[1,3]}}

PATCH /repeats/{id}

繰り返し・日をまたぐ予定を変えます。

項目
scope必須。all(全部)・from_date(その日以降)・only_date(その日だけ。1日だけの予定に切り離されます)
datefrom_date・only_date のとき必須
changes変える中身。title・start_time・end_time・memo・color・item・start_date・end_date・repeat
{"scope":"from_date","date":"2026-11-16","changes":{"start_time":"17:30"}}

DELETE /repeats/{id}?scope=all|from_date|only_date&date=YYYY-MM-DD

{ "deleted": true, "id": "r.r1fvl6hskvyxm", "scope": "only_date", "date": "2026-11-04" }

色の指定

color には次のどれでも入れられます。返り値には color(#RRGGBB)と、あれば color_name(名前)・color_label(ラベル)が付きます。

11. 添付ファイル

1日だけの予定(single)に、JPEG・PNG・PDF を付けられます。1ファイル1MBまで、1つの予定に5ファイルまでです。添付の回数にはプランごとの上限があります(アプリと共通)。

POST /events/{id}/files

{"name": "診察券.jpg", "data": "<base64>"}
{ "attached": true, "event_id": "s.…", "file": { "id": "…", "name": "診察券.jpg", "type": "jpg" } }

DELETE /events/{id}/files/{fileId}

GET /events/{id}/files/{fileId}/url

ダウンロード用の一時的な URL(15分有効)を返します。

{ "url": "https://storage.googleapis.com/…", "expires_at": "2026-10-20T10:15:00.000Z", "name": "診察券.jpg", "type": "jpg" }

12. エラー

エラーのときは HTTP のステータスと、次の形の JSON を返します。message は日本語です。

{ "error": "bad_request", "message": "一度に読めるのは31日までです。期間を分けて呼んでください" }
ステータスerror主なとき
400bad_request日付・時刻の形が違う、期間が31日を超える、id が正しくない、繰り返しを /events で変えようとした
401unauthorizedキーがない・正しくない・取り消された・期限切れ、申請した人がカレンダーの権限を失った
403forbiddenプランが対象外になった(契約が切れた、ビジネスからプロに変えて項目が21以上のまま、など)、Google から取り込む連携中の項目、添付の上限
404not_found予定・項目・添付が見つからない
413too_large添付が1MBを超える
429rate_limited回数の上限(次の章)
500internalサーバーのエラー。少し待ってから試してください

13. 回数の上限

1日の上限は、カレンダーのキー全部(ChatGPT・Claude・REST の合計)で分け合い、カレンダーのプランで決まります。日本時間の0時に戻ります。

プラン1日の呼び出しそのうち読み取り
ファミリー200回50回
プロ800回150回
ビジネス2,000回300回

今日使った回数と残りは、次の方法で確かめられます。

{"calls": {"used": 120, "limit": 800, "remaining": 680},
 "reads": {"used": 45, "limit": 150, "remaining": 105},
 "this_key": {"calls": 80, "reads": 30},
 "shared_by_all_keys_of_calendar": true,
 "per_minute_limit": 30, "resets_at": "2026-11-01T15:00:00.000Z", ...}

14. 注意

関連:プライバシーポリシー。ご質問は admin@funeasy-soft.com までご連絡ください。