GoogleカレンダーAPI連携の設定手順と、抜けやすい最後の1つ

GoogleカレンダーAPI連携の設定手順と、抜けやすい最後の1つ AI

AIに、こんなふうに頼んだことはないでしょうか。

「来週の火曜10時に打ち合わせ、カレンダーに入れておいて」

私も先日、まったく同じことを頼みました。

返ってきたのは、予定そのものではなく「カレンダーに追加するリンク」でした。

結局は自分でクリックして、自分で登録することになります。少しだけ楽になりましたが、自動化とは言えません。

AIに自分のGoogleカレンダーを直接さわらせるには、先に「API連携」という設定をしておく必要があります。

そう聞いて設定画面を開いたのですが、正直なところ、最初はまったく意味が分かりませんでした。

「プロジェクト」とは何のプロジェクトなのか。「サービスアカウント」は自分のGoogleアカウントと何が違うのか。ダウンロードされた「鍵」というファイルは、どこに置けばいいのか。

この記事は、そのときの私と同じ地点にいる方に向けて書いています。

結論から言うと、やることは4つだけです。かかる時間は20分ほどで、費用はかかりません。

ただし、4つ目を抜かすと、ほかを完璧にやっても1件も登録できません。そして、この4つ目は設定画面の中に出てきません。

この記事では、次のことがわかります。

  • そもそもAPI連携で何が起きているのか(専門用語なしの説明)
  • 設定すると、実際に何ができるようになるのか
  • 設定の全手順(実際に操作した画面を1枚ずつ載せています)
  • 手順書から抜け落ちがちな、最後の「カレンダーの共有」のやり方
  • Googleの「タスク」にも登録したい場合の手順(記事の後半に追記しました)
記事全体の4ステップ(全体像)のまとめ図

専門用語は、そのつど言い換えます。プログラミングの知識は必要ありません。

  1. 先に、この記事の要点
  2. そもそも「API連携」で、何が起きているのか
    1. 1つ目:プロジェクト(=入れ物)
    2. 2つ目:サービスアカウント(=ロボットの社員)
    3. 3つ目:鍵(=JSONファイル)
    4. そして、忘れられがちな4つ目の作業
  3. 設定すると、何ができるようになるのか
  4. 手順1:プロジェクト(入れ物)を作る
  5. 手順2:Google Calendar API(窓口)を有効にする
  6. 手順3:サービスアカウント(ロボット社員)と鍵を作る
    1. 名前を付けて作成する
    2. 鍵(JSONファイル)を作る
  7. 手順4:カレンダーを共有する(ここを忘れると動きません)
    1. 共有の手順
    2. あわせて「カレンダーID」も控えておく
  8. なぜ「OAuth」ではなく「サービスアカウント」を選んだのか
    1. OAuth クライアント ID(人が承認する方式)
    2. サービス アカウント(無人で動く方式)
  9. 注意点。設定する前に知っておきたいこと
    1. 鍵のファイルは、パスワードと同じ扱いにする
    2. Googleの「タスク」には登録できない
    3. ほかの参加者には、招待メールが飛ばない
    4. 予定の「作成者」がロボットの名前になる
    5. 会社のアカウントでは、共有が制限されていることがある
    6. 料金について
  10. うまく動かないときに、まず確認するところ
  11. (追記)Googleの「タスク」にも登録したい場合の手順
    1. タスク側の手順1:Google Tasks API を有効にする
    2. タスク側の手順2:許可を出す画面を用意する
    3. タスク側の手順3:自分をテストユーザーに追加する(忘れやすい)
    4. タスク側の手順4:OAuth クライアント ID を作る
    5. タスク側の手順5:一度だけ「許可」を押す
      1. 用意するもの:Python(パイソン)
      2. 手順4でダウンロードしたJSONを置く
      3. 許可を受け取るプログラムを作る
      4. 動かす
      5. ちゃんと動いたか、タスクを1件入れて確かめる
      6. 自分でやるのが難しいと感じたら
    6. タスクを使うときに、知っておきたいこと
    7. 結局、予定とタスクはどう使い分けるか
  12. まとめ
  13. ところで、その予定は誰が入力していますか

先に、この記事の要点

  • やることは4つです。「入れ物を作る」「窓口を開ける」「担当者と鍵を作る」「カレンダーに招く」。この順番で進めます。
  • いちばん大事なのは4つ目です。Google側の設定画面には出てこないので、手順を追っているだけだと抜け落ちます。抜けると、鍵まで正しく作っていても何も動きません。
  • 費用はかかりません。カレンダーの読み書きは、通常の使い方であれば無料の範囲に収まります。今回はクレジットカードの登録も求められませんでした。

順番にお話しします。まずは、そもそも何をしているのかから始めます。

