Google カレンダーのインターフェースの構築

Google Workspace アドオンを使用すると、ユーザーがカレンダーやカレンダーの予定を表示または編集しているときに、カスタマイズしたインターフェースを提供できます。これにより、ユーザーに追加の関連情報を提供し、タスクを自動化し、サードパーティ システムを Google カレンダーに接続できます。

Google カレンダーのアドオン インターフェースを作成する際には、ホームページを使用できます。複数のホストに同じホームページを使用することも、Google カレンダー用に特定のホームページを設計することもできます。

また、ユーザーがカレンダーの予定を開いたときに表示されるインターフェースも定義できます。

アドオン UI にアクセスする

Google Workspace アドオンでは、開く方法に応じて、ホームページのインターフェース、Google カレンダーの予定のインターフェース、添付ファイルの選択インターフェース、または以下の 3 つすべてを定義できます。

  • カレンダー ビューでユーザーがアドオン アイコンをクリックすると、アドオンは対応する calendar.homepageTrigger 関数(存在する場合)を実行します。この関数はホームページ カードを作成し、カレンダーに返して表示します。calendar.homepageTrigger 関数が定義されていない場合は、代わりに汎用のホームページ カードが表示されます。
  • ユーザーがカレンダーの予定を開いてアドオン アイコンをクリックしたり、予定を開いたときにアドオンを開いたりすると、対応する eventOpenTrigger 関数(存在する場合)が実行されます。この関数は、アドオンのカレンダーの予定インターフェースを作成し、Google カレンダーに戻って表示します。
  • アドオンで eventAttachmentTrigger 関数が定義されている場合、ユーザーがカレンダーの予定の編集中に [添付ファイルを追加] をクリックすると、アドオンが添付ファイル プロバイダとして表示されます。アドオンが選択されると、eventAttachmentTrigger 関数によってアドオンの添付ファイル選択インターフェースが作成され、Google カレンダーに返されて表示されます。

アドオンのカレンダー インターフェースの作成

Google Workspace アドオンで Google カレンダーを拡張する方法は次のとおりです。

  1. アドオンでカレンダー固有のホームページを使用するかどうかを決定します。また、ユーザーがカレンダーの予定を編集しているときに、カスタム インターフェースを表示するかどうかも決定します。
  2. 適切な addOns.common フィールドと addOns.calendar フィールドを、アドオン スクリプト プロジェクトのマニフェスト(必要なスコープなど)に追加します。
  3. カレンダー固有のホームページを用意する場合は、calendar.homepageTrigger 関数を実装してこのインターフェースを作成します。複数の Google Workspace ホストに common.homepageTrigger インターフェースを使用することもできます。
  4. カレンダーの予定インターフェースを提供する場合、このインターフェースを作成するには calendar.eventOpenTrigger 関数を実装する必要があります。詳しくは、カレンダーの予定インターフェースの拡張をご覧ください。
  5. ユーザーの UI 操作(ボタンのクリックなど)に応答するために必要な関連するコールバック関数を実装します。

カレンダーのホームページ

Google カレンダーでは、Google Workspace アドオンのホームページの表示がサポートされています。Google カレンダーにアドオンの共通ホームページを表示するには、アドオンのマニフェストに addOns.calendar フィールドがあることを確認してください。

または、アドオン マニフェストに calendar.homepageTrigger を追加して、カレンダー固有のホームページを指定します。

いずれの場合も、アドオンのスクリプト プロジェクトにホームページ トリガー関数の名前を指定する必要があります。この関数は、必要なときに自動的に Google カレンダーのホームページを作成するために呼び出されます。ホームページを構成する単一の Card オブジェクトまたは Card オブジェクトの配列を作成して返すには、この関数を実装する必要があります。ホームページ トリガー関数には、クライアントのプラットフォームなどの全般情報を含むパラメータとしてイベント オブジェクトが渡されます。このイベント オブジェクト データを使用して、ホームページの構成を調整できます。

カレンダーの予定インターフェースの拡張

Google カレンダーは、コンテキスト トリガーを使用して、ユーザーがカレンダーの予定を編集したときに表示するインターフェース(存在する場合)を決定します。トリガーが起動すると、アドオンのマニフェストcalendar.eventOpenTrigger フィールドで指定されたコンテキスト トリガー関数が実行されます。

calendar.eventOpenTrigger フィールドで指定された関数を実装する必要があります。この関数は、イベント オブジェクトを引数として受け取り、1 つの Card オブジェクトまたは Card オブジェクトの配列のいずれかを返して、ユーザーが予定を開いている間カレンダーを表示する必要があります。

イベント オブジェクト

ユーザーがカレンダーの予定を開くと、イベント オブジェクトが作成され、calendar.eventOpenTrigger コンテキスト トリガー関数に渡されます。トリガー関数は、このイベント オブジェクトの情報を使用して、アドオンカードの作成方法や、アドオンの動作を制御する方法を決定します。アドオンを最初に開いたときや、ユーザーがインタラクティブ ウィジェットをクリックまたは選択したときに、イベント オブジェクトも作成され、homepageTrigger 関数に渡されます。

イベント オブジェクトの完全な構造については、イベント オブジェクトをご覧ください。カレンダーがアドオンの代替ホストアプリである場合、コンテキスト トリガーとウィジェット操作イベント オブジェクトには、カレンダー固有のクライアント情報を保持するカレンダーの予定オブジェクト フィールドが含まれます。

カレンダーの予定の更新

ユーザーがカレンダーの予定を開いたときに呼び出されるコンテキストに応じた calendar.eventOpenTrigger に加えて、ユーザーがカレンダーの予定を更新して保存したときに呼び出される calendar.eventUpdateTrigger を定義することもできます。このトリガーは、ユーザーが次の編集を 1 つ以上行った場合にのみ呼び出されます。

  • 1 人以上の参加者を追加します。
  • 1 人以上の参加者を削除します。
  • 別の会議ソリューションを追加する、または切り替える。

このトリガーが起動すると、calendar.eventUpdateTrigger マニフェスト フィールドで指定されたトリガー関数が実行されます。この関数は、カレンダーの予定の編集が保存される前に実行されます。

calendar.eventUpdateTrigger は通常、次のうち 1 つ以上を行うために使用されます。

  • ユーザーがカレンダーの予定に加えた変更に応じて、アドオンのカレンダーの予定インターフェースを更新する。
  • カレンダーの予定データをサードパーティ システム(Google カレンダーに接続されている会議システムなど)と同期する。

アドオンでカレンダーの予定データ(参加者リストなど)を調整する必要がある場合は、アドオンの calendar.currentEventAccess マニフェスト フィールドを WRITE または READ_WRITE に設定する必要があります。また、アドオンには https://www.googleapis.com/auth/calendar.addons.current.event.write スコープが必要です。

会議ソリューションの追加

会議ソリューションは、ユーザーが Google カレンダーの予定に添付できるサードパーティ製の会議オプションを表します。新しい会議ソリューションを追加するアドオンの構築方法については、サードパーティ会議の概要ドキュメントをご覧ください。このタイプの拡張機能の UI を作成する必要はありません。追加したソリューションは、Google カレンダーの予定 UI のプルダウン メニューにオプションとして表示されるだけです。