Google Workspace CLIとKiro CLIで週報を自動生成してみた

記事タイトルとURLをコピーする

みなさんこんにちは。マネージドサービス課の塩野です。

毎週金曜日、Googleカレンダーを眺めながら「今週なにやったっけ…」って頭を抱える時間、地味にもったいないですよね。

この記事では Google Workspace CLI(gws) でGoogleカレンダーの予定を引っ張ってきて、Kiro CLI に投げて週報を自動生成するところまでやってみます。CLIはすごく便利なのですが、実はもう少しこの仕組みを構築する楽な方法がありまして、その楽な方法はまとめセクションに書いていますので最後までご一読いただけたらと思います。

Google Workspace CLIについて、下記にも似たような記事がありますのでよければご参照ください。

blog.g-gen.co.jp

blog.serverworks.co.jp


目次

Google Workspace CLI(gws)ってなに?

gws は、Drive・Gmail・Calendar・Sheets・Docs・Chat・Adminといった Google WorkspaceのAPIをひとつのCLIで操作できるツール です。npmで入れるだけで gws drive files listgws calendar +agenda みたいなコマンドが使えるようになります。

ひとつ先に言っておくと、gws は Googleの公式サポート製品ではありません。googleworkspace というGitHub orgで公開されていますが、公式サポート対象外のコミュニティプロジェクトという位置づけです。ただ、スター数は2万超えで、Google Developer RelationsのコントリビューターもコミットしているOSSなので、実用性は十分あります。

github.com

コマンドが動的に生成される、ちょっと変わった仕組み

gws のおもしろいところは、コマンドが 起動時に動的に生成される 点です。Googleの Discovery Service を叩いてAPIの定義を取得し、そこからコマンドツリーをリアルタイムで構築しています。Google側でAPIが追加されたら、gws 側のアップデートを待たずに自動で使えるようになるわけです。

AIエージェント向けのスキルも100個以上ついてくる

リポジトリには SKILL.md ファイルが100個以上同梱されていて、Claude CodeやGemini CLIからそのまま使える形式になっています。サービス単位のスキルはもちろん、exec-assistantやit-adminみたいなロール別のペルソナ、50種類以上のレシピまで揃っています。

単体CLIとしても使えますし、AIエージェントのツールとして組み込む前提で設計されているのが今風ですよね。


やる前に確認しておくこと

必要なもの

  • Node.js 18以上(npmでインストールするので)
  • Google Workspaceアカウント(この記事はInternal設定前提です。後述しますが、個人のGmailアカウントではInternalは選べません)
  • Google Cloudプロジェクト(OAuthに使います。Workspaceと同じ組織で作成します)
  • gcloud CLI(gws auth setup を使いたい場合)

OAuthのユーザータイプはInternalを選ぶ

gws はOAuth 2.0でGoogleアカウントにアクセスします。OAuthアプリのユーザータイプには「Internal」と「External」があり、この記事ではInternalを使います。

InternalはGoogle Workspace組織内のユーザーだけが使う設定で、Test userへの登録も不要、スコープ数の制限もありません。ただし、Google Workspaceの有料契約が前提です。個人のGmailアカウント(@gmail.com)ではInternalを選択できないので注意してください。

個人アカウントしかない場合はExternalのTestingモードになりますが、そちらはスコープが約25個までに制限されるため、複数サービスをまとめて操作するケースでは使い勝手が落ちます。


セットアップ手順

Step 1: gcloud CLIのインストール

gws auth setup がgcloud CLIを使ってGCPプロジェクトの作成からAPI有効化まで自動でやってくれるので、まず入れておきます。

docs.cloud.google.com

macOS(Homebrew)

brew install --cask gcloud-cli

Linux(tar.gz)

# x86_64の場合
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-x86_64.tar.gz
tar -xf google-cloud-cli-linux-x86_64.tar.gz
./google-cloud-sdk/install.sh

※インストールの際にいくつか質問がありますので、適宜回答します。

$ ./google-cloud-sdk/install.sh
Welcome to the Google Cloud CLI!

To help improve the quality of this product, we collect anonymized usage data
and anonymized stacktraces when crashes are encountered; additional information
is available at <https://cloud.google.com/sdk/usage-statistics>. This data is
handled in accordance with our privacy policy
<https://cloud.google.com/terms/cloud-privacy-notice>. You may choose 
to opt in this collection now (by choosing 'Y' at the below prompt), or at 
any time in the
future by running the following command:

    gcloud config set disable_usage_reporting false