そもそも「API連携」で、何が起きているのか

ここが分からないまま画面を進めると、あとで必ず迷子になります。

難しい言葉を使わずに言うと、やっているのは「ロボットの社員を1人雇って、その社員に自分のカレンダーを見せる」という手続きです。

登場人物は3つだけです。

1つ目:プロジェクト(=入れ物)

最初に作る「プロジェクト」は、今回の作業をひとまとめにしておくための箱だと思ってください。

会社でいえば「部署を1つ作る」ようなものです。

この中に、これから作る担当者や設定が入っていきます。何かを間違えたときは、この箱ごと消せば元に戻せる、という安心感もあります。

2つ目:サービスアカウント(=ロボットの社員)

次に作る「サービスアカウント」が、この記事でいちばん分かりにくいところです。

これは、人間ではなくプログラム専用の、新しいGoogleアカウントだと考えてください。

メールアドレスの形をしていますが、メールは受け取れません。ログイン画面から入ることもできません。プログラムだけが使える、専用の社員証のようなものです。

大事なのは、このロボット社員は、あなたとは完全に別人だということです。

入社したばかりで、自分用の空っぽのカレンダーしか持っていません。あなたの予定は1件も見えていません。

3つ目:鍵(=JSONファイル)

3つ目が「鍵」です。設定の最後に、パソコンに1つのファイルがダウンロードされます。

このファイルは、ロボット社員のパスワードそのものです。

AIツールや自動化ツールにこのファイルを渡すと、ツールは「私はこのロボット社員です」と名乗ってGoogleにアクセスできるようになります。

逆に言えば、これが他人の手に渡れば、その人も同じ社員になりすませます。扱いには注意が必要で、この点は記事の後半でもう一度触れます。

そして、忘れられがちな4つ目の作業

ここまでで「ロボット社員を雇って、社員証を発行した」状態になります。

ただ、雇っただけでは、その社員はあなたの予定表を見られません。

そこで最後に、自分のGoogleカレンダーを開いて、そのロボット社員のメールアドレスに「見ていいですよ」「書き込んでいいですよ」と共有をかけます。

この作業だけは、設定画面とはまったく別の場所で行います。だから抜けやすいのです。

設定すると、何ができるようになるのか

ここまでの手間をかける価値があるのか、という話を先にしておきます。

できるようになるのは、次のようなことです。

  • AIに「この日程で予定を入れて」と伝えるだけで、実際にカレンダーへ登録される
  • メールやチャットの内容から、AIが日時を読み取ってそのまま予定にしてくれる
  • 「3か月後に契約更新の確認」のような先の予定を、忘れないうちに自動で置いておける
  • 予定の一覧を取り出して、報告書や日報の材料にできる

いちばん大きいのは、自分がパソコンの前にいなくても動くことです。

よくある「Googleでログインして許可する」方式は、人が画面で承認ボタンを押す前提の仕組みです。

今回のやり方は、その承認が要りません。夜中でも、外出中でも、決めた時間に動きます。

ここが、自動化を考えるときの分かれ目になります。

手順1:プロジェクト(入れ物)を作る

ここから実際の画面です。パソコンのブラウザで進めてください。

まず Google Cloud コンソール を開きます。カレンダーで使っているGoogleアカウントでログインしてください。

「ようこそ」の画面が出たら、画面上部の「プロジェクトの選択」、または中央の「プロジェクトを作成または選択」をクリックします。

手順1のキャプチャ(実画面・撮影済み。body-2.png を差し込み)

選択画面が開いたら、右上の「新しいプロジェクト」をクリックします。

手順1のキャプチャ(実画面・撮影済み。body-3.png を差し込み)

プロジェクト名は自由です。あとから自分で見分けられればよいので、「calendar-app」のような分かりやすい名前で問題ありません。

作成には少し時間がかかります。画面上部の表示が、作ったプロジェクト名に切り替われば完了です。

手順2:Google Calendar API(窓口)を有効にする

入れ物ができたので、次はカレンダーの窓口を開けます。

初期状態では、この窓口は閉じています。だから「有効にする」という作業が必要になります。

トップ画面の「クイック アクセス」から「API とサービス」をクリックします。

手順2のキャプチャ(実画面・撮影済み。body-4.png を差し込み)

開いた画面の上部にある「+ API とサービスを有効にする」をクリックします。

手順2のキャプチャ(実画面・撮影済み。body-5.png を差し込み)

ライブラリの一覧が出ます。数が多いので、上部の検索欄に「calendar」と入力するのが早いです。

「Google Workspace」の欄にある「Google Calendar API」を選びます。

似た名前が並んでいますが、選ぶのはカレンダーのアイコン(数字の31)が付いたものです。

