AppSheet と Google Workspace の連携(4)Googleカレンダー

folder_openAppSheet

AppSheet (アップシート)の連携について解説するシリーズです。
前回(第3回)は、アドオンを使用して、Googleフォームから送信した問い合わせをGoogleチャットに通知しました。
第4回は、問い合わせ管理アプリで、AppSheetとGoogleカレンダーを連携します。
Googleカレンダーに予定を追加して、問い合わせと関連付けます。

1. AppSheet と Googleカレンダー を連携させる

AppSheetとGoogleカレンダーの連携手順は以下の通りです。

  1. Googleカレンダーを作成する
  2. AppSheetデータソースにGoogleカレンダーを追加する
  3. 問い合わせ管理アプリにテーブルを追加する
  4. 「Ref」列を使用して、問い合わせとカレンダーを関連付ける
  5. 予定を追加して、Googleカレンダーで確認する

今回は連携用のカレンダーを新規作成して、使用します。また、カレンダーに予定を追加した時に、任意のメールアドレスに招待メールを送信することができますが、今回は誤送信を防止するために作成しません。

2.Googleカレンダーを作成する

はじめに、連携用のカレンダーを作成します。

Google Workspaceの「Googleアプリ」アイコン(右上の9点ドット)をクリックして、「カレンダー」を選択して、Googleカレンダーを表示します。

「他のカレンダー」の右にある「+」ボタンをクリック、「新しいカレンダーを作成」をクリックします。

名前に「予定カレンダー」と入力して、「カレンダーを作成」ボタンをクリックします。

「予定カレンダー」が作成されました。

3. AppSheet のデータソースにGoogleカレンダーを追加する

AppSheetに戻りましょう。アプリエディタを開きます。

右上の「Account」アイコンをクリックして、自分のアカウント(メールアドレス)をクリックします。

My Accountが開きます。「Source」タブを選択して、「Account Sources」の「+ New Data Source」をクリックします。

Add a new data sourceが開きます。「Google Calendar」をクリックします。

自分のGoogleアカウントを選択します。

AppSheetがGoogleカレンダーへのアクセスをリクエストします。プライバシーポリシーと利用規約に同意した上で「許可」をクリックします。

Account SourcesにGoogleカレンダーが追加されます。

4.問い合わせ管理アプリにテーブルを追加する

問い合わせ管理アプリに、Googleカレンダーをテーブルとして追加します。

アプリエディタ左側メニュー「Data」をクリック、Dataナビゲーション右上の「+」ボタンをクリックします。

Add dataが表示されます。Google Calendarをクリックします。

Choose a Sheet/Tableから、先ほど追加した「予定カレンダー」をクリックして選択します。

「Add This Table」ボタンをクリックします。

Dataナビゲーションに「予定カレンダー」テーブルが追加されました。

5.「Ref」列を使用して、問い合わせとカレンダーを関連付ける

「予定カレンダー」テーブルの列を設定します。

左側メニュー「Data」をクリック、Dataナビゲーションパネルで「予定カレンダー」を選択します。

「Description」列の左にあるペン型の編集アイコンをクリックして、列設定パネルを開きます。

「Description」列を以下のように設定します。

  • Type:Ref
  • Source table:フォームの回答 1

「予定カレンダー」テーブルの「Description」列を「Ref」型に設定しました。「Description」列は、Googleカレンダーの「説明を追加」欄です。

「Ref」型の列は、以下のような公式で理解します。

「Ref」の公式

「Ref」型の列は、

  • 参照先テーブル(Source table)を参照して、
  • 参照先テーブルのKEY列の値を保存することにより、
  • テーブル間のリレーションシップを設定できる

サンプルデータで確認してみましょう。

「予定カレンダー」テーブル2行目の「Description」列には、「12/30/2023 10:09:54 PM」(米国式表記)が保存されています。これは、「フォームの回答 1」テーブル2行目の「タイムスタンプ」列の「2023/12/30 22:09:54」(日本式表記)と同じ値になっています。

「Ref」の公式に当てはめると、「予定カレンダー」の「Description」列は、

  • 参照先の「フォームの回答 1」テーブルを参照して、
  • 参照先の「フォームの回答 1」テーブルの「タイムスタンプ」列(KEY列)の値を保存することにより、
  • 「フォームの回答 1」と「予定カレンダー」の間でリレーションシップを設定した

という意味になります。

以上、「Ref」型の設定により、問い合わせとカレンダーの予定が関連付け(紐付け)られました。
Googleカレンダーに追加される予定の「説明を追加」欄に「12/30/2023 10:09:54 PM」(米国式表記)が保存されます。

ここまでできたら「Done」ボタンをクリックして、「Description」設定パネルを閉じます。

右上の「Save」ボタンをクリックして、設定を保存します。

「予定カレンダー」は

  • Title
  • Start
  • End
  • Description
  • 以外は使用しないので、SHOW?、EDITABLE?、REQUIRE?、SEARCH?のチェックをOFFにして無効にします。

「フォームの回答 1」テーブルのLABELを変更します。

  • タイムスタンプ:OFF
  • 会社名:ON

右上の「Save」ボタンをクリックして、設定を保存します。

最後に、「予定カレンダー」ビュー(View:画面)を調整します。

エディタ左側メニュー「Views」をクリックします。
Viewsナビゲーションに「Map」ビューがあると思うので、選択して設定を以下のように変更します。

  • View name:カレンダー
  • View type:calendar

View Optionsを以下のように変更します。

  • Start date:Start
  • Start time:Start
  • End date:End
  • End time:End
  • Description:Title

Displayタブを開いて、Iconを「calendar」に変更します。

右上の「Save」ボタンをクリックして、設定を保存します。

6.予定を追加して、Googleカレンダーで確認する

予定を追加してみましょう。

エディタ右側のプレビューで、タブメニュー「フォームの回答 1」をクリックして表示、問い合わせを1件選択します。

「Related 予定カレンダーs」の「Add」をクリックします。

以下のフィールドに入力します。

  • Title:予定のタイトルを入力します。
  • Start:予定の開始日時を入力します。
  • End:予定の終了日時を入力します。
  • Description:問い合わせ元の会社名が選択されます。

最後に「Save」ボタンをクリックして、予定を追加します。

予定が1件追加されました。Googleカレンダーを確認してみましょう。

予定カレンダーに予定が追加されていれば成功です。

以上、AppSheetとGoogleカレンダーを連携して、カレンダーに追加した予定と問い合わせを関連付けました。ポイントは、カレンダーテーブルの「Description」を「Ref」列として使用している点です。

Googleスプレッドシートとは異なり、Googleカレンダーから追加したテーブルは、自由に列を追加したり削除したりすることができません。なので、今回は「Description」を「Ref」列として代用しました。「Dscription」には、関連している問い合わせ(フォームの回答 1)のタイムスタンプ(KEY)が保存されています。このタイムスタンプを削除すると、問い合わせと予定の関連付けが解かれるので、削除しないように注意してください。

次回(第5回)は、GmailとAppSheetを連携します。
出張申請メールを送信して、Dynamic email機能を使用して、Gmail上で承認をやってみます。

AppSheet と Google Workspace の連携
Share Me!

前の投稿
AppSheet と Google Workspace の連携(3)Googleチャット
次の投稿
AppSheet と Google Workspace の連携(5)Gmail

関連記事

メニュー