Events: import

Импортирует событие. Эта операция используется для добавления частной копии существующего события в календарь. Импортировать можно только события с eventType по default .

Устаревшее поведение: если импортируется событие, не являющееся default , его тип будет изменен на default , а все свойства, специфичные для типа события, которые оно может иметь, будут удалены.

Попробуйте сейчас или посмотрите пример .

Запрос

HTTP-запрос

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

Параметры

Имя параметра Ценить Описание
Параметры пути
calendarId string Идентификатор календаря. Чтобы получить идентификаторы календаря, вызовите метод CalendarList.list . Если вы хотите получить доступ к основному календарю вошедшего в систему пользователя, используйте ключевое слово « primary ».
Необязательные параметры запроса
conferenceDataVersion integer Номер версии данных конференции, поддерживаемых клиентом API. Версия 0 предполагает отсутствие поддержки данных конференции и игнорирует данные конференции в теле события. Версия 1 обеспечивает поддержку копирования ConferenceData, а также создание новых конференций с использованием поля createRequest в ConferenceData. Значение по умолчанию — 0. Допустимые значения — от 0 до 1 включительно.
supportsAttachments boolean Поддерживает ли клиент API, выполняющий операцию, вложения событий. Необязательный. По умолчанию установлено значение Ложь.

Авторизация

Для этого запроса требуется авторизация хотя бы в одной из следующих областей:

Объем
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events

Дополнительную информацию см. на странице аутентификации и авторизации .

Тело запроса

В теле запроса укажите ресурс Events со следующими свойствами:

Имя свойства Ценить Описание Примечания
Обязательные свойства
end nested object (эксклюзивное) время окончания события. Для повторяющегося события это время окончания первого экземпляра.
iCalUID string Уникальный идентификатор события, определенный в RFC5545 . Он используется для уникальной идентификации событий в системах календаря и должен быть указан при импорте событий с помощью метода импорта .

Обратите внимание, что iCalUID и id не идентичны, и во время создания события следует указывать только один из них. Одно из различий в их семантике заключается в том, что в повторяющихся событиях все вхождения одного события имеют разные id , хотя все они используют одни и те же iCalUID . Чтобы получить событие, используя его iCalUID , вызовите метод event.list, используя параметр iCalUID . Чтобы получить событие по его id , вызовите метод event.get .

start nested object (включительно) время начала события. Для повторяющегося события это время начала первого экземпляра.
Дополнительные свойства
anyoneCanAddSelf boolean Может ли кто-либо пригласить себя на мероприятие (устарело). Необязательный. По умолчанию установлено значение Ложь. записываемый
attachments[]. fileUrl string URL-ссылка на вложение.

Для добавления вложений файлов Google Диска используйте тот же формат, что и в свойстве alternateLink ресурса Files в Drive API.

Требуется при добавлении вложения.

записываемый
attendees[] list Участники мероприятия. Дополнительную информацию о планировании мероприятий с другими пользователями календаря см. в руководстве «Мероприятия с участниками» . Учетным записям служб необходимо использовать делегирование полномочий на уровне домена для заполнения списка участников. записываемый
attendees[]. additionalGuests integer Количество дополнительных гостей. Необязательный. Значение по умолчанию — 0. записываемый
attendees[]. comment string Ответный комментарий участника. Необязательный. записываемый
attendees[]. displayName string Имя участника, если имеется. Необязательный. записываемый
attendees[]. email string Адрес электронной почты участника, если имеется. Это поле должно присутствовать при добавлении участника. Это должен быть действительный адрес электронной почты согласно RFC5322 .

Требуется при добавлении участника.

записываемый
attendees[]. optional boolean Является ли это необязательным участником. Необязательный. По умолчанию установлено значение Ложь. записываемый
attendees[]. resource boolean Является ли участник ресурсом. Можно задать только тогда, когда участник добавляется к событию впервые. Последующие изменения игнорируются. Необязательный. По умолчанию установлено значение Ложь. записываемый
attendees[]. responseStatus string Статус ответа участника. Возможные значения:
  • « needsAction » — участник не ответил на приглашение (рекомендуется для новых событий).
  • « declined » — участник отклонил приглашение.
  • « tentative » — участник предварительно принял приглашение.
  • « accepted » — участник принял приглашение.
