Events: insert

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

Запрос

HTTP-запрос

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

Параметры

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

Отправлять ли уведомления о создании нового события. Обратите внимание, что некоторые электронные письма все равно могут отправляться, даже если вы установите значение false . По умолчанию установлено значение false .
sendUpdates string Отправлять ли уведомления о создании нового события. Обратите внимание, что некоторые электронные письма все равно могут быть отправлены. По умолчанию установлено значение false .

Приемлемые значения:
  • « all »: уведомления отправляются всем гостям.
  • « externalOnly »: уведомления отправляются только гостям, не зарегистрированным в Календаре Google.
  • « none »: уведомления не отправляются.
supportsAttachments boolean Поддерживает ли клиент API, выполняющий операцию, вложения событий. Необязательный. По умолчанию установлено значение Ложь.

Авторизация

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

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

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

Тело запроса

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

Имя свойства Ценить Описание Примечания
Обязательные свойства
end nested object (эксклюзивное) время окончания события. Для повторяющегося события это время окончания первого экземпляра.
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 » — участник принял приглашение.
записываемый
birthdayProperties nested object Данные о дне рождения или специальном событии. Используется, если eventType имеет значение "birthday" . Неизменяемый. записываемый
birthdayProperties. type string Тип дня рождения или особого события. Возможные значения:
  • "anniversary" — годовщина, отличная от дня рождения. Всегда есть на contact .
  • "birthday" — событие, посвященное дню рождения. Это значение по умолчанию.
  • "custom" — особая дата, метка которой дополнительно указывается в поле customTypeName . Всегда есть на contact .
  • "other" — особая дата, не попадающая в другие категории и не имеющая специальной метки. Всегда есть на contact .
  • "self" — собственный день рождения владельца календаря. Не может быть contact .
API календаря поддерживает создание событий только типа "birthday" . Тип нельзя изменить после создания события.
записываемый
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, например «Европа/Цюрих».) Для повторяющихся событий это поле является обязательным и указывает часовой пояс, в котором повторяется. Для отдельных событий это поле является необязательным и указывает настраиваемый часовой пояс для начала/окончания события. записываемый
eventType string Конкретный тип мероприятия. Это нельзя изменить после создания события. Возможные значения:
  • « birthday » — специальное мероприятие, продолжающееся целый день и повторяющееся ежегодно.
  • « default » — регулярное событие или не указано иное.
  • « focusTime » — событие времени фокусировки.
  • « fromGmail » — событие от Gmail. Событие такого типа невозможно создать.
  • « outOfOffice » — событие отсутствия на рабочем месте.
  • « workingLocation » — событие рабочего места.
записываемый
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 Могут ли другие участники, кроме организатора, видеть участников мероприятия. Необязательный. По умолчанию установлено значение «Истина». записываемый
id string Непрозрачный идентификатор события. При создании новых одиночных или повторяющихся событий вы можете указать их идентификаторы. Предоставляемые идентификаторы должны соответствовать следующим правилам:
  • в идентификаторе разрешены символы, используемые в кодировке Base32hex, т. е. строчные буквы av и цифры 0–9, см. раздел 3.1.2 в RFC2938.
  • длина идентификатора должна быть от 5 до 1024 символов.
  • идентификатор должен быть уникальным для каждого календаря
Из-за глобально распределенного характера системы мы не можем гарантировать, что конфликты идентификаторов будут обнаружены во время создания события. Чтобы свести к минимуму риск конфликтов, мы рекомендуем использовать установленный алгоритм UUID, например, описанный в RFC4122 .

Если вы не укажете идентификатор, он будет автоматически сгенерирован сервером.

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