手順2のキャプチャ(実画面・撮影済み。body-6.png を差し込み)

詳細画面が開いたら、青い「有効にする」ボタンを押します。

これで窓口が開きました。

手順2のキャプチャ(実画面・撮影済み。body-7.png を差し込み)

手順3:サービスアカウント(ロボット社員)と鍵を作る

有効にすると、そのまま管理画面に移ります。

画面中ほどの「認証情報」タブをクリックし、右側の「+ 認証情報を作成」を押します。

すると3つの選択肢が出てきます。ここが最初の分かれ道です。

選ぶのは「サービス アカウント」です。いちばん上の「OAuth クライアント ID」ではありません。

手順3のキャプチャ(実画面・撮影済み。body-8.png を差し込み)

2つの違いは、記事の後半で説明します。ここでは「無人で動かすなら、サービスアカウント」とだけ覚えてください。

名前を付けて作成する

作成画面では、上から順に入力していきます。

「サービス アカウント名」は、自分が分かる名前で構いません。私は「google-calendar-app」としました。

名前を入れると、その下の「サービス アカウント ID」と、長いメールアドレスが自動で作られます。

このメールアドレスが、これから雇うロボット社員の住所です。最後の共有設定で使うので、あとで戻ってこられるようにしておいてください。

「説明」は空欄でも進めますが、後日見返したときのために「Googleカレンダー操作用」などと書いておくと迷いません。

ここで、手が止まりやすい箇所があります。

2番の「権限(省略可)」と、3番の「アクセス権を持つプリンシパル(省略可)」は、何も設定せずに飛ばして構いません。

どちらも「省略可」と書かれているとおりです。

カレンダーを操作する権限は、この画面ではなくカレンダー側の共有設定で決まります。ここが直感に反するところで、私も一度手が止まりました。

そのまま「作成して閉じる」を押します。

手順3のキャプチャ(実画面・撮影済み。body-9.png を差し込み)

一覧に戻ると、作ったサービスアカウントが追加されています。

末尾が「.iam.gserviceaccount.com」になっている長いメールアドレスが、先ほどのロボット社員の住所です。

手順3のキャプチャ(実画面・撮影済み。body-10.png を差し込み)

鍵(JSONファイル)を作る

最後に、この社員の社員証を発行します。

一覧のメールアドレスをクリックして詳細画面に入り、上部の「鍵」タブを開きます。

「キーを追加」→「新しい鍵を作成」の順に進みます。

手順3のキャプチャ(実画面・撮影済み。body-11.png を差し込み)

この画面には、Googleからの警告がいくつか出ています。

「サービス アカウント キーは、不正使用されるとセキュリティ上のリスクになる可能性があります」

そして「Google は公開リポジトリで検出されたサービス アカウント キーを自動的に無効にします」とも書かれています。

この鍵をうっかりインターネット上に置くと、Googleが自動で使えなくします。それくらい強い権限を持つファイルだ、ということです。

形式を選ぶ画面が出たら、「JSON(推奨)」のまま「作成」を押します。

手順3のキャプチャ(実画面・撮影済み。body-12.png を差し込み)

押した瞬間に、ファイルが自動でダウンロードされます。

「秘密鍵がパソコンに保存されました」と出れば完了です。

手順3のキャプチャ(実画面・撮影済み。body-13.png を差し込み)

この鍵は、この1回しかダウンロードできません。紛失した場合は、鍵を作り直すことになります。

ダウンロードフォルダに置いたままにせず、すぐに保管場所へ移してください。この点は後ほどもう一度触れます。

手順4:カレンダーを共有する(ここを忘れると動きません)

ここまでで、Google Cloud側の作業は終わりです。

解説記事も、だいたいこのあたりで終わっているものが多いように思います。

ですが、この状態ではまだ1件も予定を作れません。

理由はもう説明したとおりです。ロボット社員は雇いましたが、あなたの予定表を見る許可をまだ持っていないからです。

最後の作業は、Google CloudではなくいつものGoogleカレンダーの画面で行います。

手順4(カレンダー共有)の概念図

共有の手順

まず Googleカレンダー をパソコンのブラウザで開きます。

左側の「マイカレンダー」の一覧から、連携したいカレンダーを探します。ふだん使っているものであれば、自分の名前が付いたカレンダーです。

その名前にマウスを乗せると、右側に「︙」(点が3つ縦に並んだアイコン)が出ます。

それをクリックして、「設定と共有」を選びます。

手順4のキャプチャ(実画面・撮影済み。body-15.png を差し込み)

設定画面が開きます。左のメニューにある「共有する相手」、または右側を下にスクロールしたところにある同じ名前の項目を探してください。

すでに家族や同僚と共有している場合は、ここに相手の名前が並んでいます。そこへロボット社員を1人追加する、というイメージです。