записываемый
attendeesOmitted boolean Возможно, участники были исключены из представления мероприятия. При получении события это может быть связано с ограничением, заданным параметром запроса maxAttendee . При обновлении события это можно использовать только для обновления ответа участника. Необязательный. По умолчанию установлено значение Ложь. записываемый
colorId string Цвет мероприятия. Это идентификатор, ссылающийся на запись в разделе event определения цветов (см. конечную точку цветов ). Необязательный. записываемый
conferenceData nested object Информация, связанная с конференцией, например сведения о конференции Google Meet. Для создания новых сведений о конференции используйте поле createRequest . Чтобы сохранить изменения, не забудьте установить для параметра запроса conferenceDataVersion значение 1 для всех запросов на изменение событий. записываемый
description string Описание события. Может содержать HTML. Необязательный. записываемый
end. date date Дата в формате «гггг-мм-дд», если это событие длится целый день. записываемый
end. dateTime datetime Время в виде объединенного значения даты и времени (отформатированное в соответствии с RFC3339 ). Смещение часового пояса требуется, если только часовой пояс не указан явно в timeZone . записываемый
end. timeZone string Часовой пояс, в котором указано время. (В формате имени базы данных часовых поясов IANA, например «Европа/Цюрих».) Для повторяющихся событий это поле является обязательным и указывает часовой пояс, в котором повторяется. Для отдельных событий это поле является необязательным и указывает настраиваемый часовой пояс для начала/окончания события. записываемый
extendedProperties. private object Свойства, которые являются частными для копии мероприятия, отображаемой в этом календаре. записываемый
extendedProperties. shared object Свойства, которые являются общими для копий мероприятия в календарях других участников. записываемый
focusTimeProperties nested object Данные о событии «Время фокусировки». Используется, если eventType имеет значение focusTime . записываемый
gadget. display string Режим отображения гаджета. Устарело. Возможные значения:
  • « icon » — гаджет отображается рядом с названием мероприятия в представлении календаря.
  • « chip » — гаджет отображается при нажатии на событие.
записываемый
gadget. height integer Высота гаджета в пикселях. Высота должна быть целым числом больше 0. Необязательно. Устарело. записываемый
gadget. preferences object Предпочтения. записываемый
gadget. title string Название гаджета. Устарело. записываемый
gadget. type string Тип гаджета. Устарело. записываемый
gadget. width integer Ширина гаджета в пикселях. Ширина должна быть целым числом больше 0. Необязательно. Устарело. записываемый
guestsCanInviteOthers boolean Могут ли участники, кроме организатора, приглашать других на мероприятие. Необязательный. По умолчанию установлено значение «Истина». записываемый
guestsCanModify boolean Могут ли участники, кроме организатора, изменять мероприятие. Необязательный. По умолчанию установлено значение Ложь. записываемый
guestsCanSeeOtherGuests boolean Могут ли другие участники, кроме организатора, видеть участников мероприятия. Необязательный. По умолчанию установлено значение «Истина». записываемый
location string Географическое местоположение мероприятия в виде текста в произвольной форме. Необязательный. записываемый
organizer object Организатор мероприятия. Если организатор также является участником, это обозначается отдельной записью в attendees , при этом в поле organizer установлено значение True. Чтобы сменить организатора, используйте операцию перемещения . Только для чтения, кроме случаев импорта события. записываемый
organizer. displayName string Имя организатора, если имеется. записываемый
organizer. email string Адрес электронной почты организатора, если имеется. Это должен быть действительный адрес электронной почты согласно RFC5322 . записываемый
originalStartTime. date date Дата в формате «гггг-мм-дд», если это событие длится целый день. записываемый
originalStartTime. dateTime datetime Время в виде объединенного значения даты и времени (отформатированное в соответствии с RFC3339 ). Смещение часового пояса требуется, если только часовой пояс не указан явно в timeZone . записываемый
originalStartTime. timeZone string Часовой пояс, в котором указано время. (В формате имени базы данных часовых поясов IANA, например «Европа/Цюрих».) Для повторяющихся событий это поле является обязательным и указывает часовой пояс, в котором повторяется. Для отдельных событий это поле является необязательным и указывает настраиваемый часовой пояс для начала/окончания события. записываемый
outOfOfficeProperties nested object Данные о событиях отсутствия на работе. Используется, если eventType имеет значение outOfOffice . записываемый
recurrence[] list Список строк RRULE, EXRULE, RDATE и EXDATE для повторяющегося события, как указано в RFC5545 . Обратите внимание, что строки DTSTART и DTEND в этом поле не допускаются; Время начала и окончания события указывается в полях start и end . Это поле опускается для отдельных событий или экземпляров повторяющихся событий. записываемый
reminders. overrides[] list Если событие не использует напоминания по умолчанию, здесь перечислены напоминания, специфичные для этого события, или, если оно не установлено, это означает, что для этого события напоминания не установлены. Максимальное количество напоминаний о переопределении — 5. записываемый
reminders.overrides[]. method string Метод, используемый в этом напоминании. Возможные значения:
  • « email » — напоминания отправляются по электронной почте.
  • « popup » — напоминания отправляются через всплывающее окно пользовательского интерфейса.