записываемый
location string Географическое местоположение мероприятия в виде текста в произвольной форме. Необязательный. записываемый
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 » — мероприятие является частным. Это значение предоставлено из соображений совместимости.
записываемый
workingLocationProperties nested object Данные о событиях на рабочем месте. записываемый
workingLocationProperties. customLocation object Если присутствует, указывает, что пользователь работает из пользовательского местоположения. записываемый
workingLocationProperties.customLocation. label string Дополнительная этикетка для дополнительной информации. записываемый
workingLocationProperties. homeOffice any value Если присутствует, указывает, что пользователь работает дома. записываемый
workingLocationProperties. officeLocation object Если присутствует, указывает, что пользователь работает из офиса. записываемый
workingLocationProperties.officeLocation. buildingId string Необязательный идентификатор здания. Это должно ссылаться на идентификатор здания в базе данных ресурсов организации. записываемый
workingLocationProperties.officeLocation. deskId string Необязательный идентификатор рабочего места. записываемый
workingLocationProperties.officeLocation. floorId string Необязательный идентификатор этажа. записываемый
workingLocationProperties.officeLocation. floorSectionId string Необязательный идентификатор секции этажа. записываемый
workingLocationProperties.officeLocation. label string Название офиса, отображаемое в веб-клиенте и мобильном клиенте Calendar. Мы рекомендуем вам указать название здания в базе данных ресурсов организации. записываемый
workingLocationProperties. type string Тип рабочего места. Возможные значения:
  • « homeOffice » — Пользователь работает дома.
  • « officeLocation » — пользователь работает из офиса.
  • « customLocation » — пользователь работает из произвольного местоположения.
Любые подробности указываются в подполе указанного имени, но это поле может отсутствовать, если оно пустое. Любые другие поля игнорируются.

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

записываемый

Ответ

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

Примеры

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

Ява

Использует клиентскую библиотеку Java .

// Refer to the Java quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/java
// Change the scope to CalendarScopes.CALENDAR and delete any stored
// credentials.

Event event = new Event()
    .setSummary("Google I/O 2015")
    .setLocation("800 Howard St., San Francisco, CA 94103")
    .setDescription("A chance to hear more about Google's developer products.");

DateTime startDateTime = new DateTime("2015-05-28T09:00:00-07:00");
EventDateTime start = new EventDateTime()
    .setDateTime(startDateTime)
    .setTimeZone("America/Los_Angeles");
event.setStart(start);

DateTime endDateTime = new DateTime("2015-05-28T17:00:00-07:00");
EventDateTime end = new EventDateTime()
    .setDateTime(endDateTime)
    .setTimeZone("America/Los_Angeles");
event.setEnd(end);

String[] recurrence = new String[] {"RRULE:FREQ=DAILY;COUNT=2"};
event.setRecurrence(Arrays.asList(recurrence));

EventAttendee[] attendees = new EventAttendee[] {
    new EventAttendee().setEmail("lpage@example.com"),
    new EventAttendee().setEmail("sbrin@example.com"),
};
event.setAttendees(Arrays.asList(attendees));

EventReminder[] reminderOverrides = new EventReminder[] {
    new EventReminder().setMethod("email").setMinutes(24 * 60),
    new EventReminder().setMethod("popup").setMinutes(10),
};
Event.Reminders reminders = new Event.Reminders()
    .setUseDefault(false)
    .setOverrides(Arrays.asList(reminderOverrides));
event.setReminders(reminders);

String calendarId = "primary";
event = service.events().insert(calendarId, event).execute();
System.out.printf("Event created: %s\n", event.getHtmlLink());

Питон

Использует клиентскую библиотеку Python .

# Refer to the Python quickstart on how to setup the environment:
# https://developers.google.com/calendar/quickstart/python
# Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
# stored credentials.

event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': False,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
}

event = service.events().insert(calendarId='primary', body=event).execute()
print 'Event created: %s' % (event.get('htmlLink'))

PHP

Использует клиентскую библиотеку PHP .

// Refer to the PHP quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/php
// Change the scope to Google_Service_Calendar::CALENDAR and delete any stored
// credentials.

$event = new Google_Service_Calendar_Event(array(
  'summary' => 'Google I/O 2015',
  'location' => '800 Howard St., San Francisco, CA 94103',
  'description' => 'A chance to hear more about Google\'s developer products.',
  'start' => array(
    'dateTime' => '2015-05-28T09:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'end' => array(
    'dateTime' => '2015-05-28T17:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'recurrence' => array(
    'RRULE:FREQ=DAILY;COUNT=2'
  ),
  'attendees' => array(
    array('email' => 'lpage@example.com'),
    array('email' => 'sbrin@example.com'),
  ),
  'reminders' => array(
    'useDefault' => FALSE,
    'overrides' => array(
      array('method' => 'email', 'minutes' => 24 * 60),
      array('method' => 'popup', 'minutes' => 10),
    ),
  ),
));

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
printf('Event created: %s\n', $event->htmlLink);

