Events: import

イベントをインポートします。この操作は、既存の予定の限定公開コピーをカレンダーに追加するために使用されます。インポートできるのは、eventTypedefault のイベントのみです。

非推奨の動作: default 以外のイベントがインポートされると、その型は default に変更され、イベントタイプ固有のプロパティはすべて破棄されます。

今すぐ試すまたは例を見る

リクエスト

HTTP リクエスト

POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events/import

パラメータ

パラメータ名 説明
パスパラメータ
calendarId string カレンダーの ID。カレンダー ID を取得するには、calendarList.list メソッドを呼び出します。現在ログインしているユーザーのメイン カレンダーにアクセスするには、「primary」を使用します。できます。
省略可能なクエリ パラメータ
conferenceDataVersion integer API クライアントでサポートされている会議データのバージョン番号。バージョン 0 では会議データがサポートされていないことを前提とし、イベントの本文にある会議データは無視されます。バージョン 1 では、ConferenceData のコピーと、conferenceData の createRequest フィールドを使用した新しい会議の作成がサポートされるようになりました。デフォルト値は 0 です。 有効な値は 01 です。
supportsAttachments boolean オペレーションを実行する API クライアントがイベントの添付をサポートしているかどうか。省略可。デフォルトは False です。

承認

このリクエストは、少なくとも次のうち 1 つのスコープによる承認が必要です。

範囲
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events

詳細については、認証と認可のページをご覧ください。

リクエスト本文

リクエストの本文には、以下のプロパティを使用して Events リソースを指定します。

プロパティ名 説明 メモ
必須プロパティ
end nested object イベントの(その時間を含まない)終了時間。定期的な予定の場合、これは最初の回の終了時間です。
iCalUID string RFC5545 で定義されているイベントの一意の識別子。カレンダー システム間でイベントを一意に識別するために使用され、import メソッドでイベントをインポートするときに指定する必要があります。

iCalUIDid は同一ではないため、イベントの作成時にどちらか一方だけ指定する必要があります。セマンティクスの違いの一つは、定期的なイベントでは、1 つのイベントのすべての発生に異なる id があり、すべて同じ iCalUID を共有することです。iCalUID を使用してイベントを取得するには、iCalUID パラメータを使用して events.list メソッドを呼び出します。id を使用してイベントを取得するには、events.get メソッドを呼び出します。

start nested object イベントの開始時間(両端を含む)。定期的な予定の場合は、最初のインスタンスの開始時間。
省略可能なプロパティ
anyoneCanAddSelf boolean 誰でも自身をイベントに招待できるかどうか(非推奨)。省略可。デフォルトは False です。 書き込み可能
attachments[].fileUrl string 添付ファイルへの URL リンク。

Google ドライブのファイルの添付ファイルを追加する場合は、Drive API の Files リソースの alternateLink プロパティと同じ形式を使用します。

添付ファイルを追加する場合は必須です。

書き込み可能
attendees[] list イベントの参加者。他のカレンダー ユーザーとの予定のスケジュールを設定する方法について詳しくは、参加者との予定に関するガイドをご覧ください。参加者リストを追加するには、サービス アカウントがドメイン全体の権限の委任を使用する必要があります。 書き込み可能
attendees[].additionalGuests integer 追加ゲストの人数。省略可。デフォルト値は 0 です。 書き込み可能
attendees[].comment string 参加者の回答のコメント。省略可。 書き込み可能
attendees[].displayName string 参加者の名前(利用可能な場合)。省略可。 書き込み可能
attendees[].email string 参加者のメールアドレス(利用可能な場合)。このフィールドは、参加者を追加するときに必要です。RFC5322 に基づく有効なメールアドレスである必要があります。

参加者を追加するときには必須です。

書き込み可能
attendees[].optional boolean これが任意出席のかどうか。省略可。デフォルトは False です。 書き込み可能
attendees[].resource boolean 参加者がリソースであるかどうか。参加者をその予定に初めて追加するときにのみ設定できます。その後の変更は無視されます。省略可。デフォルトは False です。 書き込み可能
attendees[].responseStatus string 参加者の回答ステータス。有効な値は次のとおりです。
  • needsAction」- 参加者がまだ招待状に返信していない(新しい予定の場合に推奨)。
  • declined」- 参加者が招待を辞退しました。
  • tentative」- 参加者は招待を仮承諾しました。
  • accepted」- 参加者は招待を承諾しました。
