Google Chat Bot(セットアップガイド参照)に加え、AI秘書がユーザーの Google Calendar を直接操作できるようにします。
| # | コンポーネント | 状態 | 備考 |
|---|---|---|---|
| 1 | GCP プロジェクト | Google Chat と共用 | 同じプロジェクトを使用 |
| 2 | サービスアカウント | Google Chat と共用 | Calendar スコープを追加 |
| 3 | Google Calendar API | 新規有効化 | GCP コンソールで有効化 |
| 4 | ドメイン全体の委任 | 新規設定 | Workspace 管理者が設定 |
| 5 | gcalcli(CLI ツール) | 新規インストール | VPS にインストール |
@gmail.com アカウントではドメイン全体の委任が使用できません。必ず Google Workspace(組織ドメイン)のアカウントが必要です。
Google Calendar API と入力Google Chat Bot セットアップで作成したサービスアカウントに、ドメイン全体の委任機能を有効化します。
| 項目 | 例 | 用途 |
|---|---|---|
| クライアント ID | 123456789012345678901 | Workspace 管理コンソールで使用 |
| サービスアカウントメール | chatbot-service@project.iam.gserviceaccount.com | 参照用 |
サービスアカウントがユーザーの代わりに Google Calendar を操作するために、ドメイン全体の委任を設定します。これにより、サービスアカウントがユーザーに代わって(impersonate)カレンダーの読み書きが可能になります。
Google Workspace の管理者が、サービスアカウントにカレンダー操作を許可します。
| 項目 | 入力値 |
|---|---|
| クライアント ID | Step 2 でメモしたクライアント ID(数字) |
| OAuth スコープ(カンマ区切り) |
https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/calendar.events
|
| スコープ | 権限 | 用途 |
|---|---|---|
auth/calendar |
カレンダーの読み書き | カレンダー一覧取得、カレンダー作成 |
auth/calendar.events |
予定の読み書き | 予定の追加・編集・削除・一覧表示 |
# Python と pip がインストールされていることを確認
python3 --version
pip3 --version
# gcalcli をインストール
pip3 install gcalcli
Google Chat Bot セットアップで使用した JSON キーファイルを使います(新たに発行する必要はありません)。
# キーの配置先ディレクトリ作成
mkdir -p /home/ubuntu/.openclaw/credentials/
# ローカルからVPSへ転送(ローカル端末で実行)
scp -i ~/.ssh/tobelucky.pem \
~/Downloads/YOUR_SERVICE_ACCOUNT_KEY.json \
root@85.131.252.54:/home/ubuntu/.openclaw/credentials/gchat-service-account.json
# サービスアカウント + ドメイン委任で認証テスト
# --impersonate-user に対象ユーザーのメールアドレスを指定
gcalcli \
--client-secret /home/ubuntu/.openclaw/credentials/gchat-service-account.json \
--impersonate-user user@example.com \
list
カレンダー一覧が表示されれば認証成功です。
user@example.com は実際のユーザーメールアドレスに置き換えてください。このユーザーのカレンダーが操作対象になります。
OpenClaw の AI秘書エージェントが Google Calendar を操作するための設定を行います。
OpenClaw のエージェントが gcalcli コマンドをシェル経由で実行します。
## Google Calendar 操作
以下のコマンドでユーザーの Google Calendar を操作できます。
### 予定の一覧表示
gcalcli --client-secret /home/ubuntu/.openclaw/credentials/gchat-service-account.json \
--impersonate-user TARGET_USER@example.com \
agenda "today" "7 days from now"
### 予定の追加
gcalcli --client-secret /home/ubuntu/.openclaw/credentials/gchat-service-account.json \
--impersonate-user TARGET_USER@example.com \
add \
--title "会議タイトル" \
--where "場所" \
--when "2026-03-15 14:00" \
--duration 60 \
--description "会議の詳細"
### 予定の検索
gcalcli --client-secret /home/ubuntu/.openclaw/credentials/gchat-service-account.json \
--impersonate-user TARGET_USER@example.com \
search "キーワード"
### 予定の削除
gcalcli --client-secret /home/ubuntu/.openclaw/credentials/gchat-service-account.json \
--impersonate-user TARGET_USER@example.com \
delete "予定タイトル"
Google Calendar 用の MCP サーバーを構築し、OpenClaw の MCP クライアントから接続する方法です。より柔軟な操作が可能ですが、追加の開発が必要です。
gcalcli \
--client-secret /home/ubuntu/.openclaw/credentials/gchat-service-account.json \
--impersonate-user user@example.com \
agenda "today" "7 days from now"
gcalcli \
--client-secret /home/ubuntu/.openclaw/credentials/gchat-service-account.json \
--impersonate-user user@example.com \
add \
--title "テスト予定(削除OK)" \
--when "tomorrow 10:00" \
--duration 30 \
--noprompt
「今週の予定を教えて」
「明日の14時に30分のミーティングを追加して」
以下は gcalcli でサービスアカウント認証を使う際のコマンド集です。
SA はサービスアカウント JSON のパス、USER は対象ユーザーのメールです。
# 変数定義(毎回入力しなくて済むように)
SA="/home/ubuntu/.openclaw/credentials/gchat-service-account.json"
USER="user@example.com"
| 操作 | コマンド |
|---|---|
| カレンダー一覧 | gcalcli --client-secret $SA --impersonate-user $USER list |
| 今日の予定 | gcalcli --client-secret $SA --impersonate-user $USER agenda "today" "tomorrow" |
| 今週の予定 | gcalcli --client-secret $SA --impersonate-user $USER agenda "today" "7 days from now" |
| 予定の追加 | gcalcli --client-secret $SA --impersonate-user $USER add --title "件名" --when "2026-03-15 14:00" --duration 60 --noprompt |
| 予定の検索 | gcalcli --client-secret $SA --impersonate-user $USER search "キーワード" |
| 予定の削除 | gcalcli --client-secret $SA --impersonate-user $USER delete "件名" |
| カレンダー作成 | gcalcli --client-secret $SA --impersonate-user $USER calw |
| 原因 | 対処 |
|---|---|
| ドメイン全体の委任が未設定 | Step 4 を再確認。管理コンソールでクライアント ID とスコープが正しく登録されているか確認 |
| スコープが不足 | 管理コンソールで OAuth スコープに calendar と calendar.events の両方が含まれているか確認 |
| impersonate 対象ユーザーが間違っている | --impersonate-user に指定するメールアドレスが Google Workspace ドメインのユーザーであることを確認 |
Asia/Tokyo)pip3 install --upgrade gcalcli# パスを確認
which gcalcli
# パスが通っていない場合
export PATH=$PATH:/home/ubuntu/.local/bin
# .bashrc に追記して永続化
echo 'export PATH=$PATH:/home/ubuntu/.local/bin' >> ~/.bashrc