Как пригласить пользователей на мероприятие

Как создать мероприятие

Если у вас есть доступ на запись к Google Календарю организатора, вы можете добавить мероприятие с помощью метода Events: insert.

Этот метод добавляет мероприятие непосредственно в календарь организатора, независимо от его настроек добавления приглашений.

Добавить участников

С помощью этого метода вы также можете добавить участников в мероприятие, указав их адреса электронной почты в свойстве attendees мероприятия. Все изменения, которые организатор вносит в мероприятие, передаются участникам.

Участники получают приглашение с адреса электронной почты организатора. Пользователи Календаря получают приглашение по электронной почте или в календаре в зависимости от настроек мероприятий в Календаре:

  • Если у них выбрана настройка From everyone, мероприятие добавляется в их календарь напрямую.
  • Если у них выбран параметр Only if the sender is known, мероприятие добавляется в календарь, только если они ранее взаимодействовали с организатором, если организатор входит в ту же организацию или если организатор есть в их Google Контактах. Если организатор им неизвестен, они могут нажать Добавить в календарь или ответить на приглашение, нажав Да или Может быть в письме с приглашением. Затем мероприятие добавляется в их календарь.
  • Если у пользователей включен параметр When I respond in email, приглашения не добавляются в их календари, пока они не ответят на них, нажав Да, Может быть или Нет в электронном письме с приглашением.

Подробнее о том, как приглашения добавляются в Календарь…

Показывать мероприятие непосредственно в календарях участников.

Чтобы мероприятие отображалось в календарях участников независимо от их настроек, вы можете установить ответ участника или импортировать копию мероприятия непосредственно в календарь участника. Для обоих способов вам потребуется доступ с правом записи к календарям участников. Если у вас его нет, попробуйте добавить организатора в контакты участника. Для этого может потребоваться доступ с правом записи к контактам участника.

Установить ответ участника

Чтобы установить ответ участника на приглашение на мероприятие, выполните следующие действия:

  1. Создайте мероприятие в календаре организатора и добавьте участников (см. раздел Добавление участников).
  2. Используйте метод Events: update, чтобы задать ответ участника (accepted или tentative). У вас должен быть доступ с правом на запись к календарю участника. Мероприятие может появиться в календаре участника с небольшой задержкой. Подробнее о том, как использовать метод Events: update…

Этот метод добавляет мероприятие в календарь участника, но участник все равно может увидеть в своем электронном письме баннер о том, что приглашение было отправлено с ранее неизвестного ему адреса.

Импортировать копию мероприятия непосредственно в календарь участника.

Чтобы импортировать копию мероприятия в календарь участника, выполните следующие действия:

  1. Если у вас есть доступ на запись к календарю организатора, импортируйте копию мероприятия с помощью метода Events: import.
  2. Импортируйте ещё одну копию того же мероприятия в календарь участника с помощью Events: import. У вас должен быть доступ с правом на запись к календарю участника. Используйте один и тот же идентификатор мероприятия (iCalUID) для копий организатора и участника и обязательно укажите организатора в копии участника.

При этом участник увидит мероприятие в своем календаре, но не получит электронное письмо с приглашением от Календаря.

Добавьте организатора в контакты участника.

Если у вас нет учетных данных участника, вы можете попросить его или его организацию заранее добавить адрес электронной почты организатора в Google Контакты, чтобы мероприятие показывалось непосредственно в календаре участника. Новый контакт может начать действовать с небольшой задержкой.

  • Попросите пользователя Календаря добавить организатора в Google Контакты.
  • Если участники принадлежат к организации, вы можете попросить администратора организации программно добавить адреса электронной почты в контакты пользователей. Попросите администратора включить делегирование доступа к данным в домене, выдать себя за пользователей и создать контакты для каждого пользователя с помощью метода People: createContact. Это позволит автоматически добавлять в календари пользователей будущие приглашения от этих адресов электронной почты.
  • Если у вас есть доступ к контактам участника, вы также можете добавить адрес электронной почты организатора в контакты участника с помощью метода People: createContact.

Как пригласить пользователей по электронной почте

Если у вас нет прав на запись в календарь организатора или вы не хотите раскрывать его адрес электронной почты, используйте протокол iCalendar (RFC-5545), чтобы приглашать пользователей по электронной почте с помощью файла ICS.

Если у участника, использующего Календарь, включен параметр Only if the sender is known и он ранее не взаимодействовал с адресом или не сохранил его как известный, приглашение не будет добавлено в его календарь, пока он не нажмет Добавить в календарь или не ответит на приглашение.

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

Используйте следующий шаблон ссылки:


https://calendar.google.com/calendar/r/eventedit?action=TEMPLATE&dates=20230325T224500Z%2F20230326T001500Z&stz=Europe/Brussels&etz=Europe/Brussels&details=EVENT_DESCRIPTION_HERE&location=EVENT_LOCATION_HERE&text=EVENT_TITLE_HERE

обновив следующую информацию:

  • Даты и время начала и окончания. Используйте формат ISO 8601. В примере выше замените 20230325T224500Z и 20230326T001500Z.
  • Часовые пояса начала и окончания. Формат: название из базы данных часовых поясов IANA. Укажите часовые пояса в полях stz и etz.
  • Описание мероприятия. Должно быть закодировано как URL.
  • Место проведения мероприятия. Должно быть закодировано в URL.
  • Название мероприятия. Должно быть закодировано как URL.

Пример

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

Чтобы обеспечить максимальное удобство для пользователей, мы рекомендуем компании предоставить доступ на запись к своему календарю. Это позволит вам добавлять мероприятия непосредственно в календарь компании (Создать мероприятие) и приглашать на них клиентов (Добавить участников). Чтобы мероприятие появилось в календаре пользователя и он получил напоминание о нем, попросите его проверить электронную почту и ответить Да на приглашение сразу после бронирования. После того как они ответят на приглашение, они будут получать уведомления о мероприятии из Календаря в соответствии со своими настройками уведомлений.

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

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

Распространение событий

На диаграмме ниже показано, как это работает. Сначала Иван создает мероприятие в своем основном календаре (и, следовательно, владеет копией организатора). Затем он приглашает дополнительный календарь группы "Уроки виолончели" и Сьюзан, у которой для мероприятий задан параметр Only if the sender is known. Копии для участников создаются в дополнительном календаре группы "Уроки виолончели" и в календаре Сьюзан, если она знает Джека. В противном случае копия в календаре Сьюзан будет создана, когда она ответит на приглашение или укажет, что знает Джека. Когда Сьюзан отвечает, изменение статуса передается организатору, и в его копии обновляется ответ Сьюзан. Эти изменения, внесенные в копию мероприятия организатора, затем распространяются на других участников.

Диаграмма, на которой показана динамика мероприятий и участников

Общие свойства событий

Календарь, в котором создано мероприятие, – это календарь организатора. В этом календаре хранится информация об общем мероприятии, включая идентификатор, время начала и окончания, сводку и описание. Когда эта информация обновляется в календаре организатора, изменения распространяются на копии участников.

Свойства частных мероприятий

Не вся информация передается между всеми копиями мероприятия. Некоторые свойства являются частными, например напоминания, colorId, прозрачность или свойство extendedProperties.private. Эти свойства определяются настройками участника, а не календарем организатора.

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

Единственное изменение мероприятия, которое передается от участников обратно организатору, – это статус ответа участника, хранящийся в свойстве attendees[].responseStatus.