Требуется при добавлении напоминания.

записываемый
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 Дата в формате «гггг-мм-дд», если это событие длится целый день. записываемый
start. dateTime datetime Время в виде объединенного значения даты и времени (отформатированное в соответствии с RFC3339 ). Смещение часового пояса требуется, если только часовой пояс не указан явно в timeZone . записываемый
start. timeZone string Часовой пояс, в котором указано время. (В формате имени базы данных часовых поясов IANA, например «Европа/Цюрих».) Для повторяющихся событий это поле является обязательным и указывает часовой пояс, в котором повторяется. Для отдельных событий это поле является необязательным и указывает настраиваемый часовой пояс для начала/окончания события. записываемый
status string Статус мероприятия. Необязательный. Возможные значения:
  • « confirmed » — Событие подтверждено. Это статус по умолчанию.
  • « tentative » — Событие предварительно подтверждено.
  • « cancelled » — Событие отменено (удалено). Метод list возвращает отмененные события только при добавочной синхронизации (если указаны syncToken или updatedMin ) или если для флага showDeleted установлено значение true . Метод get всегда возвращает их.

    Статус «Отменено» представляет собой два разных состояния в зависимости от типа события:

    1. Отмененные исключения неотмененного повторяющегося события указывают на то, что этот экземпляр больше не должен быть представлен пользователю. Клиенты должны хранить эти события в течение всего времени существования родительского повторяющегося события.

      В отмененных исключениях гарантированно будут заполнены только значения полей id , recurringEventId и originalStartTime . Остальные поля могут быть пустыми.

    2. Все остальные отмененные мероприятия представляют собой удаленные мероприятия. Клиентам следует удалить свои локально синхронизированные копии. Такие отмененные мероприятия со временем исчезнут, поэтому не рассчитывайте на то, что они будут доступны бесконечно.

      У удаленных событий гарантированно будет заполнено только поле id .

    В календаре организатора отмененные мероприятия продолжают отображать подробную информацию о мероприятии (сводка, место и т. д.), чтобы их можно было восстановить (восстановить удаление). Аналогично, события, на которые пользователь был приглашен и которые он удалил вручную, продолжают предоставлять подробную информацию. Однако запросы добавочной синхронизации с showDeleted , для которого установлено значение false, не вернут эти сведения.

    Если событие меняет своего организатора (например, посредством операции перемещения ), а исходного организатора нет в списке участников, после себя останется отмененное мероприятие, в котором гарантированно будет заполнено только поле id .

записываемый
summary string Название мероприятия. записываемый
transparency string Блокирует ли событие время в календаре. Необязательный. Возможные значения:
  • « opaque » — значение по умолчанию. Событие блокирует время в календаре. Это эквивалентно настройке «Показывать, что я занят» в пользовательском интерфейсе календаря.
  • « transparent » — событие не блокирует время в календаре. Это эквивалентно настройке параметра «Показать как» в пользовательском интерфейсе календаря для параметра «Доступно» .
записываемый
visibility string Видимость мероприятия. Необязательный. Возможные значения:
  • « default » — использует видимость по умолчанию для событий в календаре. Это значение по умолчанию.
  • « public » — мероприятие является общедоступным, и подробности о нем видны всем читателям календаря.
  • « private » — мероприятие является частным, и только его участники могут просматривать сведения о нем.
  • « confidential » — мероприятие является частным. Это значение предоставлено из соображений совместимости.
записываемый

Ответ

В случае успеха этот метод возвращает ресурс Events в теле ответа.

Примеры

Примечание. Примеры кода, доступные для этого метода, не представляют все поддерживаемые языки программирования (список поддерживаемых языков см. на странице клиентских библиотек ).

Ява

Использует клиентскую библиотеку 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 .

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 .

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-интерфейс ниже, чтобы вызвать этот метод для реальных данных и просмотреть ответ.