項目の下にある「+ ユーザーやグループを追加」をクリックします。

手順4のキャプチャ(実画面・撮影済み。body-16.png を差し込み)

「特定のユーザーと共有」という小さな画面が出ます。

入力欄は「メールアドレスまたは名前を追加」の1つだけです。

ここに、手順3で控えたサービスアカウントのメールアドレスを貼り付けます。

末尾が「.iam.gserviceaccount.com」になっている、あの長いアドレスです。

手順4のキャプチャ(実画面・撮影済み。body-17.png を差し込み)

そして、その下の「権限」が今回いちばん大事な設定です。

初期値は「予定の表示(すべての予定の詳細)」になっています。これは読むだけの権限です。

プルダウンを開くと、5つの選択肢が出てきます。

  • 予定の表示(時間枠のみ、詳細は非表示)
  • 予定の表示(すべての予定の詳細)
  • 変更(限定公開の予定を予定の有無として表示)ができ…
  • すべての予定の詳細の変更や表示ができます
  • 予定の変更および共有の管理

AIに予定を「登録」させたいなら、上から4つ目の「すべての予定の詳細の変更や表示ができます」を選んでください。

手順4のキャプチャ(実画面・撮影済み。body-18.png を差し込み)

初期値の「予定の表示」のまま送信してしまうと、AIは予定を読めても登録できません。

あとで「設定したのに登録されない」と悩む原因の多くが、ここです。

いちばん下の「予定の変更および共有の管理」でも動きますが、これは共有設定そのものを変えられる強い権限です。予定の登録が目的なら、4つ目で十分です。

選んだら「送信」を押します。

相手はロボットなので、招待メールは届きませんし、相手が承認する必要もありません。送信した時点で共有は有効になります。

「共有する相手」の一覧に、そのメールアドレスが並んでいれば成功です。

あわせて「カレンダーID」も控えておく

同じ設定画面の左メニューに「カレンダーの統合」という項目があります。

その中に「カレンダー ID」があります。

ふだん使っているカレンダーであれば、自分のメールアドレスと同じ文字列になっているはずです。

連携するツールには、「鍵のJSONファイル」と「カレンダーID」の2つを渡すことになります。ここまで用意できれば、設定は完了です。

なぜ「OAuth」ではなく「サービスアカウント」を選んだのか

手順3で、2つの選択肢が出てきた話に戻ります。

どちらもGoogleのデータにアクセスするための仕組みですが、想定している使い方が違います。

OAuth クライアント ID(人が承認する方式)

アプリを使うときに「このアプリがあなたのカレンダーにアクセスします。許可しますか?」という画面が出た経験はないでしょうか。

あれがこの方式です。画面の説明にも「ユーザーの同意をリクエストします」と書かれています。

人が画面の前にいて、ボタンを押すことが前提です。

スマホアプリやWebサービスのように、利用者ごとにカレンダーをつなぐ場合はこちらが向いています。

サービス アカウント(無人で動く方式)

もう一方の説明文には「ロボット アカウントによるサーバー間でのアプリレベルの認証を有効にします」とあります。

ロボットという言葉が、そのまま使われています。

人の承認を挟まずに動かしたい場合は、こちらを選びます。

今回の目的は「自分がいなくてもAIに予定を入れてもらう」ことなので、サービスアカウントが合っていました。

注意点。設定する前に知っておきたいこと

実際に触ってみて、先に知っておきたかったと感じた点をまとめます。

鍵のファイルは、パスワードと同じ扱いにする

これがいちばん大事です。

ダウンロードした鍵のJSONファイルは、ダウンロードフォルダに置きっぱなしにしないでください。

メールやチャットで送るのも避けたほうがよい種類のファイルです。

置き場所を決めて移動し、そのパソコンを使う人以外が開けない場所に保管します。

万が一、外部に出てしまった場合は、Google Cloudの「鍵」タブから該当の鍵を削除すれば、その鍵は使えなくなります。落ち着いて消してください。

Googleの「タスク」には登録できない

ここは実際に試して分かったことなので、先にお伝えしておきます。

この方法で登録できるのは「予定」だけです。Googleの「タスク」には登録できません。

Googleカレンダーの画面には、予定と並んでタスクも表示されます。同じものに見えますが、中身はまったく別のサービスです。

そして、決定的な違いがここにあります。

  • カレンダーには「共有する相手」がある。だから手順4で、ロボット社員に自分の予定表を見せられました。
  • タスクには、その共有の仕組みがありません。タスクは一人ひとりに固く紐づいていて、外から覗く窓口がないのです。

そのため、サービスアカウントから見えるのは「ロボット社員自身の、空っぽのタスクリスト」だけになります。あなたのタスクは1件も見えません。

