Google Workspace アドオンを使用すると、ユーザーがカレンダーやカレンダーの予定を表示または編集するときに、カスタマイズされたインターフェースを提供できます。これにより、ユーザーに関連する追加情報を提供したり、タスクを自動化したり、サードパーティ システムを Google カレンダーに接続したりできます。
Google カレンダーのアドオン インターフェースを構築するときに、ホームページを指定できます。複数のホストに同じホームページを使用することも、Google カレンダー用に固有のホームページを設計することもできます。
ユーザーがカレンダーの予定を開いたときに表示されるインターフェースをアドオンで定義することもできます。
アドオン UI へのアクセス
Google Workspace アドオンは、開き方によって、ホームページ インターフェース、Google カレンダーの予定インターフェース、添付ファイル選択インターフェース、またはこれら 3 つを定義できます。
- ユーザーがカレンダー ビューでアドオン アイコンをクリックすると、アドオンは対応する
calendar.homepageTrigger
関数を実行します(存在する場合)。この関数は、トップページ カードを作成してカレンダーに返します。calendar.homepageTrigger
関数が定義されていない場合、代わりに一般的なホームページ カードが表示されます。 - ユーザーがカレンダーの予定を開いてからアドオン アイコンをクリックした場合、またはユーザーが予定を開いたときにアドオンが開いている場合、アドオンは対応する
eventOpenTrigger
関数を実行します(存在する場合)。この関数は、アドオンのカレンダー イベント インターフェースを構築し、Google カレンダーに戻って表示します。 - アドオンで
eventAttachmentTrigger
関数が定義されている場合、ユーザーがカレンダーの予定を編集中に [添付ファイルを追加] をクリックすると、アドオンが添付ファイル プロバイダとして表示されます。アドオンが選択されると、eventAttachmentTrigger
関数はアドオンの添付ファイル選択インターフェースを構築し、Google カレンダーに返して表示します。
アドオンのカレンダー インターフェースを作成する
Google Workspace アドオンを使用して Google カレンダーを拡張する手順は次のとおりです。
- アドオンにカレンダー固有のホームページを設定するかを決定します。また、ユーザーがカレンダーの予定を編集しているときにカスタム インターフェースを提供するかどうかも決定します。
- 必要なスコープを含め、適切な
addOns.common
フィールドとaddOns.calendar
フィールドをアドオン スクリプト プロジェクトのmanifestに追加します。 - カレンダー固有のホームページを提供する場合は、
calendar.homepageTrigger
関数を実装してこのインターフェースを構築します。複数の Google Workspace ホストにcommon.homepageTrigger
インターフェースを使用することもできます。 - カレンダー イベント インターフェースを提供する場合は、このインターフェースを構築する
calendar.eventOpenTrigger
関数を実装する必要があります。詳しくは、カレンダーの予定インターフェースを拡張するをご覧ください。 - ボタンのクリックなどのユーザーの UI 操作に応答するために必要な関連するコールバック関数を実装します。
カレンダーのホームページ
Google カレンダーは、Google Workspace アドオンのホームページの表示をサポートしています。Google カレンダーにアドオンの共通ホームページを表示するには、アドオンのマニフェストに addOns.calendar
フィールドがあることを確認します。
または、アドオン マニフェストに calendar.homepageTrigger
を追加して、カレンダー固有のホームページを指定します。
いずれの場合も、アドオンのスクリプト プロジェクトでホームページ トリガー関数の名前を指定する必要があります。この関数は、必要に応じて Google カレンダーのホームページをビルドするために自動的に呼び出されます。この関数を実装して、ホームページを構成する単一の Card
または Card
オブジェクトの配列を構築して返す必要があります。ホームページ トリガー関数には、クライアントのプラットフォームなどの一般的な情報を含むイベント オブジェクトがパラメータとして渡されます。イベント オブジェクトのデータを使用して、ホームページの作成をカスタマイズできます。
カレンダーの予定のインターフェースを拡張する
Google カレンダーは、コンテキスト トリガーに基づいて、ユーザーがカレンダーの予定を編集するときに表示するインターフェース(存在する場合)を決定します。トリガーがトリガーされると、アドオンのmanifestの calendar.eventOpenTrigger
フィールドで指定されたコンテキスト トリガー関数が実行されます。
calendar.eventOpenTrigger
フィールドに指定した名前の関数を実装する必要があります。この関数は、イベント オブジェクトを引数として受け取り、ユーザーがイベントを開いている間にカレンダーに表示する 1 つの Card
オブジェクトまたは Card
オブジェクトの配列を返す必要があります。
イベント オブジェクト
ユーザーがカレンダーの予定を開くと、イベント オブジェクトが作成され、コンテキスト トリガー関数 calendar.eventOpenTrigger
に渡されます。トリガー関数は、このイベント オブジェクトの情報を使用して、アドオンカードの作成方法やアドオンの動作を制御する方法を決定できます。イベント オブジェクトは、アドオンが初めて開かれたとき、およびユーザーがインタラクティブ ウィジェットをクリックまたは選択したときにも作成され、homepageTrigger
関数に渡されます。
イベント オブジェクトの完全な構造については、イベント オブジェクトをご覧ください。カレンダーがアドオンのホストアプリである場合、コンテキスト トリガーとウィジェット操作イベント オブジェクトには、カレンダー固有のクライアント情報を格納する カレンダー イベント オブジェクト フィールドが含まれます。
カレンダーの予定の更新
ユーザーがカレンダーの予定を開いて編集するときに発生するコンテキスト イベント calendar.eventOpenTrigger
に加えて、ユーザーがカレンダーの予定を更新して保存するときに発生する calendar.eventUpdateTrigger
を定義することもできます。このトリガーは、ユーザーが次のいずれかの編集を行った場合にのみトリガーされます。
- 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 のプルダウン メニューにオプションとして表示されます。