書き込み可能
attendeesOmitted boolean 参加者が予定の表現から省略されているかどうかを示します。イベントの取得時に、maxAttendee クエリ パラメータで指定された制限が原因である可能性があります。予定を更新するときは、参加者の返答の更新にのみ使用できます。省略可。デフォルトは False です。 書き込み可能
colorId string 予定の色。これは、色の定義の event セクションのエントリを参照する ID です( 色のエンドポイントを参照)。省略可。 書き込み可能
conferenceData nested object Google Meet 会議の詳細など、会議関連情報。新しい会議の詳細を作成するには、createRequest フィールドを使用します。変更を維持するには、すべてのイベント変更リクエストで conferenceDataVersion リクエスト パラメータを 1 に設定してください。 書き込み可能
description string イベントの説明。HTML を含めることができます。省略可。 書き込み可能
end.date date 終日イベントの場合は、「yyyy-mm-dd」形式の日付。 書き込み可能
end.dateTime datetime 結合された日時の値で表される時刻(RFC3339 の形式)。timeZone でタイムゾーンが明示的に指定されていない限り、タイムゾーン オフセットが必要です。 書き込み可能
end.timeZone string 時刻が指定されているタイムゾーン。(形式は「Europe/Zurich」などの IANA タイムゾーン データベース名になります)。定期的な予定の場合、このフィールドは必須です。展開されるタイムゾーンのタイムゾーンを指定します。単一のイベントの場合、このフィールドは省略可能で、イベントの開始と終了のカスタム タイムゾーンを示します。 書き込み可能
extendedProperties.private object このカレンダーに表示される予定のコピーのみに適用されるプロパティ。 書き込み可能
extendedProperties.shared object 他の参加者の予定のコピー間で共有されるプロパティできます。 書き込み可能
focusTimeProperties nested object サイレント モードのイベントデータ。eventTypefocusTime の場合に使用されます。 書き込み可能
gadget.display string ガジェットの表示モード。非推奨です。有効な値は次のとおりです。
  • icon」- ガジェットがカレンダー ビューで予定のタイトルの横に表示されます。
  • chip」- 予定をクリックすると、ガジェットが表示されます。
書き込み可能
gadget.height integer ガジェットの高さ(ピクセル単位)。高さには 0 より大きい整数を指定してください。省略可。サポート終了。 書き込み可能
gadget.preferences object 設定] をクリックします。 書き込み可能
gadget.title string ガジェットのタイトル。サポート終了。 書き込み可能
gadget.type string ガジェットのタイプ。サポート終了。 書き込み可能
gadget.width integer ガジェットの幅(ピクセル単位)。幅には 0 より大きい整数を指定してください。省略可。サポート終了。 書き込み可能
guestsCanInviteOthers boolean 主催者以外の参加者が他のユーザーを招待できるかどうか。省略可。デフォルトは True です。 書き込み可能
guestsCanModify boolean 主催者以外の参加者が予定を変更できるかどうか。省略可。デフォルトは False です。 書き込み可能
guestsCanSeeOtherGuests boolean 主催者以外の参加者が予定の参加者を確認できるかどうかを指定します。省略可。デフォルトは True です。 書き込み可能
location string 予定の場所(自由形式のテキスト)。省略可。 書き込み可能
organizer object 予定の主催者。主催者も参加者である場合は、attendees に個別のエントリが表示され、organizer フィールドが True に設定されます。主催者を変更するには、move オペレーションを使用します。読み取り専用。ただし、イベントをインポートする場合は除きます。 書き込み可能
organizer.displayName string 主催者の名前(利用可能な場合)。 書き込み可能
organizer.email string 主催者のメールアドレス(利用可能な場合)。RFC5322 に基づく有効なメールアドレスである必要があります。 書き込み可能
originalStartTime.date date 終日イベントの場合は、「yyyy-mm-dd」形式の日付。 書き込み可能
originalStartTime.dateTime datetime 結合された日時の値で表される時刻(RFC3339 の形式)。timeZone でタイムゾーンが明示的に指定されていない限り、タイムゾーン オフセットが必要です。 書き込み可能
originalStartTime.timeZone string 時刻が指定されているタイムゾーン。(形式は「Europe/Zurich」などの IANA タイムゾーン データベース名になります)。定期的な予定の場合、このフィールドは必須です。展開されるタイムゾーンのタイムゾーンを指定します。単一のイベントの場合、このフィールドは省略可能で、イベントの開始と終了のカスタム タイムゾーンを示します。 書き込み可能
outOfOfficeProperties nested object 不在の予定データ。eventTypeoutOfOffice の場合に使用されます。 書き込み可能
recurrence[] list RFC5545 で指定されている、定期的なイベントの RRULE、EXRULE、RDATE、EXDATE 行のリスト。このフィールドでは、DTSTART 行と DTEND 行は使用できません。イベントの開始時刻と終了時刻は、start フィールドと end フィールドで指定します。単一の予定または定期的な予定の場合、このフィールドは省略されます。 書き込み可能
reminders.overrides[] list デフォルトのリマインダーを使用していない場合は、その予定に固有のリマインダーが一覧表示されます。未設定の場合は、その予定にリマインダーが設定されていないことを示します。オーバーライドのリマインダーは 5 つまでです。 書き込み可能
reminders.overrides[].method string このリマインダーで使用されているメソッド。有効な値は次のとおりです。
  • email」- リマインダーはメールで送信されます。
  • popup」- UI ポップアップを介してリマインダーが送信されます。