どうしてもタスクに登録したい場合は、手順3で選ばなかったもう一方、「OAuth クライアント ID」の方式に切り替える必要があります。

こちらは「このアプリがあなたのタスクにアクセスします。許可しますか?」という画面で、自分で一度だけ許可を押す方式です。一度許可してしまえば、その後は無人で動かせます。

予定の登録だけで足りるなら、この記事の方法のほうが手軽です。

タスクにも登録したい方は、この記事の後半に、実際に設定した手順を画面つきで追記しました。そちらをご覧ください。

ほかの参加者には、招待メールが飛ばない

これは意外と困る点です。

サービスアカウントが作った予定に参加者を追加しても、その参加者に招待メールは届きません。

自分のカレンダーに予定を置くだけなら問題ありませんが、「AIに会議の招集までやってほしい」という使い方をしたい場合は、Google Workspaceでの追加設定が必要になります。

予定の「作成者」がロボットの名前になる

実際に登録して確認したところ、主催者は自分のままでした。

変わるのは「作成者」のほうで、ここにサービスアカウントのアドレスが入ります。

見え方が少し変わるだけで、予定は自分のカレンダーにきちんと入りますし、通知も普段どおり届きます。

会社のアカウントでは、共有が制限されていることがある

Google Workspace(会社で契約しているGoogleアカウント)を使っている場合、管理者の設定で外部との共有が禁止されていることがあります。

その場合、手順4でメールアドレスを追加できません。管理者に相談するか、個人アカウントで試すことになります。

料金について

Google Cloudというと課金が心配になりますが、カレンダーの読み書きは、個人や小さな会社の使い方であれば無料の範囲に収まります。

今回の手順でも、クレジットカードの登録は求められませんでした。

うまく動かないときに、まず確認するところ

設定したのに動かない場合、原因はだいたい決まっています。上から順に見てください。

  • カレンダー側の共有をしていない。いちばん多いのがこれです。手順4に戻ってください。
  • 共有の権限が「表示」のままになっている。予定を登録するには「変更」が必要です。
  • Google Calendar APIを有効にしていない。プロジェクトを複数持っていると、別のプロジェクトで有効にしてしまうことがあります。
  • カレンダーIDが違う。複数のカレンダーを使っている場合、共有したカレンダーとIDがずれていないか確認します。
  • 鍵のファイルが、共有した相手とは別のサービスアカウントのものになっている。鍵の中に書かれているアドレスと、共有した相手が一致しているか見てください。

(追記)Googleの「タスク」にも登録したい場合の手順

この記事を公開したあとで、「予定だけでなくタスクにも入れたい」と思って、実際に設定してみました。

結論から言うと、できます。所要時間は20分ほどで、やはり費用はかかりません。

ここまでの設定が無駄になることもありません。カレンダー用の設定はそのまま残し、タスク用の入口を1つ足す形になります。

先に、なぜ別の設定が必要になるのかをおさらいします。

カレンダーには「共有する相手」がありました。だから手順4で、ロボット社員に自分の予定表を見せられたわけです。

タスクには、その共有がありません。そこで、手順3で選ばなかったもう一方の「OAuth クライアント ID」を使います。

こちらは自分で一度だけ「許可」ボタンを押す方式です。押すのは最初の1回だけで、その後は無人で動きます。

タスク側の手順1:Google Tasks API を有効にする

カレンダーのときと同じ要領です。プロジェクトも同じものを使います。

左のメニューから「API とサービス」→「ライブラリ」を開きます。

一覧の中ほどに「Google Workspace」という区切りがあるので、その右端の「すべて表示」をクリックします。

APIライブラリ画面

Google Workspace のAPIが全部並ぶので、その中から「Google Tasks API」を選びます。

青いチェックマークのアイコンが目印です。

APIライブラリの一覧

詳細画面が開いたら、青い「有効にする」ボタンを押します。

Google Tasks API の製品詳細画面

なお、探すのが面倒な方は、次のページを直接開けばここまで飛ばせます。

https://console.cloud.google.com/apis/library/tasks.googleapis.com

ただし、開いたときに画面上部のプロジェクト名が正しいかだけは確認してください。プロジェクトを複数持っていると、別のプロジェクトで有効にしてしまうことがあります。

タスク側の手順2:許可を出す画面を用意する

ここからが、カレンダーのときには通らなかった道です。

「誰がこのアプリを使うのか」をGoogleに登録しておく必要があります。初回だけの作業です。

左のメニューから「OAuth 同意画面」を開きます。

APIとサービスの画面

すると「Google Auth Platform」という画面に移り、「まだ構成されていません」と表示されます。

ここで「開始」を押します。

「Google Auth Platform はまだ構成されていません」の画面

