gogcliでGoogle Calendar操作:予定作成からGoogle Meet自動生成までCLIで完結
結論
gogcliを使えば、ブラウザを開かずにカレンダー予定の作成・更新・削除がCLIからできる。--with-meet フラグを付けるだけでGoogle MeetのURLも自動生成される。Claude Codeとの組み合わせで「明日の14時にミーティング入れて」と言うだけで予定が入る。
予定の作成
gog calendar create primary \
--summary "gogcliテスト予定" \
--from "2026-01-30T10:30:00+09:00" \
--to "2026-01-30T11:00:00+09:00" \
--description "gogcliからのテスト登録"
primaryはデフォルトカレンダー- 日時はRFC3339形式(
YYYY-MM-DDTHH:MM:SS+09:00)で指定 --descriptionで説明文も追加できる
Google Meet付き予定の作成
gog calendar create primary \
--summary "オンライン打ち合わせ" \
--from "2026-01-30T10:30:00+09:00" \
--to "2026-01-30T11:00:00+09:00" \
--description "gogcliからのテスト登録。Google Meet付き。" \
--with-meet
--with-meet を付けるだけで、出力にMeetリンクが含まれる。
meet https://meet.google.com/xxx-xxxx-xxx
このURLをそのままChatに投稿したりメールに貼ったりできる。

電話での参加番号も自動で割り当てられる。
予定の更新
gog calendar update primary <eventId> \
--summary "新しいタイトル" \
--description "更新した説明文"
タイトル、日時、説明、参加者などを個別に更新できる。ただし --with-meet は create でしか使えない。既存の予定にMeetを後から追加したい場合は、削除してMeet付きで再作成する。
予定の削除
gog calendar delete primary <eventId> --force
--force で確認プロンプトをスキップする。
その他のコマンド
# 予定一覧(日付範囲指定)
gog calendar events primary --from "2026-01-30" --to "2026-01-31"
# 予定検索
gog calendar search "ミーティング"
# 空き時間の確認
gog calendar freebusy <calendarId> --from "..." --to "..."
# 集中時間ブロック
gog calendar focus-time --from "..." --to "..."
# 不在設定
gog calendar out-of-office --from "..." --to "..."
# 勤務場所の設定(自宅/オフィス)
gog calendar working-location --from "..." --to "..." --type home
createで使えるオプション
| オプション | 用途 |
|---|---|
--summary | 予定タイトル |
--from / --to | 開始・終了日時(RFC3339) |
--description | 説明文 |
--location | 場所 |
--attendees | 参加者(カンマ区切りのメールアドレス) |
--with-meet | Google Meet自動生成 |
--rrule | 繰り返しルール(例: RRULE:FREQ=WEEKLY) |
--reminder | リマインダー(例: popup:30m, email:1d) |
--event-color | 色(1〜11) |
--visibility | 公開設定(public, private, confidential) |
--transparency | 表示(busy or free) |
--all-day | 終日予定 |
ブラウザでできることはほぼ全部CLIからできる。
注意点
| 項目 | 内容 |
|---|---|
--with-meet | create のみ対応。update では使えない |
| 日時形式 | RFC3339必須。2026-01-30T10:30:00+09:00 のように書く |
| eventId | create や events の出力に含まれるIDを使う |
| カレンダーID | primary で自分のデフォルトカレンダー。他のカレンダーはメールアドレス形式 |
税理士事務所での活用:識別子による一括管理
gogcliで作った予定に**カスタムプロパティ(識別子)**を付けると、バッチ単位での取得・一括削除が安全にできる。手動で入れた予定を誤って消す心配がない。
識別子の付け方
--private-prop でカレンダーUIには表示されないメタデータを付与する。
gog calendar create primary \
--summary "○○社 法人税申告期限" \
--from "2026-05-31T00:00:00+09:00" \
--to "2026-05-31T23:59:00+09:00" \
--all-day \
--reminder "popup:7d" --reminder "email:3d" \
--private-prop "source=gogcli" \
--private-prop "batch=tax-deadline-2026"
| プロパティ | 用途 |
|---|---|
source=gogcli | gogcliで作った予定であることを識別 |
batch=tax-deadline-2026 | どのバッチで作ったかを識別 |
識別子でフィルタリング
# このバッチで作った予定だけ取得
gog --json calendar events primary \
--private-prop-filter "batch=tax-deadline-2026"
手動で作った予定には batch プロパティがないので、フィルタに引っかからない。間違えたバッチだけを安全に一括削除できる。
税務カレンダーの一括登録イメージ
顧問先ごとに決算月が異なるため、申告期限を手動で管理するのは手間がかかる。スプレッドシートに顧問先リストがあれば、こう自動化できる:
1. Sheetsから顧問先リスト(社名・決算月)を取得
gog sheets get "<spreadsheetId>" "顧問先!A2:C50"
2. 決算月から各申告期限を計算
- 法人税: 決算日の2ヶ月後
- 消費税: 決算日の2ヶ月後
- 源泉所得税: 毎月10日(納期の特例なら7月・1月)
3. 全顧問先分のカレンダー予定を一括登録
gog calendar create primary \
--summary "○○社 法人税申告期限" \
--private-prop "batch=tax-deadline-2026-q1" \
...
4. 間違えたら、バッチ指定で一括削除
gog --json calendar events primary \
--private-prop-filter "batch=tax-deadline-2026-q1" \
→ eventIdを取り出して一括delete
安全性のまとめ
| ポイント | 内容 |
|---|---|
private-prop | カレンダーUI上には表示されない。裏のメタデータ |
private-prop-filter | そのメタデータで予定をフィルタリングできる |
| 手動予定との分離 | プロパティがない予定はフィルタに引っかからない |
| バッチ単位の管理 | batch=xxx の値を変えれば世代管理もできる |
| 誤削除の防止 | 手動で作った予定は絶対に巻き込まれない |
面談スケジュールの自動化:freebusy → 予定作成 → Chat通知
Claude Codeに「来週Aさんと面談入れて」と言うだけで、空き確認から予定作成、Chat通知まで全自動で回せる。実際にテストした流れを記録する。
Step 1: freebusyで空き時間を確認
gog --json calendar freebusy \
"[email protected],[email protected]" \
--from "2026-01-30T11:00:00+09:00" \
--to "2026-01-30T18:00:00+09:00"
複数のカレンダーIDをカンマ区切りで渡すと、各メンバーのbusy時間帯がJSON形式で返ってくる。busyでない時間帯が空き時間。
Step 2: Meet付き予定を作成(参加者招待あり)
gog --json calendar create primary \
--summary "面談:小松啓 × number55(テスト)" \
--from "2026-01-30T13:00:00+09:00" \
--to "2026-01-30T13:30:00+09:00" \
--description "gogcliによる自動スケジュール登録テスト。freebusyで空き確認済み。" \
--attendees "[email protected]" \
--with-meet \
--private-prop "source=gogcli" \
--private-prop "batch=meeting-test-001"
--attendees で参加者を指定すると招待メールが送られる。--with-meet でMeet URLも自動生成。JSON出力からMeetリンクを取得できる。

