Типы событий

На этой странице объясняется свойство eventType и спецификации типов событий, доступных в API Календаря Google.

Календарь Google позволяет пользователям создавать общие события, а также события, разработанные для конкретных случаев использования и с настраиваемыми свойствами.

Тип события можно найти в следующих местах API:

  • Все события возвращаются с eventType .
  • eventType необходимо задать при создании или обновлении ресурса события. Если не установлено, будет использоваться тип 'default' .
  • eventTypes можно указать в вызове Events:list для получения списка событий определенных типов. Если тип не указан, будут возвращены все типы событий.
  • eventTypes можно указать в вызове Events:watch , чтобы подписаться на обновления событий определенных типов. Если тип не указан, запрос приведет к подписке на все типы событий.

Событие по умолчанию

События с типом события default создаются и используются в качестве одного из основных ресурсов API Календаря Google. Они поддерживают широкий спектр свойств , которые можно использовать для дальнейшей настройки события.

См. раздел Создание событий , чтобы начать работу с событиями Календаря Google.

День рождения

Дни рождения — это особые мероприятия, продолжающиеся целый день и повторяющиеся ежегодно. Они имеют следующие характеристики:

  • eventType установлено значение 'birthday' .
  • Поля start и end должны определять событие на весь день, которое охватывает ровно один день.
  • Значение поля visibility должно быть 'private' .
  • Значение поля transparency должно быть 'transparent' .
  • Необходимо иметь ежегодное повторение, что означает, что поле recurrence должно быть 'RRULE:FREQ=YEARLY' . События дня рождения, приходящиеся на 29 февраля, должны иметь следующее правило повторения: 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1' .
  • Может иметь colorId , summary и reminders .
  • Не поддерживайте другие свойства событий.

События из Gmail

События, автоматически генерируемые из Gmail, имеют тип событий 'fromGmail' .

API Календаря Google не позволяет создавать события этого типа с помощью метода вставки .

API позволяет обновлять colorId , reminders , visibility , transparency , status , private и shared расширенные свойства с помощью методов update и patch .

API поддерживает методы get и list для чтения событий из Gmail. Для eventTypes можно установить 'fromGmail' чтобы отображать только события, созданные из Gmail. Если тип не указан, события из Gmail будут перечислены вместе со всеми другими типами событий.

API поддерживает метод отслеживания для подписки на изменения событий из Gmail в Календаре Google. Если тип не указан, будут подписаны все типы событий, включая 'fromGmail' .

События из Gmail можно удалить с помощью метода удаления API Календаря Google.

Изменение организатора мероприятия из Gmail с помощью методов перемещения или обновления не поддерживается.

Время сосредоточения, вне офиса и рабочего места

API Календаря Google можно использовать для создания событий, которые показывают статус пользователей Календаря Google, и управления ими.

Эти функции доступны только в основных календарях и некоторым пользователям Календаря Google. Дополнительные сведения см . в разделе «Управление событиями времени концентрации, отсутствия на работе и рабочего места» .

Изучите типы событий в скрипте Google Apps

Google Apps Script — это язык облачных сценариев на основе JavaScript, который позволяет создавать бизнес-приложения, интегрируемые с Google Workspace. Скрипты разрабатываются в редакторе кода на базе браузера, хранятся и запускаются на серверах Google. См. также краткое руководство по Google Apps Script, чтобы начать использовать Apps Script для отправки запросов в API Календаря Google.

В следующих инструкциях описывается, как читать события и управлять ими с помощью Google Calendar API в качестве расширенной службы в Google Apps Script. Полный список ресурсов и методов API Календаря Google см. в справочной документации .

Создадим и настроим скрипт

  1. Создайте скрипт, перейдя по адресу script.google.com/create .
  2. На левой панели рядом с разделом «Службы» нажмите службу».
  3. Выберите API Календаря Google и нажмите «Добавить» .
  4. После включения API появится на левой панели. Доступные методы и классы в API можно просмотреть с помощью ключевого слова Calendar в редакторе.

(Необязательно) Обновите проект Google Cloud.

С каждым проектом Google Apps Script связан проект Google Cloud. Ваш скрипт может использовать проект по умолчанию, который автоматически создает скрипт Google Apps. Если вы хотите использовать собственный проект Google Cloud, см. раздел «Переключение на другой стандартный проект Cloud» . После настройки проекта Google Cloud выберите редактора» слева, чтобы вернуться к редактору кода.

Добавляем код в скрипт

В следующем примере кода показано, как составлять список, читать и создавать события с разными значениями eventType .

  1. Вставьте следующее в редактор кода.

    const CALENDAR_ID = 'CALENDAR_ID' || 'primary';
    
    /** Lists default events. */
    function listDefaultEvents() {
      listEvents('default');
    }
    
    /** Lists events from Gmail. */
    function listEventsFromGmail() {
      listEvents('fromGmail');
    }
    
    /**
      * Lists events with the given event type. If no type is specified, lists all events.
      * See https://developers.google.com/calendar/api/v3/reference/events/list
      */
    function listEvents(eventType = undefined) {
      // Query parameters for the list request.
      const optionalArgs = {
        eventTypes: eventType ? [eventType] : undefined,
        singleEvents: true,
        timeMax: '2024-07-30T00:00:00+01:00',
        timeMin: '2024-07-29T00:00:00+01:00',
      }
      try {
        var response = Calendar.Events.list(CALENDAR_ID, optionalArgs);
        response.items.forEach(event => console.log(event));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
      * Reads the event with the given eventId.
      * See https://developers.google.com/calendar/api/v3/reference/events/get
      */
    function readEvent() {
      try {
        var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID');
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /** Creates a default event. */
    function createDefaultEvent() {
      const event = {
        start: { dateTime: '2024-07-30T10:30:00+01:00'},
        end: { dateTime: '2024-07-30T12:30:00+01:00'},
        description: 'Created from Apps Script.',
        eventType: 'default',
        summary: 'Sample event',
      }
      createEvent(event);
    }
    
    /**
      * Creates a Calendar event.
      * See https://developers.google.com/calendar/api/v3/reference/events/insert
      */
    function createEvent(event) {
    
      try {
        var response = Calendar.Events.insert(event, CALENDAR_ID);
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    

    Замените следующее:

    • CALENDAR_ID : адрес электронной почты календаря, в котором нужно получать и создавать события. Изначально для этой константы установлено значение 'primary' — ключевое слово для доступа к основному календарю вошедшего пользователя. Изменение этого значения позволит вам читать события в календарях других пользователей, к которым у вас есть доступ.
    • EVENT_ID : идентификатор события. Вы можете вызвать Events:list, чтобы получить идентификаторы событий.

Запустите пример кода

  1. Над редактором кода выберите в раскрывающемся меню функцию для запуска и нажмите «Выполнить» .
  2. При первом выполнении вам будет предложено авторизовать доступ. Проверьте и разрешите Apps Script доступ к вашему календарю.
  3. Результаты выполнения скрипта вы можете просмотреть в журнале выполнения , который появляется в нижней части окна.