ここから4つの入力が順番に出てきます。ひとつずつ見ていきます。

①アプリ情報では、アプリ名とユーザーサポートメールを入れます。

アプリ名は自分が分かる名前で構いません。私は「calendar-tasks-app」としました。

この名前は、あとで出てくる許可の画面にそのまま表示されます。

「プロジェクト構成」の①アプリ情報

②対象では、「内部」と「外部」のどちらかを選びます。

個人のGoogleアカウントを使っている場合は「外部」しか選べません。「内部」は会社で契約しているアカウント専用です。

「外部」と聞くと不安になりますが、次の手順で登録した人しか使えないので大丈夫です。

「プロジェクト構成」の②対象

③連絡先情報には、自分のメールアドレスを入れます。

プロジェクトに変更があったときにGoogleから連絡が来るアドレスです。

「プロジェクト構成」の③連絡先情報

④終了で、ポリシーへの同意にチェックを入れて「作成」を押します。

「プロジェクト構成」の④終了

タスク側の手順3:自分をテストユーザーに追加する(忘れやすい)

ここが2つ目の落とし穴です。

この作業を飛ばすと、最後の許可の画面で弾かれます。設定はすべて正しいのに進めない、という状態になります。

左のメニューから「対象」を開きます。

下のほうに「テストユーザー」という欄があるので、「+ Add users」をクリックします。

Google Auth Platform の「対象」画面

入力欄に自分のメールアドレスを入れて「保存」を押します。

カレンダーの共有で使ったサービスアカウントのアドレスではありません。ふだん自分がログインしているアドレスです。

「ユーザーを追加」のパネル

なお、画面には「公開ステータスがテスト中の間は…」という注意書きが出ますが、テスト中のままで問題ありません。

自分だけが使うので、Googleの審査を受ける必要はありません。

タスク側の手順4:OAuth クライアント ID を作る

次に、パソコンから使うための「鍵」にあたるものを作ります。

左のメニューの「概要」に戻ると、「OAuth クライアントを作成」というボタンが出ています。

Google Auth Platform の「概要」画面

作成画面では、2つだけ入力します。

アプリケーションの種類は「デスクトップ アプリ」を選んでください。ここを間違えると、あとで許可の受け取りに失敗します。

名前は自分が分かるもので構いません。

「OAuth クライアント ID の作成」画面

作成すると、クライアントIDとシークレットが表示されます。

ここで「JSON をダウンロード」を押します。

「OAuth クライアントを作成しました」のダイアログ

この画面にも警告が出ています。

「このダイアログを閉じると、クライアント シークレットを表示およびダウンロードできなくなります」

閉じる前に必ずダウンロードしてください。忘れると作り直しになります。

このファイルも、カレンダーの鍵と同じくパスワード相当の扱いにしてください。ダウンロードフォルダに置いたままにしないことをおすすめします。

タスク側の手順5:一度だけ「許可」を押す

ここまでで準備は終わりです。最後に、自分で許可を出します。

ただ、正直に書いておきます。ここから先は、パソコンでプログラムを1つ動かす必要があります。

「許可」を出す相手が必要だからです。Googleの画面をいくら開いても、この許可は出せません。

とはいえ、書くのは20行ほどで、コピーして貼るだけです。順番に見ていきます。

また、ご自身で動かすのが難しければ、この作業ごとAIに任せることもできます。その方法は、この節の最後に書きました。

用意するもの:Python(パイソン)

Pythonは、プログラムを動かすための道具です。Macには最初から入っています。

確認するには、Macなら「ターミナル」、Windowsなら「コマンドプロンプト」を開いて、次を貼り付けて Enter を押します。

python3 --version

「Python 3.11.6」のように数字が返ってくれば入っています。

Windowsで「見つかりません」と出た場合は、Python公式サイトからインストールしてください。インストール中に「Add Python to PATH」というチェック欄が出たら、必ずチェックを入れます。

続いて、Googleとやりとりするための部品を追加します。次の1行を貼り付けて Enter です。

pip3 install google-auth-oauthlib google-api-python-client

文字がたくさん流れますが、最後に「Successfully installed」と出れば成功です。

手順4でダウンロードしたJSONを置く

ダウンロードフォルダに入ったままだと、あとで消してしまいがちです。専用の場所を作って移しておきます。

ここでは例として、書類フォルダの中に gtasks というフォルダを作り、ファイル名を client_secret.json に変えて置くことにします。

置き場所が決まったら、そのファイルの場所(パス)を控えてください。次で使います。

Macなら、Finderでファイルを右クリックし、option キーを押しながら「”client_secret.json”のパス名をコピー」を選ぶと取得できます。

Windowsなら、ファイルを Shift キーを押しながら右クリックして「パスのコピー」です。