Do you want to help improve the Google Cloud CLI (y/N)?    →ここ

To install or remove components at your current Google Cloud CLI version [561.0.0], run:
  $ gcloud components install COMPONENT_ID
  $ gcloud components remove COMPONENT_ID

To update your Google Cloud CLI installation to the latest version [561.0.0], run:
  $ gcloud components update

Modify profile to update your $PATH and enable shell command completion?

Do you want to continue (Y/n)?     →ここ

Do you want to continue (Y/n)?     →ここ

The Google Cloud SDK installer will now prompt you to update an rc file 
to bring the Google Cloud CLIs into your environment.

Enter a path to an rc file to update, or leave blank to use [/home/xxxx/.bashrc]:
Backing up [/home/xxxx/.bashrc] to [/home/xxxx/.bashrc.backup].
[/home/xxxx/.bashrc] has been updated.

==> Start a new shell for the changes to take effect.

For more information on how to get started, please visit:
  https://cloud.google.com/sdk/docs/quickstarts

Ubuntu(APTパッケージ)

sudo apt-get install apt-transport-https ca-certificates gnupg curl

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg \
  | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg

echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] \
  https://packages.cloud.google.com/apt cloud-sdk main" \
  | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

sudo apt-get update && sudo apt-get install google-cloud-cli

インストールできたら初期化します。
ブラウザが開いてGoogleアカウントへのサインインが求められます。

※WSLのUbuntuなどを使ってインストールした場合、gcloudコマンドを有効化するためにターミナルの再起動が必要です

gcloud init

※ここではURLにアクセスして認証を行うタイプなので迷う所はありません。

$ gcloud init
Welcome! This command will take you through the configuration of gcloud.

Your current configuration has been set to: [default]

You can skip diagnostics next time by using the following flag:
  gcloud init --skip-diagnostics

Network diagnostic detects and fixes local network connection issues.
Checking network connection...done.
Reachability Check passed.
Network diagnostic passed (1/1 checks passed).

You must sign in to continue. Would you like to sign in (selecting "Y" will 
open your browser to the sign-in page where you complete 
authentication) (Y/n)?  y

Go to the following link in your browser, and complete the sign-in prompts:

    https://accounts.google.com/o/oauth2/auth?response_type=codeXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX

Once finished, enter the verification code provided in your browser:

You are signed in as: [xxxx@example.com].

Using keyring backend: keyring
{
  "account": "xxxx@example.com",
  "credentials_file": "/home/xxxx/.config/gws/credentials.enc",
  "encryption": "AES-256-GCM (key in OS keyring or local `.encryption_key`; 
set GOOGLE_WORKSPACE_CLI_KEYRING_BACKEND=file for headless)",
  "message": "Authentication successful. Encrypted credentials saved.",
  "scopes": [
    "https://www.googleapis.com/auth/calendar"
  ],
  "status": "success"
}

Step 2: gwsのインストール

npm install -g @googleworkspace/cli

macOSはHomebrewでも入ります。

brew install googleworkspace-cli

バージョンが表示されれば完了です。

gws --version

Step 3: OAuthの設定とログイン

gcloud CLIが入っていれば gws auth setup 一発でOKです。GCPプロジェクトの作成・API有効化・ログインまでまとめてやってくれます。

gws auth setup

対話形式で進むので、プロジェクト名を指定しながら進めるだけです。

2回目以降のログインや再認証は gws auth login を使います。

gws auth login

※gcloudやoAuth のあたりの詳細な挙動や設定については、下記G-genのブログをご参照ください ※今回の記事の主題として、このブログで使用する権限として Google Calendar を有効にしています

blog.g-gen.co.jp

Step 4: 動作確認

ログインできたらカレンダーを取ってみます。

# 今日の予定
gws calendar +agenda

# 直近10件のイベント
gws calendar events list \
  --params '{"calendarId": "primary", "maxResults": 10, "orderBy": "startTime", "singleEvents": true, "timeMin": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"}'

JSONが返ってくれば成功です。

Kiro CLIのインストール

Kiro CLIってなに?

