AI連携(API)
みんなの縦型カレンダー · 最終更新日:2026年10月23日
ChatGPT や Claude などの AI、iOS ショートカット、自作のプログラムから、みんなの縦型カレンダーの予定を見たり、追加・変更・削除したりできます。
できることの例
- 「来週の土曜、お父さんに『買い物』を入れて」と話しかけて登録する
- 学校のお便りや部活の予定表などのプリントを写真で送って、「子どもの予定に全部入れて」とまとめて登録する
- メールや LINE の文を貼って、「この予定を入れて」と頼む
- 「今週の予定は?」「10日は空いてる?」と聞く(プロ・ビジネス)
1. はじめに(キーの取り方)
- 使えるのは、ファミリー(8項目まで)・プロ(20項目まで)・ビジネスのカレンダーです。
- ファミリーでは、予定の追加と、追加した予定の変更・削除ができます。予定を読むこと(予定の一覧・取得・添付のリンク)は、プロ・ビジネスでできます。
- キーを申請できるのは、カレンダーの管理者と編集者です。
- アプリのメニュー「AI連携(API)」で「キーを申請する」を押します。1つのカレンダーで複数のキーを使えます。
- 申請から24時間後に使えるようになり、メンバー全員に通知されます。申請した人だけが、キーを1回だけ表示できます。
- キーは
tk_で始まる文字列です。人に見せず、安全な場所に控えてください。 - キーはアプリからいつでも取り消せます。取り消すと、つないだ AI からも使えなくなります。90日使われないキーは自動で無効になります。
AI からの追加・変更・削除は、アプリの編集履歴に「AI(サービス名 / 申請した人)」として残り、ほかのメンバーにも通知されます。
2. ChatGPT のプラグインで使う
ChatGPT の無料プランを含む多くのプランで、URL を入力せずにつなげます。
- ChatGPT の「プラグイン」で「縦型カレンダー」と検索し、「みんなの縦型カレンダー」(Funeasy Soft)を追加します。
- 「みんなの縦型カレンダーにつなぐ」というページが開くので、アプリで表示した API キーを貼って「許可する」を押します。
- あとは「来週の予定を教えて」「土曜の10時にお父さんの買い物を入れて」のように話しかけるだけです。
3. ChatGPT・Claude にコネクタでつなぐ
AI の「コネクタ」(カスタムコネクタ・MCP サーバー)に、次の URL を追加します。
https://mcp.tatekare.com/mcp
- Claude:無料プランからつなげます。claude.ai の「設定 → コネクタ → カスタムコネクタを追加」に、名前と上の URL を入れて追加し、「連携」を押します。
- ChatGPT:自分でつなげるのは、ChatGPT の Business・Enterprise・Edu のワークスペースです(Pro は読み取りのみ。無料・Go・Plus はつなげません)。それ以外のプランでは、上のプラグインをお使いください。管理者が「Plugins → Add custom MCP server」で上の URL を入れ、認証に OAuth を選びます。
- 「みんなの縦型カレンダーにつなぐ」というページが開くので、アプリで表示した API キーを貼って「許可する」を押します。
- あとは「来週の予定を教えて」「土曜の10時にお父さんの買い物を入れて」のように話しかけるだけです。
AI が使える操作は、このページの REST API と同じ13個です(項目の一覧、予定の一覧・取得・追加・変更・削除、繰り返しの追加・変更・削除、添付・添付の削除・ダウンロード用リンク、今日使った回数)。
4. iOS ショートカットの例
「今日の予定を読み上げる」ショートカットの作り方です。
- 「日付を整形」で、今日を
yyyy-MM-ddの形にします。 - 「URL」に
https://mcp.tatekare.com/api/v1/events?from=(整形した日付)&to=(整形した日付)を入れます。 - 「URLの内容を取得」で、方法を GET、ヘッダに
Authorization=Bearer tk_...を足します。 - 「辞書の値を取得」で
eventsを取り出し、「各項目を繰り返す」でitem_name・start_time・titleをつなげて「テキストを読み上げる」に渡します。
予定を足すときは、方法を POST にして、本文を JSON で item・date・title などを入れます。
細かい指定(項目・日付・時刻の形、予定の種類、エラー、回数の上限)は、このあとの各章をご覧ください。
5. REST API の基本
| ベース URL | https://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 の形 | 変更・削除 |
|---|---|---|---|
single | 1日だけの予定 | 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_time | HH: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 の項目 | |
|---|---|
freq | daily・weekly・monthly・yearly |
interval | 何日・何週・何か月・何年ごとか(省くと1) |
weekdays | weekly のときの曜日。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日だけの予定に切り離されます) |
date | from_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(ラベル)が付きます。
- 名前:
red(赤)・rose(くすんだ赤)・pink・light_pink・orange・yellow・light_yellow・lime・yellow_green(黄緑)・green・mint・sky(空色)・light_blue(水色)・blue・deep_blue(濃い青)・purple・light_gray・gray・dark_gray・none(色なし)。日本語の「赤」「青」なども使えます - 16進数:
#RRGGBB(例#00897b)。好きな色にできます - カレンダーの色のラベル:アプリの色の設定で付けたラベル(例
仕事)。GET /itemsのcolorsに一覧が出ます
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 | 主なとき |
|---|---|---|
| 400 | bad_request | 日付・時刻の形が違う、期間が31日を超える、id が正しくない、繰り返しを /events で変えようとした |
| 401 | unauthorized | キーがない・正しくない・取り消された・期限切れ、申請した人がカレンダーの権限を失った |
| 403 | forbidden | プランが対象外になった(契約が切れた、ビジネスからプロに変えて項目が21以上のまま、など)、Google から取り込む連携中の項目、添付の上限 |
| 404 | not_found | 予定・項目・添付が見つからない |
| 413 | too_large | 添付が1MBを超える |
| 429 | rate_limited | 回数の上限(次の章) |
| 500 | internal | サーバーのエラー。少し待ってから試してください |
13. 回数の上限
1日の上限は、カレンダーのキー全部(ChatGPT・Claude・REST の合計)で分け合い、カレンダーのプランで決まります。日本時間の0時に戻ります。
| プラン | 1日の呼び出し | そのうち読み取り |
|---|---|---|
| ファミリー | 200回 | 50回 |
| プロ | 800回 | 150回 |
| ビジネス | 2,000回 | 300回 |
- 読み取りは、項目の一覧・予定の一覧・取得・ダウンロード用リンクです。読み取りが上限になっても、追加・変更・削除はできます
- 1分の上限は、キーごとに50回です
今日使った回数と残りは、次の方法で確かめられます。
- アプリの「AI連携(API)」画面(カレンダー全体の今日の回数と、キーごとの回数が出ます)
- ChatGPT・Claude に「あと何回使える?」と聞く(道具
get_usageを使います) - REST の
GET /usage。1日の回数には数えません - REST の各レスポンスのヘッダー:
X-RateLimit-Limit・X-RateLimit-Remaining・X-RateLimit-Reset(戻る時刻、UNIX 秒)・X-RateLimit-Read-Limit・X-RateLimit-Read-Remaining
{"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. 注意
- Google カレンダーから取り込んだ予定と、Google から取り込む連携をしている項目は、API には出ません。AI が同じ予定を重ねて登録しないよう、必要なら確かめてください。みんなの縦型カレンダーから Google カレンダーへ送るだけの連携(片方向)の項目は使えます。
- AI がつなぐと、そのキーのカレンダーのすべての項目の予定が、AI のサービスに渡ります。AI のサービスでのデータの扱いは、それぞれのサービスの規約によります。
- キーが漏れたかもしれないときは、すぐにアプリで取り消して、新しく申請してください。
- API の仕様は、お知らせのうえで変わることがあります。
関連:プライバシーポリシー。ご質問は admin@funeasy-soft.com までご連絡ください。