許可を受け取るプログラムを作る

テキストエディタ(Macの「テキストエディット」、Windowsの「メモ帳」)を開いて、次をそのまま貼り付けます。

from google_auth_oauthlib.flow import InstalledAppFlow

# ↓ 手順4でダウンロードしたJSONの場所に書き換えてください
CLIENT_SECRET_FILE = "/Users/自分の名前/Documents/gtasks/client_secret.json"

# ↓ 許可の情報を保存する場所(ファイルは自動で作られます)
TOKEN_FILE = "/Users/自分の名前/Documents/gtasks/token.json"

SCOPES = ["https://www.googleapis.com/auth/tasks"]

flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRET_FILE, SCOPES)
creds = flow.run_local_server(port=0, prompt="consent")

with open(TOKEN_FILE, "w") as f:
    f.write(creds.to_json())

print("完了しました。保存先:", TOKEN_FILE)

書き換えるのは上の2行だけです。「/Users/自分の名前/…」の部分を、さきほど控えたパスに置き換えてください。

できたら setup.py という名前で、同じ gtasks フォルダに保存します。

テキストエディットを使う場合は、保存する前にメニューの「フォーマット」→「標準テキストにする」を選んでください。そのままだとリッチテキストで保存され、動きません。

動かす

ターミナル(コマンドプロンプト)で、次を貼り付けて Enter を押します。

python3 /Users/自分の名前/Documents/gtasks/setup.py

ここも、自分の置き場所に合わせて書き換えてください。

うまくいくと、ブラウザが自動で開いて、アカウントの選択画面が出ます。

左側に、手順2で決めたアプリ名が表示されているはずです。

「アカウントを選択してください」の画面

アカウントを選ぶと、次のような画面が出ます。

「このアプリは Google で確認されていません」

初めて見るとドキッとしますが、心配はいりません。

これは「Googleの審査を受けていないアプリですよ」という意味です。審査を受けていないのは、自分で作って自分だけで使っているからです。

続行」を押して進みます。

「このアプリは Google で確認されていません」の画面

次に、何を許可するのかが表示されます。

すべてのタスクの作成、編集、整理、削除」とだけ書かれているはずです。

ここは必ず読んでください。タスク以外のもの、たとえばメールや連絡先が並んでいたら、いったん中止して設定を見直してください。

内容に問題がなければ「続行」を押します。

アクセス権の確認画面

最後に、そっけない英語のメッセージが表示されれば完了です。

「The authentication flow has completed. You may close this window.」

(認証が完了しました。このウィンドウは閉じて構いません、という意味です)

ブラウザに表示された「The authentication flow has completed. You may close this window.」のメッセージのみ

この画面が出たら、ブラウザを閉じて大丈夫です。

許可の情報はパソコンに保存されるので、次からはこの画面は出ません。

ちゃんと動いたか、タスクを1件入れて確かめる

許可は通りましたが、これだけではまだ何も起きていません。

本当に登録できるのか、1件だけ入れて確かめます。

さきほどと同じ要領で、新しいファイルに次を貼り付けてください。

from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build

# ↓ さきほど保存されたトークンの場所
TOKEN_FILE = "/Users/自分の名前/Documents/gtasks/token.json"

creds = Credentials.from_authorized_user_file(
    TOKEN_FILE, ["https://www.googleapis.com/auth/tasks"])
service = build("tasks", "v1", credentials=creds)

# ふだん使っているタスクリストに1件追加する
tasklist_id = service.tasklists().list(maxResults=1).execute()["items"][0]["id"]
service.tasks().insert(
    tasklist=tasklist_id,
    body={"title": "テストで追加したタスク", "due": "2026-08-10T00:00:00.000Z"},
).execute()

print("追加しました。Googleカレンダーの「ToDo リスト」を見てください。")

add.py などの名前で保存し、同じように動かします。

python3 /Users/自分の名前/Documents/gtasks/add.py

Googleカレンダーを開いて、左の「ToDo リスト」に「テストで追加したタスク」が入っていれば成功です。スマホのGoogle ToDo リストアプリからも同じものが見えます。

確認できたら、そのタスクは手で消して構いません。

あとは "title""due" の中身を書き換えれば、好きなタスクを登録できます。日付は「年-月-日」の順で、うしろの T00:00:00.000Z はそのままにしておいてください。

自分でやるのが難しいと感じたら

ここまで読んで「さすがに手が止まる」と思われた方も多いと思います。私も最初はそうでした。

この作業は、AIに任せることもできます。

パソコンのファイルを直接さわれるタイプのAI(Claude Code など)を使っている場合は、こう頼めば進めてくれます。