リマインダーを追加する場合は必須です。

書き込み可能
reminders.overrides[].minutes integer リマインダーをトリガーする予定が始まるまでの時間(分)。有効な値は 0 ~ 40320(4 週間(分))です。

リマインダーを追加する場合は必須です。

書き込み可能
reminders.useDefault boolean カレンダーのデフォルトのリマインダーを予定に適用するかどうかを指定します。 書き込み可能
sequence integer iCalendar に基づくシーケンス番号。 書き込み可能
source.title string ソースのタイトル。たとえば、ウェブページのタイトルやメールの件名などです。 書き込み可能
source.url string リソースを指すソースの URL。URL スキームは HTTP または HTTPS にする必要があります。 書き込み可能
start.date date 終日イベントの場合は、「yyyy-mm-dd」形式の日付。 書き込み可能
start.dateTime datetime 結合された日時の値で表される時刻(RFC3339 の形式)。timeZone でタイムゾーンが明示的に指定されていない限り、タイムゾーン オフセットが必要です。 書き込み可能
start.timeZone string 時刻が指定されているタイムゾーン。(形式は「Europe/Zurich」などの IANA タイムゾーン データベース名になります)。定期的な予定の場合、このフィールドは必須です。展開されるタイムゾーンのタイムゾーンを指定します。単一のイベントの場合、このフィールドは省略可能で、イベントの開始と終了のカスタム タイムゾーンを示します。 書き込み可能
status string イベントのステータス。省略可。有効な値は次のとおりです。
  • confirmed」- イベントが確定した。これがデフォルトのステータスです。
  • tentative」- イベントは暫定的に確定する。
  • cancelled」- 予定はキャンセル(削除)されています。list メソッドは、キャンセルされたイベントのみを増分同期のとき(syncToken または updatedMin が指定されている場合)、または showDeleted フラグが true に設定されている場合にのみ返します。get メソッドは常にそれらを返します。

    キャンセル ステータスは、イベントの種類に応じて次の 2 つのステータスを表します。

    1. キャンセルされていない定期的な予定で例外がキャンセルされた場合は、このインスタンスがユーザーに表示されなくなることを示しています。クライアントは、親の定期的な予定の全期間にわたって、これらのイベントを保存する必要があります。

      キャンセルされた例外では、idrecurringEventIdoriginalStartTime フィールドの値が入力されていることが保証されます。他のフィールドは空である場合があります。

    2. その他すべてのキャンセルされたイベントは、削除されたイベントを表します。クライアントは、ローカルに同期したコピーを削除する必要があります。キャンセルされたイベントは、最終的に表示されなくなります。無期限に利用できるとは限りません。

      削除されたイベントについては、id フィールドに値が入力されることのみが保証されます。

    主催者のカレンダーには、キャンセルされた予定の詳細(概要、場所など)が引き続き表示されるので、その予定を復元(削除を取り消す)することができます。同様に、ユーザーが招待された予定やユーザーが手動で削除した予定にも、引き続き詳細情報が表示されます。ただし、showDeleted を false に設定した増分同期リクエストでは、これらの詳細は返されません。

    予定の主催者が変更されたときに(move 操作などにより)、元の主催者が参加者リストに含まれていなかった場合、その予定はキャンセルされ、id フィールドのみに値が入力されることが保証されます。

書き込み可能
summary string イベントのタイトル。 書き込み可能
transparency string その予定によってカレンダーの時間がブロックされるかどうか。省略可。有効な値は次のとおりです。
  • opaque」- デフォルト値。その予定によって、カレンダーの時間がブロックされる。これは、カレンダー UI で [外部情報を表示] を [予定あり] に設定するのと同じです。
  • transparent」- この予定によってカレンダーの時間がブロックされない。これは、カレンダー UI で [外部向け表示] を [対応可能] に設定するのと同じ結果になります。
