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 フィールドで指定された関数を実装する必要があります。この関数は引数としてイベント オブジェクトを受け取り、ユーザーがイベントを開いているときにカレンダーに表示する単一の 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 のプルダウン メニューにオプションとして表示されるだけです。