GoogleタスクにAIから登録できるようにしたいです。OAuthクライアントのJSONを(置いた場所)に置いてあります。初回の認証を行うプログラムを作って動かしてください。ブラウザが開いたら私が許可を押します。

実際、私もこの部分はAIに書いてもらいました。自分がやったのは、開いたブラウザで「続行」を2回押しただけです。

「プログラムを書く」と身構えるより、「やりたいことを日本語で伝えて、出てきたものを動かす」ほうが、いまは現実的だと思います。

タスクを使うときに、知っておきたいこと

実際に動かしてみて分かった注意点を3つ書いておきます。

タスクの期限は「日付」だけで、時刻を持てません。「8月5日の15時」のような指定はできず、「8月5日」までになります。

時刻まで決めたいものは、これまでどおりカレンダーの予定のほうが向いています。

カレンダー用の設定とは、完全に別の認証です。片方が使えなくなっても、もう片方には影響しません。

登録先はGoogleカレンダー画面の「ToDo リスト」に表示されます。スマホのGoogle ToDoリストアプリからも、同じものが見えます。

結局、予定とタスクはどう使い分けるか

両方できるようになって、私はこう決めました。

  • 時刻が決まっているものは、予定。打ち合わせ、訪問、来客など
  • 「その日までにやる」だけのものは、タスク。連絡、確認、書類の提出など

この線引きを先に決めておかないと、同じ用件が予定とタスクの両方に入って、どちらを見ればいいのか分からなくなります。

私は最初、迷ったものを全部予定に入れてしまい、カレンダーが「作業予定」で埋まってしまいました。

時刻のあるものだけを予定に残したら、1日の見通しがずいぶん立てやすくなりました。

まとめ

今回の設定を、もう一度4行でまとめます。

  • Google Cloudでプロジェクト(入れ物)を作る
  • Google Calendar API(窓口)を有効にする
  • サービスアカウント(ロボット社員)を作り、をダウンロードする
  • Googleカレンダー側で、そのロボット社員にカレンダーを共有する

やっていることは、突き詰めれば「AI専用の社員を1人雇って、自分の予定表を見せる」という、それだけの話です。

画面の言葉が難しいだけで、考え方はとても単純でした。

そして、いちばん忘れられやすいのが最後の共有です。設定画面の中に出てこないので、手順書どおりに進めても抜け落ちます。うまく動かないときは、まずここを疑ってください。

ところで、その予定は誰が入力していますか

ここまで読んで、こんなふうに思われたかもしれません。

  • 打ち合わせの日程が決まるたびに、メールを見ながら手でカレンダーに入れている
  • 「3か月後に確認」のような先の予定を、結局は忘れてしまっている
  • AIは使い始めたけれど、結局そのあと自分で手を動かしている

「うちの場合、どこから自動化できる?」は、無料で相談できます。

カレンダーに限らず、日々の業務のどこをAIに任せて、どこは人がやると決めるか。そこを一緒に整理します。

オンラインで30分ほど、いまの状況をうかがうところから始めます。

その場で見積もりを出すことはしませんし、売り込みもしません。

→ 無料で相談する

その前に、自分の業務のどこにAIを入れられるかだけ知りたい、という方はAI活用診断から試してみてください。質問に答えていくだけで、着手できる場所が整理できます。

もう少し自分のペースで学びたい方には、メルマガのほうが向いているかもしれません。

今回のような「やってみたら、ここでつまずいた」という話を、実際の画面つきでお届けしています。

いま受け取れる特典は、全部で7つ。すべて無料です。

  • AIの仕上がりを毎回そろえる 型プロンプト … この記事の“型”をそのまま道具に。コピペするだけ・作成フォーム付き。
  • ChatGPT超入門ガイド … 「何ができるの?」がスッキリ分かる入門書。
  • AIで仕事をラクにする 業務改善チェックリスト … “任せられる仕事”を見つける。
  • 今日から使えるAI活用シーン10選 … 効果別に厳選。まねするだけ。
  • NotebookLMでスライドを作ろう … 資料づくりを10倍速に。
  • 撮った動画を“見返せる資産”に変える 手順書 … 文字起こし→目次→字幕まで。
  • AI活用ガイドブック(全70ページ) … Kindleでは¥980。登録+3分のアンケートで無料。

しかも、特典はこれからも増えていきます。一度登録しておけば、新しい道具が出るたびに受け取れます。

必要なのは、メールアドレスだけ。登録は1分、いつでも1クリックで解除できます。

→ メルマガに登録して、特典を受け取る

APIの設定をせずに、Gmailからカレンダーへ予定を入れる方法は、Gmailに届いたメールから自動的にGoogleカレンダーに予定を登録する方法でまとめています。まずは手軽に試したい方は、あわせてご覧ください。

コメント

タイトルとURLをコピーしました