Руби

Использует клиентскую библиотеку Ruby .

event = Google::Apis::CalendarV3::Event.new(
  summary: 'Google I/O 2015',
  location: '800 Howard St., San Francisco, CA 94103',
  description: 'A chance to hear more about Google\'s developer products.',
  start: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T09:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  end: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T17:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  recurrence: [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  attendees: [
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'lpage@example.com'
    ),
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'sbrin@example.com'
    )
  ],
  reminders: Google::Apis::CalendarV3::Event::Reminders.new(
    use_default: false,
    overrides: [
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'email',
        minutes: 24 * 60
      ),
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'popup',
        minutes: 10
      )
    ]
  )
)

result = client.insert_event('primary', event)
puts "Event created: #{result.html_link}"

.СЕТЬ

Использует клиентскую библиотеку .NET .

// Refer to the .NET quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/dotnet
// Change the scope to CalendarService.Scope.Calendar and delete any stored
// credentials.

Event newEvent = new Event()
{
    Summary = "Google I/O 2015",
    Location = "800 Howard St., San Francisco, CA 94103",
    Description = "A chance to hear more about Google's developer products.",
    Start = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T09:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    End = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T17:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    Recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" },
    Attendees = new EventAttendee[] {
        new EventAttendee() { Email = "lpage@example.com" },
        new EventAttendee() { Email = "sbrin@example.com" },
    },
    Reminders = new Event.RemindersData()
    {
        UseDefault = false,
        Overrides = new EventReminder[] {
            new EventReminder() { Method = "email", Minutes = 24 * 60 },
            new EventReminder() { Method = "sms", Minutes = 10 },
        }
    }
};

String calendarId = "primary";
EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId);
Event createdEvent = request.Execute();
Console.WriteLine("Event created: {0}", createdEvent.HtmlLink);

Идти

Использует клиентскую библиотеку Go .

// Refer to the Go quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/go
// Change the scope to calendar.CalendarScope and delete any stored credentials.

event := &calendar.Event{
  Summary: "Google I/O 2015",
  Location: "800 Howard St., San Francisco, CA 94103",
  Description: "A chance to hear more about Google's developer products.",
  Start: &calendar.EventDateTime{
    DateTime: "2015-05-28T09:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  End: &calendar.EventDateTime{
    DateTime: "2015-05-28T17:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  Recurrence: []string{"RRULE:FREQ=DAILY;COUNT=2"},
  Attendees: []*calendar.EventAttendee{
    &calendar.EventAttendee{Email:"lpage@example.com"},
    &calendar.EventAttendee{Email:"sbrin@example.com"},
  },
}

calendarId := "primary"
event, err = srv.Events.Insert(calendarId, event).Do()
if err != nil {
  log.Fatalf("Unable to create event. %v\n", err)
}
fmt.Printf("Event created: %s\n", event.HtmlLink)

JavaScript

Использует клиентскую библиотеку JavaScript .

// Refer to the JavaScript quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/js
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'}
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10}
    ]
  }
};

var request = gapi.client.calendar.events.insert({
  'calendarId': 'primary',
  'resource': event
});

request.execute(function(event) {
  appendPre('Event created: ' + event.htmlLink);
});

Node.js

Использует клиентскую библиотеку Node.js.

// Refer to the Node.js quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/node
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
};

calendar.events.insert({
  auth: auth,
  calendarId: 'primary',
  resource: event,
}, function(err, event) {
  if (err) {
    console.log('There was an error contacting the Calendar service: ' + err);
    return;
  }
  console.log('Event created: %s', event.htmlLink);
});

Попробуйте!

Используйте API-обозреватель ниже, чтобы вызвать этот метод для реальных данных и просмотреть ответ.