Google Calendar

Google CalendarをSquadbaseに接続するための手順と必要情報の取得方法

Squadbase では Google Calendar に接続するための方法を2つ提供しています。用途に合わせてお選びください。

方法説明
OAuthGoogle アカウントで OAuth 認証して接続します。サービスアカウント不要でかんたんにセットアップできます。
Service AccountGoogle Cloud のサービスアカウントを使って接続します。自動化ワークフローやドメイン全体へのアクセスに適しています。

Google Calendar(OAuth)

接続方法の選択画面で Google Calendar を選択し、Google 認証フローに従って Squadbase へのアクセスを許可してください。

追加の認証情報は不要です。


Google Calendar(Service Account)

必要情報

項目説明
Google Cloud Service Account JSONGoogleのサービスにアクセスするための「認証キーファイル」です。Google Cloud上で発行されるJSONファイルで、どのアプリケーションがAPIを利用しているかをGoogleが識別するために使われます。

取得方法

Google Cloud Service Account JSON

連携用のGoogle Service Accountを発行します。

Google Service Accountとは、人間ではなくプログラムやアプリケーションなどの「システム」がGoogleのサービスを利用するための専用アカウントです。

Service Accounts を開く

Google Cloud Console にログインし、任意のプロジェクトでメニューから「IAM & Admin」→「Service Accounts」を選択してください。

Google Cloud コンソールのメニューから Service Accounts を開く

サービスアカウントを作成する

Service Accounts の画面上部にある「+ Create service account」をクリックします。

Service Accounts 画面の Create service account ボタン

サービスアカウント作成に必要な情報を入力します。

  • Service account name:このサービスアカウントが何用なのか分かるように、任意の名前をつけてください。
  • Service account ID:サービスアカウント名に応じて自動で入力されます。
  • Service account description:任意でこのサービスアカウントの説明を追記することができます。

「Create and continue」をクリックするとサービスアカウントが作成されます。

サービスアカウントの作成フォーム

Permissions と Principals with access については、特に設定をする必要はありません。Google Calendar 側でカレンダーの共有設定を行います。

キーを発行する

サービスアカウントの一覧から、作成したサービスアカウントのメールアドレスをクリックします。

タブから「Keys」を選択し、「Add key」→「JSON」を選択し、「作成」ボタンをクリックします。

Add key から JSON キーを作成するダイアログ

すると、ご自身のPC上にJSONファイルがダウンロードされます。このJSONファイルをアップロードしてください。

APIを有効化する

サービスアカウントが Google Calendar のデータにアクセスできるようにするために、Google Cloud プロジェクト側で「Google Calendar API」を有効化する必要があります。

Google Cloudの左のサイドバーから「APIとサービス」→「ライブラリ」を選択し、検索窓に「Google Calendar」と入力して検索します。検索結果から「Google Calendar API」を見つけ、「有効にする」を押してください。


サービスアカウントへのアクセス権の付与

以下のいずれかの方法で、サービスアカウントに Google Calendar へのアクセス権を付与してください。

方法1:Googleカレンダーにサービスアカウントを招待する

個人の Gmail アカウントおよび Google Workspace の両方で利用できる方法です。対象のカレンダーにサービスアカウントを直接招待します。

Google カレンダー の左サイドバーで、接続したいカレンダーの横にある 三点メニュー(⋯) をクリックして 「設定と共有」 を選択します。「特定のユーザーまたはグループと共有する」 セクションの 「+ ユーザーやグループを追加」 をクリックし、サービスアカウントのメールアドレスを入力して、権限を 「すべての予定の詳細を表示する」 に設定してください。

サービスアカウントが「すべての予定の詳細を表示する」権限で追加された Google カレンダーの共有設定画面

「Make changes to events」以上の権限はデータが編集される可能性があるため、基本的には「See all event details」権限で共有することをお勧めします。

個人の Gmail アカウントをご利用の場合:追加の設定は不要です。サービスアカウントをそのまま招待できます。

Google Workspace をご利用の場合:事前に Google Workspace の管理者がカレンダーの外部共有設定を変更する必要があります。Google Workspace 管理コンソール「アプリ」→「Google Workspace」→「カレンダー」→「共有設定」 を開き、外部共有の設定を 「すべての情報が共有されます(外部ユーザーはカレンダーを変更できません)」 に変更してください。この設定がないと、外部ユーザーとして扱われるサービスアカウントとの共有ができません。

方法2:ドメイン全体の委任(Google Workspace)

Google Workspace を利用していて、ドメイン内のすべてのユーザーのカレンダーへのアクセスを一括で付与したい場合は、ドメイン全体の委任を使用できます。

ドメイン全体の委任には Google Workspace の管理者権限が必要です。個人の Gmail アカウントでは利用できません。

サービスアカウントのクライアント ID を取得する

Google Cloud Console「IAM & Admin」→「Service Accounts」 を開き、作成したサービスアカウントをクリックします。詳細ページに表示されている OAuth 2.0 クライアント ID(数字のみのID)をコピーしてください。

Google Workspace 管理コンソールでドメイン全体の委任を開く

管理者アカウントで Google Workspace 管理コンソール にログインし、「セキュリティ」→「アクセスとデータ管理」→「API の制御」 を開き、「ドメイン全体の委任を管理する」 をクリックします。

ドメイン全体の委任ページの API クライアント一覧

サービスアカウントを追加する

「新しく追加」 をクリックし、以下を入力します。

  • クライアント ID:手順1でコピーしたクライアント ID を貼り付ける
  • OAuth スコープ:以下のスコープを追加します。
https://www.googleapis.com/auth/calendar.readonly

クライアント ID と OAuth スコープを入力するダイアログ

「承認」 をクリックします。

メインカレンダー以外のカレンダーを接続する場合は、カレンダー ID を指定する必要があります。メインカレンダーの ID は Gmail のメールアドレスです。その他のカレンダーは、Google カレンダー設定(歯車アイコン)→ 左サイドバーでカレンダー名をクリック →**「カレンダーの統合」**セクションで確認できます(例:xxxxxxxxxxxxxxxxxx@group.calendar.google.com)。