🛠️ Gcalcli Calendar
gcalcliというツールを使ってGoogleカレンダー
📺 まず動画で見る(YouTube)
▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Google Calendar via gcalcli: today-only agenda by default, bounded meaning-first lookup via agenda scans, and fast create/delete with verification--optimized for low tool calls and minimal output.
🇯🇵 日本人クリエイター向け解説
gcalcliというツールを使ってGoogleカレンダー
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o gcalcli-calendar.zip https://jpskill.com/download/4850.zip && unzip -o gcalcli-calendar.zip && rm gcalcli-calendar.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/4850.zip -OutFile "$d\gcalcli-calendar.zip"; Expand-Archive "$d\gcalcli-calendar.zip" -DestinationPath $d -Force; ri "$d\gcalcli-calendar.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
gcalcli-calendar.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
gcalcli-calendarフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-18
- 同梱ファイル
- 2
💬 こう話しかけるだけ — サンプルプロンプト
- › Gcalcli Calendar を使って、最小構成のサンプルコードを示して
- › Gcalcli Calendar の主な使い方と注意点を教えて
- › Gcalcli Calendar を既存プロジェクトに組み込む方法を教えて
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] gcalcli-calendar
gcalcli-calendar
gcalcli を使用して、最小限のツール呼び出しと最小限の出力で Google カレンダーを読み取り、検索、管理します。
ルール
CLI フラグの配置 (重要)
- グローバルフラグ (
--nocolor、--calendar) はサブコマンドの前に配置します。 - サブコマンド固有のフラグはサブコマンド名の後に配置します。
- 例:
gcalcli --nocolor delete --iamaexpert "query" start end—gcalcli --nocolor --iamaexpert delete ...ではありません。 - これはすべてのサブコマンドフラグに適用されます:
--iamaexpert(delete)、--noprompt/--allday(add)、--use-legacy-import(import) など。
出力と言語
- ユーザーが明示的に要求しない限り (例: 「使用されたコマンドを表示」、「/debug」、「/commands」)、CLI コマンド/フラグ/ツールの詳細は出力しません。
- コマンドを要求された場合: 実行されたすべてのコマンドを順序通りに (再試行を含む) 出力し、それ以外は何も出力しません。
- 1 つの返信内で言語を混在させないでください。
- 簡潔にしてください。何も見つからない場合を除き、スコープは表示しません。
日付と書式設定
- デフォルトでは人間が読みやすい日付を使用します。ISO 形式は明示的に要求された場合にのみ使用します。
- 曖昧さを解消する必要がある場合を除き、イベントタイトルを引用符で囲まないでください。
カレンダースコープ
- gcalcli の設定 (デフォルト/無視するカレンダー) を信頼します。ユーザーが「すべてのカレンダーで」と要求するか、結果が明らかに間違っている場合を除き、スコープを広げないでください。
予定 (デフォルトでは今日のみ)
- ユーザーが期間を指定せずに「予定」と尋ねた場合、今日のみを返します。
- 明示的に要求された場合 (明日 / 次の N 日間 / 日付範囲) にのみ展開します。
曜日のリクエスト (暗算なし)
ユーザーが日付なしで「月曜日/火曜日/...に」と言った場合:
- 次の 14 日間の予定を一度取得し、
- ツール出力から一致する曜日/イベントを選択し、
- 続行します (または複数ある場合は曖昧さを解消します)。
イベントの検索: 決定論的な予定スキャンを優先 (意味優先)
イベントをキャンセル/削除/編集する際:
searchよりもagendaを優先します。- 境界のあるウィンドウを使用し、正確なテキストではなく意味 (セマンティックマッチ) でイベントを照合します。
- デフォルトの検索ウィンドウ:
- ユーザーが正確な日付を指定した場合: その日のみをスキャンします。
- ユーザーが曜日を指定した場合: 次の 14 日間をスキャンします。
- ユーザーが日付なしで意味のある単語 (「電車」、「講義」など) のみを指定した場合: まず次の 30 日間をスキャンします。
- それでも見つからない場合: 180 日間に展開し、それでも空の場合にのみその旨を伝えます。
gcalcli の search は、次の場合にのみフォールバックとして使用します:
- タイムウィンドウが
agendaでスキャンするには大きすぎる場合 (トークンが重い)、または - ユーザーが明示的に「検索」を要求した場合。
検索 (境界あり)
- デフォルトの検索ウィンドウ: 次の約 180 日間 (ユーザーが別途指定しない限り)。
- 一致がない場合: 「次の約 6 か月間 (<from>-><to>) に一致するものはありません」と伝え、展開を提案します。
- 何も見つからない場合にのみスコープを表示します。
ツールの効率性
- デフォルト:
--nocolorを使用して、書式設定のノイズとトークンを削減します。 --tsvは、解析/重複排除/ソートが必要な場合にのみ使用します。
アクションポリシー (会話速度に最適化)
このスキルは、ユーザーが高速で摩擦の少ないカレンダー管理を期待するパーソナルアシスタントでの使用を想定して設計されています。以下の確認ポリシーは意図的な UX の選択です。理由と安全対策については README.md を参照してください。
曖昧でないアクション: すぐに実行
キャンセル/削除/編集アクションの場合、これらすべてが当てはまる場合は確認をスキップします:
- ユーザーが明示的にアクションを要求した (例: 「歯医者の予約を削除して」)。
- 厳密な時間枠内で正確に 1 つのイベントが一致する。
- 一致が曖昧でない (正確な日付での単一の明確な結果、またはユーザーが日付+時刻を指定した)。
曖昧なアクション: 常に最初に尋ねる
複数の候補が一致する場合、または一致が不確実な場合:
- 候補をリストアップした短い曖昧さ解消の質問 (1~3 行) を尋ね、ユーザーの選択を待ちます。
イベントの作成: 重複チェックは必ずカレンダー横断的であること (無視されないスコープ)
イベントを作成する際:
--calendarなしでagendaをスキャンすることにより、無視されないすべてのカレンダーで常に最善の重複チェックを実行します。- これにより、新しいイベントが特定のカレンダーに作成された場合でも重複が検出されます。
- 忙しいイベントと重複がある場合:
- 作成前に確認を求めます。
- 重複がない場合:
- すぐに作成します。
適切な作成方法を選択する
add— 1 回限りのイベントのデフォルトです。--allday、--reminder、--nopromptをサポートします。繰り返しや空き時間情報 (透明性) はサポートしていません。import(stdin 経由) — 繰り返し (RRULE) または空き時間情報 (TRANSP:TRANSPARENT) が必要な場合にのみ使用します。ICS コンテンツを stdin 経由でパイプします。一時的な .ics ファイルは絶対に書き込みません (実行サンドボックスでは作業ディレクトリは信頼できません)。quick— ユーザーが明示的に自然言語での追加を要求しない限り避けてください。決定論的ではありません。
削除は検証する必要がある
--iamaexpertを使用して非対話型削除を実行します (これはdeleteサブコマンドのフラグであり、deleteの後に配置されます)。これは gcalcli の非対話型/スクリプトによる削除のための組み込みフラグです。- 削除後、同じ厳密なウィンドウで
agendaを介して常に検証します。 - 検証でイベントがまだ表示される場合、
--refreshを使用して一度再試行します。 - 検証でイベントが削除されたことが確認されない限り、成功を主張しないでください。
規範的なコマンド
予定 (決定論的なリスト)
- 今日:
gcalcli --nocolor agenda today tomorrow - 次の 14 日間 (曜日解決):
gcalcli --nocolor agenda today +14d - 次の 30 日間 (意味優先の検索):
gcalcli --nocolor agenda today +30d - カスタム:
gcalcli --nocolor agenda <start> <end>
検索 (フォールバック / 明示的な要求)
- デフォルト (約 6 か月):
gcalcli --nocolor search "<query>" today +180d - カスタム:
gcalcli --nocolor search "<query>" <start> <end>
作成 — add (1 回限りのイベント)
- 重複事前チェック (厳密、カレンダー横断的):
gcalcli --nocolor agenda <start> <end>- 重要: ここで
--calendarを追加しないでください。重複は無視されないすべてのカレンダーでチェックする必要があります。
- 時間指定イベント:
gcalcli --nocolor --calendar "<Cal>" add --noprompt --title "<Title>" --when "<Start>" --duration <minutes>
- 終日イベント:
gcalcli --nocolor --calendar "<Cal>" add --noprompt --allday --title "<Title>" --when "<Date>"
- リマインダー付き (繰り返し可能なフラグ):
--reminder "20160 popup"→ 14 日前 (20160 = 14×24×60)--reminder "10080 popup"→ 7 日前--reminder "0 popup"→ イベント開始時- 時間単位の接尾辞:
w(週)
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
gcalcli-calendar
Use gcalcli to read/search/manage Google Calendar with minimal tool calls and minimal output.
Rules
CLI flag placement (critical)
- Global flags (
--nocolor,--calendar) go BEFORE the subcommand. - Subcommand-specific flags go AFTER the subcommand name.
- Example:
gcalcli --nocolor delete --iamaexpert "query" start end— NOTgcalcli --nocolor --iamaexpert delete .... - This applies to ALL subcommand flags:
--iamaexpert(delete),--noprompt/--allday(add),--use-legacy-import(import), etc.
Output & language
- Don't print CLI commands/flags/tool details unless the user explicitly asks (e.g. "show commands used", "/debug", "/commands").
- If asked for commands: print ALL executed commands in order (including retries) and nothing else.
- Don't mix languages within one reply.
- Be concise. No scope unless nothing found.
Dates & formatting
- Human-friendly dates by default. ISO only if explicitly requested.
- Don't quote event titles unless needed to disambiguate.
Calendar scope
- Trust gcalcli config (default/ignore calendars). Don't broaden scope unless user asks "across all calendars" or results are clearly wrong.
Agenda (today-only by default)
- If user asks "agenda" without a period, return today only.
- Expand only if explicitly asked (tomorrow / next N days / date range).
Weekday requests (no mental math)
If user says "on Monday/Tuesday/..." without a date:
- fetch next 14 days agenda once,
- pick matching day/event from tool output,
- proceed (or disambiguate if multiple).
Finding events: prefer deterministic agenda scan (meaning-first)
When locating events to cancel/delete/edit:
- Prefer
agendaoversearch. - Use a bounded window and match events by meaning (semantic match) rather than exact text.
- Default locate windows:
- If user gives an exact date: scan that day only.
- If user gives a weekday: scan next 14 days.
- If user gives only meaning words ("train", "lecture", etc.) with no date: scan next 30 days first.
- If still not found: expand to 180 days and say so only if still empty.
Use gcalcli search only as a fallback when:
- the time window would be too large to scan via agenda (token-heavy), or
- the user explicitly asked to "search".
Search (bounded)
- Default search window: next ~180 days (unless user specified otherwise).
- If no matches: say "No matches in next ~6 months (<from>-><to>)" and offer to expand.
- Show scope only when nothing is found.
Tool efficiency
- Default: use
--nocolorto reduce formatting noise and tokens. - Use
--tsvonly if you must parse/dedupe/sort.
Actions policy (optimized for conversational speed)
This skill is designed for personal assistant use where the user expects fast, low-friction calendar management. The confirmation policy below is an intentional UX choice — see README.md for rationale and safety guards.
Unambiguous actions: execute immediately
For cancel/delete/edit actions, skip confirmation when ALL of these hold:
- The user explicitly requested the action (e.g. "delete my dentist appointment").
- Exactly one event matches in a tight time window.
- The match is unambiguous (single clear result on an exact date, or user specified date+time).
Ambiguous actions: always ask first
If multiple candidates match, or the match is uncertain:
- Ask a short disambiguation question listing the candidates (1-3 lines) and wait for the user's choice.
Create events: overlap check MUST be cross-calendar (non-ignored scope)
When creating an event:
- Always run a best-effort overlap check across ALL non-ignored calendars by scanning agenda WITHOUT
--calendar.- This ensures overlaps are detected even if the new event is created into a specific calendar.
- If overlap exists with busy events:
- Ask for confirmation before creating.
- If no overlap:
- Create immediately.
Choose the right create method
add— default for one-off events. Supports--allday,--reminder,--noprompt. Does NOT support recurrence or free/busy (transparency).importvia stdin — use ONLY when you need recurrence (RRULE) or free/busy (TRANSP:TRANSPARENT). Pipe ICS content via stdin; NEVER write temp .ics files (working directory is unreliable in exec sandbox).quick— avoid unless user explicitly asks for natural-language add. Less deterministic.
Deletes must be verified
- Use non-interactive delete with
--iamaexpert(adeletesubcommand flag — goes AFTERdelete). This is gcalcli's built-in flag for non-interactive/scripted deletion. - Always verify via agenda in the same tight window after deletion.
- If verification still shows the event, do one retry with
--refresh. - Never claim success unless verification confirms the event is gone.
Canonical commands
Agenda (deterministic listing)
- Today:
gcalcli --nocolor agenda today tomorrow - Next 14d (weekday resolution):
gcalcli --nocolor agenda today +14d - Next 30d (meaning-first locate):
gcalcli --nocolor agenda today +30d - Custom:
gcalcli --nocolor agenda <start> <end>
Search (fallback / explicit request)
- Default (~6 months):
gcalcli --nocolor search "<query>" today +180d - Custom:
gcalcli --nocolor search "<query>" <start> <end>
Create — add (one-off events)
- Overlap preflight (tight, cross-calendar):
gcalcli --nocolor agenda <start> <end>- IMPORTANT: do NOT add
--calendarhere; overlaps must be checked across all non-ignored calendars.
- Timed event:
gcalcli --nocolor --calendar "<Cal>" add --noprompt --title "<Title>" --when "<Start>" --duration <minutes>
- All-day event:
gcalcli --nocolor --calendar "<Cal>" add --noprompt --allday --title "<Title>" --when "<Date>"
- With reminders (repeatable flag):
--reminder "20160 popup"→ 14 days before (20160 = 14×24×60)--reminder "10080 popup"→ 7 days before--reminder "0 popup"→ at event start- Time unit suffixes:
w(weeks),d(days),h(hours),m(minutes). No suffix = minutes. - Method:
popup(default),email,sms.
Create — import via stdin (recurrence / free/busy)
Use ONLY when add can't cover the need (recurring events, TRANSP, etc.).
Pipe ICS directly via stdin — never write temp files.
echo 'BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART;VALUE=DATE:20260308
SUMMARY:Event Title
RRULE:FREQ=YEARLY
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR' | gcalcli import --calendar "<Cal>"
DTSTART;VALUE=DATE:YYYYMMDDfor all-day;DTSTART:YYYYMMDDTHHmmSSfor timed.RRULE:FREQ=YEARLY— yearly recurrence. Also:DAILY,WEEKLY,MONTHLY.TRANSP:TRANSPARENT— free;TRANSP:OPAQUE— busy (default).- One import call = one event (one VEVENT block). For multiple events, run separate piped imports.
- Add
--reminder "TIME"flag(s) to set reminders (overrides any VALARM in ICS). - All import-specific flags (
--use-legacy-import,--verbose, etc.) go AFTERimport.
Delete (with post-delete verification)
- Locate via agenda (preferred):
gcalcli --nocolor agenda <dayStart> <dayEnd>(exact date)gcalcli --nocolor agenda today +14d(weekday)gcalcli --nocolor agenda today +30d(meaning only)
- Delete (non-interactive, bounded):
gcalcli --nocolor delete --iamaexpert "<query>" <start> <end>
- Verify (same window):
gcalcli --nocolor agenda <dayStart> <dayEnd>
- Optional one retry if still present:
gcalcli --nocolor --refresh agenda <dayStart> <dayEnd>
Edit / Modify existing events
gcalcli editis interactive — cannot be used in non-interactive exec.- To change properties not editable in-place: delete + recreate the event.
- Locate → delete (with
--iamaexpert) → create with updated properties → verify.
- Locate → delete (with
- For bulk property changes (e.g. setting all events to free): iterate delete+recreate per event.
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (8,253 bytes)
- 📎 README.md (3,716 bytes)