書き込み可能
visibility string イベントの公開設定。省略可。有効な値は次のとおりです。
  • default」- カレンダーの予定にデフォルトの公開設定を使用します。これがデフォルト値です。
  • public」- 予定は一般公開され、予定の詳細はカレンダーのすべての閲覧者に公開されます。
  • private」- このイベントは非公開であり、イベント参加者のみがイベントの詳細を閲覧できます。
  • confidential」- この予定は非公開である。この値は、互換性の理由から提供されています。
書き込み可能

レスポンス

成功すると、このメソッドはレスポンスの本文でイベント リソースを返します。

注: このメソッドで使用可能なコード例では、サポートされているプログラミング言語すべての例を示しているわけではありません(サポートされている言語の一覧については、クライアント ライブラリ ページをご覧ください)。

Java

Java クライアント ライブラリを使用します。

import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.Event;
import com.google.api.services.calendar.model.EventAttendee;
import com.google.api.services.calendar.model.EventDateTime;
import com.google.api.client.util.DateTime;

import java.util.Date;
// ...

// Initialize Calendar service with valid OAuth credentials
Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
    .setApplicationName("applicationName").build();

// Create and initialize a new event (could also retrieve an existing event)
Event event = new Event();
event.setICalUID("originalUID");

Event.Organizer organizer = new Event.Organizer();
organizer.setEmail("organizerEmail");
organizer.setDisplayName("organizerDisplayName");
event.setOrganizer(organizer);

ArrayList<EventAttendee> attendees = new ArrayList<EventAttendee>();
attendees.add(new EventAttendee().setEmail("attendeeEmail"));
// ...
event.setAttendees(attendees);

Date startDate = new Date();
Date endDate = new Date(startDate.getTime() + 3600000);
DateTime start = new DateTime(startDate, TimeZone.getTimeZone("UTC"));
event.setStart(new EventDateTime().setDateTime(start));
DateTime end = new DateTime(endDate, TimeZone.getTimeZone("UTC"));
event.setEnd(new EventDateTime().setDateTime(end));

// Import the event into a calendar
Event importedEvent = service.events().calendarImport('primary', event).execute();

System.out.println(importedEvent.getId());

Python

Python クライアント ライブラリを使用します。

event = {
  'summary': 'Appointment',
  'location': 'Somewhere',
  'organizer': {
    'email': 'organizerEmail',
    'displayName': 'organizerDisplayName'
  },
  'start': {
    'dateTime': '2011-06-03T10:00:00.000-07:00'
  },
  'end': {
    'dateTime': '2011-06-03T10:25:00.000-07:00'
  },
  'attendees': [
    {
      'email': 'attendeeEmail',
      'displayName': 'attendeeDisplayName',
    },
    # ...
  ],
  'iCalUID': 'originalUID'
}

imported_event = service.events().import_(calendarId='primary', body=event).execute()

print imported_event['id']

PHP

PHP クライアント ライブラリを使用します。

$event = new Google_Service_Calendar_Event();
$event->setSummary('Appointment');
$event->setLocation('Somewhere');
$start = new Google_Service_Calendar_EventDateTime();
$start->setDateTime('2011-06-03T10:00:00.000-07:00');
$event->setStart($start);
$end = new Google_Service_Calendar_EventDateTime();
$end->setDateTime('2011-06-03T10:25:00.000-07:00');
$event->setEnd($end);
$attendee1 = new Google_Service_Calendar_EventAttendee();
$attendee1->setEmail('attendeeEmail');
// ...
$attendees = array($attendee1,
                   // ...,
                  );
$event->attendees = $attendees;
$organizer = new Google_Service_Calendar_EventOrganizer();
$organizer->setEmail('organizerEmail');
$organizer->setDisplayName('organizerDisplayName');
$event->setOrganizer($organizer);
$event->setICalUID('originalUID');
$importedEvent = $service->events->import('primary', $event);

echo $importedEvent->getId();

Ruby

Ruby クライアント ライブラリを使用します。

event = Google::Apis::CalendarV3::Event.new(
  summary: 'Appointment',
  location: 'Somewhere',
  organizer: {
    email: 'organizerEmail',
    display_name: 'organizerDisplayName'
  },
  start: {
    date_time: '2011-06-03T10:00:00.000-07:00'
  },
  end: {
    date_time: '2011-06-03T10:25:00.000-07:00'
  },
  attendees: [
    {
      email: 'attendeeEmail',
      display_name: 'attendeeDisplayName',
    },
    # ...
  ],
  i_cal_uid: 'originalUID'
)
result = client.import_event('primary', event)
print result.id

試してみよう:

以下の API Explorer を使用して、ライブデータに対してこのメソッドを呼び出し、レスポンスを確認してください。