Events: import

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

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

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

リクエスト

HTTP リクエスト

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

パラメータ

パラメータ名 説明
パスパラメータ
calendarId string カレンダーの識別子。カレンダー 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

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

リクエスト本文

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

プロパティ名 説明 メモ
必須プロパティ
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 時刻が指定されたタイムゾーン。(IANA タイムゾーン データベース名の形式(「Europe/Zurich」など)。定期的な予定の場合、このフィールドは必須です。定期的な予定を展開するタイムゾーンを指定します。単一のイベントの場合、このフィールドはオプションであり、イベントの開始時と終了時のカスタム タイムゾーンを示します。 書き込み可能
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 予定の主催者。主催者が参加者でもある場合は、organizer フィールドが True に設定された attendees の別のエントリで示されます。主催者を変更するには、移動操作を使用します。読み取り専用(イベントをインポートする場合を除く)。 書き込み可能
organizer.displayName string 主催者の名前(ある場合)。 書き込み可能
organizer.email string 主催者のメールアドレス(ある場合)。RFC5322 に従った有効なメールアドレスを指定する必要があります。 書き込み可能
originalStartTime.date date 終日イベントの場合は、「yyyy-mm-dd」形式の日付。 書き込み可能
originalStartTime.dateTime datetime 日時を組み合わせた時刻の時刻(RFC3339 形式)。timeZone でタイムゾーンが明示的に指定されていない限り、タイムゾーン オフセットが必要です。 書き込み可能
originalStartTime.timeZone string 時刻が指定されたタイムゾーン。(IANA タイムゾーン データベース名の形式(「Europe/Zurich」など)。定期的な予定の場合、このフィールドは必須です。定期的な予定を展開するタイムゾーンを指定します。単一のイベントの場合、このフィールドはオプションであり、イベントの開始時と終了時のカスタム タイムゾーンを示します。 書き込み可能
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 時刻が指定されたタイムゾーン。(IANA タイムゾーン データベース名の形式(「Europe/Zurich」など)。定期的な予定の場合、このフィールドは必須です。定期的な予定を展開するタイムゾーンを指定します。単一のイベントの場合、このフィールドはオプションであり、イベントの開始時と終了時のカスタム タイムゾーンを示します。 書き込み可能
status string イベントのステータス。省略可。有効な値は次のとおりです。
  • confirmed」 - イベントが確認されました。これがデフォルトのステータスです。
  • tentative」 - イベントは暫定的に確定されています。
  • cancelled」 - 予定をキャンセル(削除)します。list メソッドは、syncToken または updatedMin が指定されている場合、または showDeleted フラグが true に設定されている場合に、増分同期でのみキャンセルされたイベントを返します。get メソッドは常にそれらを返します。

    キャンセル ステータスは、イベントのタイプに応じて 2 つの異なるステータスを表します。

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

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

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

      削除されたイベントについては、必ず id フィールドに値が設定されます。

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

    予定の主催者が(移動操作などで)変更され、元の主催者が参加者リストにない場合、その予定はキャンセルされ、id フィールドにのみ入力されることが保証されます。

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

レスポンス

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

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

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 を使用して、ライブデータに対してこのメソッドを呼び出し、レスポンスを確認してください。