予定を作成する
主催者の Google カレンダーに対する書き込みアクセス権がある場合は、
予定を Events: insert
メソッドを使用して追加できます。
このメソッドでは、招待状を追加する設定に関係なく、予定が主催者のカレンダーに直接追加されます。
参加者を追加する
このメソッドでは、予定のattendees
プロパティに
メールアドレスを追加することで、同じ予定に参加者を追加することもできます。主催者が予定に加えた今後の変更は、
参加者に反映されます。
参加者には、主催者のメールアドレスから招待状が届きます。Google カレンダーのユーザーは、Google カレンダーの設定の [予定] の設定に応じて、メールまたはカレンダーで招待状を受け取ります。
- [
From everyone] に設定している場合、予定はカレンダーに直接追加されます。 Only if the sender is known[Only if the sender is known] に設定している場合、主催者と以前にやり取りしたことがある、主催者が同じ組織に所属している、主催者が Google コンタクトに登録されている場合は、予定がカレンダーに直接追加されます。主催者が不明な場合は、[カレンダーに追加] をクリックするか、招待メールの [はい] または [未定] をクリックして出欠確認に返答できます。その後、予定がカレンダーに追加されます。- ユーザーが
When I respond in emailに設定している場合、招待メールの [**はい**]、[**未定**]、または [**いいえ**] のいずれかをクリックして出欠確認に返答するまで、すべての招待状がカレンダーに追加されません。
招待状が Google カレンダーに追加される方法について詳しくは、 カレンダーで招待状を管理するをご覧ください。
attendees[].responseStatusまた、予定に 200 人を超えるゲストが招待されている場合、返信ステータスはゲストに反映されません。
参加者のカレンダーに予定を直接表示する
参加者の設定に関係なく、Google カレンダーの参加者のカレンダーに予定を直接表示するには、参加者の出欠確認を設定するか、予定のコピーを参加者のカレンダーに直接インポートします。どちらの方法でも、参加者のカレンダーに対する 書き込みアクセス権が必要です。ない場合は、主催者を参加者の連絡先に追加することを 検討してください。これには、参加者の連絡先に対する書き込みアクセス権が必要になる場合があります。
参加者の出欠確認を設定する
参加者の予定の出欠確認を設定する手順は次のとおりです。
- Google カレンダーの主催者のカレンダーに予定を作成し、 参加者を追加します(上記を参照)。
Events: updateメソッド を使用して、 参加者の出欠確認 をacceptedまたはtentativeに設定します。参加者のカレンダーに対する書き込みアクセス権が必要です。予定が参加者のカレンダーに表示されるまでに少し時間がかかることがあります。Events: updateメソッドの使用方法について詳しくは、こちらをご覧ください。
この方法では、予定が参加者のカレンダーに追加されますが、参加者のメールには、以前に不明なアドレスから招待状が送信されたことを示すバナーが表示されることがあります。
予定のコピーを参加者のカレンダーに直接インポートする
予定のコピーを参加者のカレンダーにインポートする手順は次のとおりです。
- 主催者の Google カレンダーに対する書き込みアクセス権がある場合は、予定のコピーを
インポートするには、
Events: importメソッドを使用します。 - `
Events: import` を使用して、同じ予定の別のコピーを参加者のカレンダーにインポートします。参加者のカレンダーに対する書き込みアクセス権が必要です。主催者と参加者のコピーに同じ予定 ID (iCalUID) を使用し、参加者のコピーに主催者 を指定してください。
この方法では、参加者はカレンダーで予定を確認できますが、Google カレンダーから招待メールは届きません。
主催者を参加者の連絡先に追加する
参加者の認証情報がない場合は、参加者またはその組織に、主催者のメールアドレスを Google コンタクトに事前に追加して、予定をカレンダーに直接表示するよう依頼できます。新しく作成した連絡先が有効になるまでに少し時間がかかることがあります。
- Google カレンダーのユーザーに、主催者を Google コンタクトに追加するよう依頼します。
- 参加者が組織に所属している場合は、組織の管理者に、ユーザーの連絡先にメールアドレスをプログラムで追加するよう依頼できます。管理者に
ドメイン全体の委任を有効にし、
ユーザーを偽装して
People: createContactメソッドを使用して各ユーザーの連絡先を作成するよう依頼すると、これらのメールアドレスからの今後の招待状がユーザーのカレンダーに自動的に表示されます。 - 参加者の連絡先にアクセスできる場合は、
主催者のメールアドレスを参加者の連絡先に追加することも、
People: createContactメソッドを使用して行うことができます。
メールアドレスからユーザーを招待する
主催者の Google カレンダーに対する書き込みアクセス権がない場合や、 主催者のメールアドレスを公開したくない場合は、iCalendar プロトコル (RFC-5545) を使用して、.ICS ファイルを使用してメールでユーザーを招待します。
参加者が Google カレンダーのユーザーで、設定が Only if the sender
is known で、以前にアドレスとやり取りしたことがない場合や、アドレスを
既知として記録していない場合、
[Add to calendar] をクリックするか、予定の出欠確認に返答するまで、招待状はカレンダーに追加されません。
ユーザーが予定を追加するためのリンクを提供する
または、Google カレンダーのユーザーが予定を更新せずに 1 回限りの予定として簡単に追加できるようにする場合は、事前入力された予定を含むリンクを提供して、ユーザーが自分で追加できるようにします。この方法では、ユーザーのカレンダーに個別の予定が作成されます。ユーザーのカレンダーにアクセスできない限り、この予定を更新することはできません。
次のリンク テンプレートを使用します。
https://calendar.google.com/calendar/r/eventedit?action=TEMPLATE&dates=20230325T224500Z%2F20230326T001500Z&stz=Europe/Brussels&etz=Europe/Brussels&details=EVENT_DESCRIPTION_HERE&location=EVENT_LOCATION_HERE&text=EVENT_TITLE_HERE
次の情報を更新します。
- 開始日時と終了日時: ISO 8601 形式を使用します。上記の例では、
20230325T224500Zと20230326T001500Zを置き換えます。 - 開始タイムゾーンと終了タイムゾーン: IANA タイムゾーン データベース名としてフォーマットします。
タイムゾーンを
stzフィールドとetzフィールドに配置します。 - 予定の説明: URL エンコードする必要があります。
- 予定の場所: URL エンコードする必要があります。
- 予定のタイトル: URL エンコードする必要があります。
例
ユーザーがビジネスの予約を行えるように、予約サービスを構築する例を考えてみましょう。ユーザーが予約した場合、サービスで予約者とビジネスの Google カレンダーに予定を追加する必要があります。
ユーザー エクスペリエンスを向上させるため、ビジネスがカレンダーに対する書き込みアクセス権 を付与し、予定をビジネスの カレンダーに直接追加(予定を作成する)して、予約者をその予定に招待 (参加者を追加する)することをおすすめします。予約者がカレンダーで予定を確認し、リマインダーを受け取れるように、予約後すぐにメールを確認して予定に [はい] で出欠確認に返答するよう依頼します。予定の出欠確認に返答すると、 通知設定に基づいて Google カレンダーから 予定の通知が送信されます。
予定を予約者のカレンダーに直接追加する場合は、予約者 に連絡先に追加する 招待状を受け取るメールアドレスを依頼します。または、予約者のカレンダーに対する書き込みアクセス権をリクエストして、予約者の代わりにプログラムで出欠確認に返答(参加者の出欠確認を設定する)し、予約確認のメール通知を送信します。
ビジネスでメールアドレスを公開したくない場合は、ユーザー固有のメールアドレスを使用して、メールで予約者に予定を送信します(メールアドレスからユーザーを招待する)。
予定の伝播
次の図式は、その仕組みを示しています。まず、Jack はメイン カレンダーに予定を作成します(主催者のコピーを所有します)。次に、チェロ レッスン グループの予備カレンダーと、予定の設定が [Only if the sender is known] になっている Susan を招待します。参加者のコピーは、チェロ レッスン グループの予備カレンダーと、Susan が Jack を知っている場合は Susan のカレンダーに作成されます。知らない場合は、Susan が出欠確認に返答するか、Jack を知っていることを示すと作成されます。Susan が返信すると、出欠確認の変更が主催者に伝播され、主催者のコピーが Susan の返信で更新されます。主催者の予定のコピーに加えられたこれらの変更は、他の参加者に伝播されます。

共有予定のプロパティ
予定が作成されるカレンダーは、主催者のカレンダーです。 このカレンダーには、ID、開始時刻と終了時刻、概要、説明など、共有予定の情報が保存されます。主催者のカレンダーでこの情報が更新されると、変更は参加者のコピーに伝播されます。
非公開の予定のプロパティ
すべての情報がすべての予定のコピー間で共有されるわけではありません。リマインダー、colorId、透明度、extendedProperties.private プロパティなど、一部のプロパティは非公開です。これらのプロパティは、主催者のカレンダーではなく、参加者の設定によって制御されます。
参加者は、予定の共有プロパティを変更することもできます。ただし、これらの変更は自分のコピーにのみ反映され、主催者が変更を加えると失われる可能性があります。
参加者から主催者に伝播される予定の変更は
参加者の返信ステータスのみです。これは
attendees[].responseStatus
プロパティに保存されています。