Events: import

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

イベントをインポートします。このオペレーションは、既存の予定の非公開コピーをカレンダーに追加するために使用されます。 今すぐ試すまたは例を見る

リクエスト

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

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

リクエスト本文

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

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

iCalUIDid はまったく同じではなく、イベント作成時にどちらか 1 つのみを指定する必要があります。セマンティクスの違いの 1 つとして、定期的な予定では、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 タイムゾーン データベース名の形式、例: 「ヨーロッパ/チューリッヒ」)。定期的な予定の場合は、この項目は必須であり、定期的な予定が拡大されるタイムゾーンを指定します。単一イベントの場合、このフィールドはオプションであり、イベントの開始/終了のカスタム タイムゾーンを示します。 書き込み可能
extendedProperties.private object このカレンダーに表示される予定のコピーのみを公開しているプロパティです。 書き込み可能
extendedProperties.shared object 他の参加者のカレンダーの予定のコピー間で共有されるプロパティ。 書き込み可能
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 タイムゾーン データベース名の形式、例: 「ヨーロッパ/チューリッヒ」)。定期的な予定の場合は、この項目は必須であり、定期的な予定が拡大されるタイムゾーンを指定します。単一イベントの場合、このフィールドはオプションであり、イベントの開始/終了のカスタム タイムゾーンを示します。 書き込み可能
recurrence[] list 定期的な予定について、RFC5545 で指定されている RRULE、EXRULE、RDATE、EXDATE 行のリスト。このフィールドでは DTSTART 行と DTEND 行を使用できません。イベントの開始時刻と終了時刻は start フィールドと end フィールドに指定します。1 件の予定または定期的な予定の一部の回では、このフィールドを省略します。 書き込み可能
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 タイムゾーン データベース名の形式、例: 「ヨーロッパ/チューリッヒ」)。定期的な予定の場合は、この項目は必須であり、定期的な予定が拡大されるタイムゾーンを指定します。単一イベントの場合、このフィールドはオプションであり、イベントの開始/終了のカスタム タイムゾーンを示します。 書き込み可能
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」 - 予定は非公開です。この値は、互換性の理由から提供されます。
書き込み可能

レスポンス

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

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

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