Kiro CLIは、AWSが作ったAIエージェントをターミナルから使えるツールです。MCP(Model Context Protocol)で外部ツールと繋げたり、カスタムエージェントを定義したりできます。今回は gws をKiro CLIから呼び出す使い方をします。

インストール

macOS / Linux

curl -fsSL https://cli.kiro.dev/install | bash

Ubuntu(.debパッケージ)

wget https://desktop-release.q.us-east-1.amazonaws.com/latest/kiro-cli.deb
sudo dpkg -i kiro-cli.deb
sudo apt-get install -f

起動するとブラウザが開いて認証を求められます。GitHub・Google・AWS Builder IDでサインインできます。

kiro-cli

gws はshellツールで呼ぶだけ

Kiro CLIにはビルトインのshellツール(execute_bash)があって、普通にbashコマンドを実行できます。なのでMCPサーバーを別途立てたり gws コマンドを呼び出さなくても、Kiro CLIで今日のGoogleカレンダーの情報を取ってという感じの指示を出せば勝手にコマンドを実行して表示してくれます。ただし、使用しているLLMモデル(Claudeなど)によってできたりできなかったりといったばらつきがありますので、可能なら Claude Sonnet 4.6 といったある程度優秀なモデルを使用することをオススメします。


実際に週報を書かせてみよう

ここからが楽しいところです。kiro-cli を起動して、こんな感じで話しかけてみます。

まずはシンプルに試す

今週のGoogleカレンダーの予定を gws コマンドで取得して、週報の形式にまとめてください。
週報の形式は以下です:
- 今週実施したこと(カレンダーの予定をベースに)
- 来週の予定
- 所感・メモ

Kiro CLIが gws calendar +agendagws calendar events list を勝手に実行して、結果をもとに週報の下書きを作ってくれます。

出力は最終的にプロンプト次第になりますが、概ね下記のようなものが出力されます。ここで記載している内容についてはブログ記事という観点から、実際に出力されたものとは異なりますのでご注意ください。

**今週実施したこと**
- XXプロジェクト対応
  - 定例会参加、議事録作成
  - New Relic導入支援

- OOプロジェクト対応
  - AWS環境設計支援
  - 作業手順書作成

**来週の予定**
- XXプロジェクト対応
  - New Relic導入支援

- OOプロジェクト対応
  - 定例会参加、議事録作成
  - AWS環境設計支援
  - 作業手順書作成

- 所感・メモ
(記入してください)

期間を指定したいときは

特定の週の予定を使いたい場合は指示の中で日付を明示的に渡します。

2026/03/02~2026/3/6 のGoogleカレンダーの予定を gws コマンドで取得して、週報の形式にまとめてください。

週報を楽に運用する上でのコツ

基本的にGoogleカレンダーに記載されていることが全てで、その情報をAIが確認して出力します。そのため、ベースとなるのGoogleカレンダーに何をしたかといった情報が無ければ週報を出力することはできません。作業ベースでこまめにGoogleカレンダーに登録するのがベターですが、AIなどを使って作業していれば、この時間から今までXXXの作業をしてたのでカレンダーに登録しておいてというような指示を出すことでGoogleカレンダーに登録することもできます。

おわりに

gws と Kiro CLI の組み合わせ、思ったよりシンプルに動いてくれました。「カレンダーを見て週報を書く」という地味に時間を取られていた作業が、かなり楽になります。

今回はカレンダーだけ使いましたが、gws はGmail・Drive・Sheets・Docsにも対応しています。「Gmailの送信履歴も読んで週報に含める」「週報をGoogle Docsに書き出す」みたいな拡張も同じ仕組みでできるので、自分のワークフローに合わせていじってみてください。

また、Google カレンダーの情報をAIに読み込ませる設定って結構大変に思いましたよね?実はClaude Webが使えるとコネクタから連携させるだけで一連の作業ができるので、会社でClaudeを契約されている場合はこちらの設定をオススメします。

この記事がどなたかのお役に立てれば幸いです。

◆ 塩野 正人
◆ マネージドサービス部 所属
◆ X(Twitter):@shioccii
◆ 過去記事はこちら

前職ではオンプレミスで仮想化基盤の構築や運用に従事。現在は運用部隊でNew Relicを使ってサービス改善に奮闘中。New Relic User Group運営