ゲスト欄にも参加者が表示され、返答待ちの状態になる。
Step 3: ChatスペースにMeet URLを投稿
gog chat messages send spaces/AAAA9qhlGLw \
--text "【面談スケジュール自動登録】
日時: 2026年1月30日(金)13:00〜13:30
件名: 面談:小松啓 × number55(テスト)
Google Meet: https://meet.google.com/ecv-zhjf-hav
電話参加: +81 3-4545-0450(PIN: 6828913082585)
※ gogcli + Claude Code による自動登録テストです。"

MeetのURLを含むメッセージを投稿すると、Google Chatが自動でビデオ会議のプレビューカードを生成してくれる。
このフローのポイント
| ステップ | コマンド | 何をしているか |
|---|---|---|
| 空き確認 | freebusy | 複数メンバーのbusy/freeを取得 |
| 予定作成 | create --with-meet --attendees | Meet生成+参加者招待を1コマンドで |
| Chat通知 | messages send | MeetリンクをChatスペースに投稿 |
| 識別子 | --private-prop | 後からバッチ単位で管理・削除可能 |
Claude Codeがこの3ステップを自動で実行するので、ユーザーは「来週Aさんと面談入れて」と言うだけで済む。
その他の活用
- 日次スケジュール通知: 朝一で今日の予定を取得 → Chatに投稿
- 繁忙期の集中時間確保: 確定申告期に
focus-timeで作業ブロックを自動設定 - 月次タスクの繰り返し登録:
--rrule "RRULE:FREQ=MONTHLY;BYMONTHDAY=10"で毎月の源泉所得税納付日を登録

予定の説明欄にテスト結果や注意点をまとめて書き込むこともできる。カレンダーの予定をメモ帳代わりに使う運用も可能。