Google Workspace をコマンドひとつで操作できる「gws」を使ってみた

記事
IT・テクノロジー

gws って何?


Google が公開している Google Workspace CLI(コマンド名: gws)というツールをご存知ですか?

Gmail、スプレッドシート、カレンダー、ドライブ…… Google Workspace のほぼすべてのサービスを、コマンドひとつで操作できるツールです。

たとえば、受信メールの一覧を取得するのはこれだけ:

gws gmail +triage

スプレッドシートに行を追加するのも一行:

gws sheets +append --spreadsheet ID --values '2026-04-01,請求書,10000円,A社'

カレンダーに予定を入れるのも:

gws calendar +insert --summary '月次ミーティング' --start '2026-04-10T10:00:00+09:00' --end '2026-04-10T11:00:00+09:00'

GitHub で公開されており、すでに2万以上のスターがついています。
※ Google の公式サポート製品ではなく、Google のエンジニアが開発・公開しているオープンソースプロジェクトです。操作対象の Google Workspace API 自体は Google の公式サービスです。

GAS(Google Apps Script)と何が違う?


Google Workspace の自動化といえば GAS が定番ですが、gws はアプローチが根本的に違います。

【GASの場合】
・動く場所:Googleのサーバー
・実行時間:6分で強制停止
・書く言語:JavaScriptベース(Google独自のAPI付き)
・外部連携:UrlFetchAppのみ、制限多い
・スケジュール:トリガー(最短1時間)
・デバッグ:スクリプトエディタ

【gwsの場合】
・動く場所:自分のPC・サーバー
・実行時間:制限なし
・書く言語:コマンド(シェルスクリプト、何でも)
・外部連携:自由(他のCLIツールと組み合わせ可能)
・スケジュール:cronで1分単位
・デバッグ:ターミナルで即実行、結果はJSON

一言でいうと:GAS は「Google の中で完結する自動化」、gws は「Google を外から操作する自動化」です。

gws の出力はすべて JSON なので、他のツールやプログラムとの連携が非常に簡単です。

実際に使ってみた

Gmail:受信メールの確認と送信


未読メールの一覧を取得:

gws gmail +triage --format json

送信元、件名、日付がJSONで返ってきます。特定の送信元だけに絞り込むことも:

gws gmail +triage --query "from:メールアドレス"

メールの本文も取得できます。HTMLメールでもテキスト版を自動で返してくれるので、内容の抽出が楽です。

もちろん送信も:

gws gmail +send --to メールアドレス --subject '月次レポート' --body '添付のとおりです。'


スプレッドシート:読み書きと行追加


セルの読み取り:

gws sheets +read --spreadsheet ID --range 'A1:D10'

行の追加(既存のデータの末尾に追記):

gws sheets +append --spreadsheet ID --values '2026-04-01,売上,150000,A社'

新しいスプレッドシートの作成やセルの上書きもコマンド一発です。

カレンダー:予定の取得・作成・削除


今日の予定を確認:

gws calendar +agenda

予定の作成と削除もコマンドで完結。プログラムから「メールの日時を読み取って → カレンダーに自動登録」といったことが簡単にできます。

AI Agent との連携を前提に設計されている


gws の大きな特徴のひとつが、最初からAI Agentとの連携を意識して作られているということ。

・出力がすべて構造化された JSON(AIが読み取りやすい)
・100以上の「Agent Skills」が同梱(Gmail操作、カレンダー管理、Sheets読み書きなど)
・AIに「このメールを要約してスプレッドシートに記録して」と指示するだけで実行可能

GAS にはこの発想がありません。gws は「人間が使うCLI」であると同時に、AIが業務を自動化するためのツールでもあります。

今後、AIによる業務自動化が当たり前になっていく中で、gws はその基盤として非常に有力です。

外部サービスとの連携が自由


gws の真価は他のツールと組み合わせたときに発揮されます

GAS でも UrlFetchApp を使えば外部サービスとの連携自体は可能です。
ただし、APIキーやトークンなどの機密情報の管理がスクリプト内やPropertiesServiceに頼ることになり、セキュリティ面で不安が残ります。
gwsなら:

・Gmailに特定のメールが届いたら → Slackへ通知
・スプレッドシートの集計結果を → LINEへ送信
・カレンダーの予定を →  Discordにリマインド
・AIに判断させて → 自動で返信ドラフト作成

こういった「Google × 外部サービス × AI」の連携が自由に組めます。
サーバー上で定期実行すれば、24時間365日、止まらない自動化の完成です。

実は私もすでに自分のシステムに組み込んでいます


私は現在、自作の業務管理システム(AIエージェント搭載のパーソナルアシスタント)を開発・運用しています(OpenClawは怖くて使えません)。gws はその中核として日常的に使っています

毎朝のカレンダー予定を自動取得 → AIが今日の行動計画を生成
支払い予定をカレンダーから検知 → 7日前・3日前にリマインド自動生成
プロジェクトの締切 → カレンダーに自動登録
タスク管理 → Google Tasks と双方向同期(スマホからも操作可能)

gws のJSON出力は他のプログラムとの接続が本当に楽で、「メールを読む → 判断する → スプレッドシートに書く → 通知する」という一連の流れが自然に組めます。

自分で毎日使っているからこそ、その実力は保証します。

次回予告


今回は Gmail、スプレッドシート、カレンダーを個別に使ってみました。

次回は これらを連携させて実用的な自動化を組んでみます

・請求メール → スプレッドシートに自動転記
・スプレッドシートのデータ → メールで自動レポート送信
・メールの日時 → カレンダーに予定を自動登録

GAS の痒いところに手が届かないもどかしさに悩んでいる方、外部サービスとの連携に苦労している方は、ぜひ参考にしてみてください。


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら