予定を作成する
主催者の Google カレンダーへの書き込みアクセス権がある場合は、Events: insert
メソッドを使用してイベントを追加できます。
この方法では、招待状を追加する設定に関係なく、イベントが主催者のカレンダーに直接追加されます。
参加者を追加する
この方法では、参加者のメールアドレスをイベントの attendees
プロパティに追加することで、同じイベントに参加者を追加することもできます。主催者がイベントに変更を加えると、参加者に反映されます。
参加者は、主催者のメールアドレスから招待状を受け取ります。Google カレンダー ユーザーは、Google カレンダーの設定内の [イベント] の設定に応じて、メールまたはカレンダーで招待を受け取ります。
- 設定が
From everyone
の場合、予定はカレンダーに直接追加されます。 - 設定が
Only if the sender is known
の場合、招待したユーザーが以前にやり取りしたことがある場合、招待したユーザーが同じ組織に属している場合、招待したユーザーがGoogle コンタクトに登録されている場合は、予定がカレンダーに直接追加されます。招待したユーザーが不明な場合は、[カレンダーに追加] をクリックするか、招待メールで [はい] または [未定] をクリックして出欠確認に返信します。その後、その予定がカレンダーに追加されます。 - ユーザーが
When I respond in email
を設定している場合、ユーザーが招待メールで [はい]、[未定]、[いいえ] をクリックして出欠確認を返信するまで、すべての招待状がカレンダーに追加されることはありません。
Google カレンダーに招待状を追加する方法について詳しくは、カレンダーで招待状を管理するをご覧ください。
参加者のカレンダーにイベントを直接表示する
参加者の Google カレンダーに予定を直接表示するには、参加者の出欠確認を設定するか、参加者のカレンダーに予定のコピーを直接インポートします。どちらの方法でも、参加者のカレンダーへの書き込みアクセス権が必要です。アクセス権がない場合は、主催者を参加者の連絡先に追加することを検討してください。この場合、参加者の連絡先への書き込みアクセス権が必要になることがあります。
参加者の RSVP を設定する
参加者の RSVP をイベントに設定する手順は次のとおりです。
- 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 ファイルとメールでユーザーを招待します。
参加者が Only if the sender
is known
の設定が適用された Google カレンダー ユーザーで、以前にその住所を操作したことがない、またはその住所を認識済みとして記録したことがない場合は、[カレンダーに追加] をクリックするか、イベントに出欠確認を行うまで、招待状はカレンダーに追加されません。
ユーザーがイベントを追加するためのリンクを提供する
また、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 カレンダーに予定が追加されるようにします。
最適なユーザー エクスペリエンスを実現するには、カレンダーへの書き込みアクセス権を付与することをおすすめします。これにより、その予定をビジネス カレンダーに直接追加し([予定を作成])、予約者をその予定に招待できます(参加者を追加)。予約者が自分のカレンダーでイベントを確認してリマインダーを受け取るには、メールを確認し、予約をした直後にイベントへの出欠確認を [はい] に設定します。ユーザーがイベントへの出欠確認を行うと、通知設定に従って Google カレンダーの予定の通知が送信されます。
予約者のカレンダーにイベントを直接追加する場合は、招待状を受け取るメールアドレスを連絡先に追加するよう予約者に伝えます。または、予約者のカレンダーへの書き込みアクセス権をリクエストして、予約者の代わりにプログラムで RSVP を返信し(参加者の RSVP を設定する)、予約の確定に関するメール通知を送信します。
ビジネスがメールアドレスを公開したくない場合は、ユーザー固有のメールアドレスを使用して、メールでイベントを予約者に送信します(メールアドレスからユーザーを招待する)。
イベントの伝播
次の図は、このダイナミクスを示しています。まず、ジャックはメインのカレンダーに予定を作成します(これにより、主催者のコピーを所有します)。次に、チェロ レッスン グループのセカンダリ カレンダーと、イベント設定が Only if the sender is known
のスーザンを招待します。参加者のコピーは、チェロのレッスン グループの予備カレンダーに作成されます。また、Jack と知り合いの場合は Susan のカレンダーに作成されます。それ以外の場合、出欠確認を取ったり、Jack を知っていたりすると、参加者のコピーが作成されます。スーザンが返信すると、RSVP の変更が主催者に反映され、主催者のコピーがスーザンの返信で更新されます。主催者が予定のコピーに対して行った変更は、他の参加者にも反映されます。
共有イベントのプロパティ
予定が作成されたカレンダーが主催者のカレンダーです。このカレンダーは、ID、開始時間と終了時間、概要、説明などの共有イベント情報を所有します。主催者のカレンダーでこの情報が更新されると、変更が参加者のコピーに反映されます。
プライベート イベントのプロパティ
すべての情報がすべてのイベントコピー間で共有されるわけではありません。リマインダー、colorId
、透明度、extendedProperties.private
プロパティなど、一部のプロパティは非公開です。これらのプロパティは、主催者のカレンダーではなく、参加者の設定によって制御されます。
参加者は、イベントの共有プロパティを変更することもできます。ただし、これらの変更は自分のコピーにのみ反映され、主催者が変更を加えると失われる可能性があります。
参加者から主催者に反映されるイベントの変更は、attendees[].responseStatus
プロパティに保存される参加者の返信ステータスのみです。