Создать событие
Если у вас есть права на запись в Google Календарь организатора, вы можете добавить событие, используя метод Events: insert
.
Этот метод добавляет событие непосредственно в календарь организатора, независимо от его настроек добавления приглашений.
Добавить участников
С помощью этого метода вы также можете добавлять участников к тому же мероприятию, добавляя их адреса электронной почты в свойство « attendees
мероприятия. Любые будущие изменения, вносимые организатором в мероприятие, будут распространяться на участников.
Участники получат приглашение с адреса электронной почты организатора. Пользователи Google Календаря получат приглашение по электронной почте и/или в своём календаре, в зависимости от настроек мероприятия в Google Календаре:
- Если у них есть настройка
From everyone
, событие добавляется непосредственно в их календарь. - Если выбран параметр
Only if the sender is known
, мероприятие добавляется непосредственно в календарь, если организатор ранее взаимодействовал с ним, находится в той же организации или есть в его контактах Google . Если организатор неизвестен, можно нажать « Добавить в календарь» или «Подтвердить участие», нажав «Да» или «Возможно» в электронном письме с приглашением. После этого мероприятие добавляется в календарь. - Если у пользователя включена настройка
When I respond in email
, все приглашения не добавляются в его календарь до тех пор, пока пользователь не подтвердит свое участие, нажав «Да» , «Возможно » или «Нет» в пригласительном письме.
Дополнительную информацию о том, как приглашения добавляются в Календарь Google, см. в разделе Управление приглашениями в Календаре .
Отобразить событие непосредственно в календарях участников
Чтобы отобразить мероприятие непосредственно в календарях участников Google Календаря с любыми настройками участника, вы можете настроить RSVP участника или импортировать копию мероприятия непосредственно в календарь участника . Для обоих методов вам потребуется доступ на запись в календари участников; если у вас его нет, рассмотрите возможность добавления организатора в контакты участника , что может потребовать доступа на запись в контакты участника.
Установите RSVP участника
Чтобы настроить RSVP для участников мероприятия, выполните следующие действия:
- Создайте событие в календаре организатора Google Calendar и добавьте участников ( см. выше ).
- Используйте метод
Events: update
чтобы изменить статус RSVP участника наaccepted
илиtentative
. Вам необходимо иметь доступ на запись в календарь участника. Мероприятие может появиться в календаре участника с небольшой задержкой. Подробнее об использовании методаEvents: update
:.
Этот метод добавляет событие в календарь участника, но участник все равно может увидеть в своем электронном письме баннер о том, что приглашение было отправлено с адреса, который ранее ему не был известен.
Импортируйте копию мероприятия непосредственно в календарь участника.
Чтобы импортировать копию события в календарь участника, выполните следующие действия:
- Если у вас есть права записи в Google Календарь организатора, импортируйте копию события с помощью метода
Events: import
:. - Импортируйте ещё одну копию того же мероприятия в календарь участника, используя
Events: import
. Необходимо иметь права на запись в календарь участника. Используйте один и тот же идентификатор мероприятия (iCalUID
) для копий организатора и участника и обязательно укажите организатора в копии участника.
При использовании этого метода участник может увидеть событие в своем календаре, но не получит электронное письмо с приглашением от Календаря Google.
Добавьте организатора в контакты участника
Если у вас нет учётных данных участника, вы можете попросить участника или его организацию заранее добавить адрес электронной почты организатора в свои контакты Google, чтобы мероприятие отображалось непосредственно в их календаре. Добавление нового контакта может занять некоторое время.
- Попросите пользователя Календаря Google добавить организатора в свои контакты Google .
- Если участники принадлежат к организации, вы можете попросить администратора организации программно добавить адреса электронной почты в контакты их пользователей. Попросите администратора включить делегирование на уровне домена , выдать себя за пользователей и использовать метод
People: createContact
для создания контактов для каждого пользователя, чтобы будущие приглашения с этих адресов электронной почты автоматически отображались в календарях пользователей. - Если у вас есть доступ к контактам участника, вы также можете добавить адрес электронной почты организатора в контакты участника, используя метод
People: createContact
.
Пригласить пользователя с адреса электронной почты
Если у вас нет прав на запись в Google Календарь организатора или вы не хотите раскрывать адрес электронной почты организатора, используйте протокол iCalendar ( RFC-5545 ), чтобы пригласить пользователей по электронной почте с помощью файла .ICS.
Если участник является пользователем Календаря Google с настройкой Only if the sender is known
и он ранее не взаимодействовал с адресом или не записывал его как известный ему, приглашение не будет добавлено в его календарь, пока он не нажмет кнопку Добавить в календарь или не подтвердит свое участие в мероприятии.
Предоставьте пользователям ссылку для добавления события
Если вы хотите упростить пользователям Google Календаря добавление события как разового, не обновляя его, вы можете предоставить ссылку на заранее заполненное событие, чтобы пользователь мог добавить его самостоятельно. Этот метод создаст отдельное событие в календаре пользователя, которое вы не сможете обновить, не имея доступа к календарю пользователя.
Используйте следующий шаблон ссылки:
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-календари как самого клиента, так и компании.
Для максимального удобства пользователей мы рекомендуем, чтобы компания предоставила доступ на запись в свой календарь, чтобы вы могли добавить мероприятие непосредственно в календарь компании ( Создать мероприятие ) и пригласить бронирующего клиента на него ( Добавить участников ). Чтобы бронирующий клиент видел мероприятие в своем календаре и получал напоминания о нем, попросите его проверить электронную почту и подтвердить свое участие сразу после бронирования. После подтверждения участия ему будут отправлены уведомления о мероприятии из Google Календаря в соответствии с настройками уведомлений.
Если вы хотите добавить мероприятие непосредственно в календарь бронирующего участника, попросите его добавить в свои контакты адрес электронной почты, с которого он будет получать приглашения. В качестве альтернативы, попросите бронирующего участника предоставить ему доступ с правом записи в свой календарь, чтобы программно подтвердить свое участие ( установить RSVP участника ) и отправить ему уведомление по электронной почте о подтвержденном бронировании.
Если компания не хочет раскрывать свой адрес электронной почты, используйте адрес электронной почты, определенный пользователем, чтобы отправить мероприятие организатору по электронной почте ( Пригласить пользователя с адреса электронной почты ).
Распространение событий
Следующая диаграмма поясняет динамику. Сначала Джек создаёт мероприятие в своём основном календаре (и, следовательно, владеет копией организатора). Затем он приглашает участников из дополнительного календаря группы по игре на виолончели и Сьюзен, у которой настроен параметр Only if the sender is known
». Копии участников создаются во дополнительном календаре группы по игре на виолончели и в календаре Сьюзен, если она знает Джека, в противном случае, когда она подтверждает своё участие или указывает, что знает Джека. Когда Сьюзен отвечает, изменение RSVP распространяется обратно к организатору, обновляя копию организатора ответом Сьюзен. Эти изменения, внесённые в копию мероприятия организатора, затем распространяются на остальных участников.
Общие свойства событий
Календарь, в котором создаётся мероприятие, называется календарём организатора . В этом календаре хранится информация о мероприятии, включая идентификатор, время начала и окончания, краткое содержание и описание. При обновлении этой информации в календаре организатора изменения распространяются на копии мероприятия у участников.
Частные мероприятия
Не вся информация распространяется между всеми копиями мероприятия. Некоторые свойства являются конфиденциальными, например, напоминания, colorId
, прозрачность или свойство extendedProperties.private
. Эти свойства управляются настройками участника, а не календарем организатора.
Участники также могут изменять общие свойства мероприятия. Однако эти изменения отражаются только в их копии и могут быть утеряны, если организатор внесёт изменения.
Единственное изменение события, которое передается от участников обратно организатору, — это статус ответа участника, хранящийся в свойстве attendees[].responseStatus
.