Как добавить событие в календарь подписчика
Мы всегда стараемся делать полезные рассылки, чтобы подписчику было интересно их читать и они всегда были кстати. Постоянно ищем новые решения, которыми будет удобно пользоваться. Нам пришла идея сделать возможность добавлять событие из письма в календарь подписчика, чтобы он смог получить напоминание о его начале.
Как это работает
Подписчик получает письмо с анонсом события, нажимает на кнопку «Добавить в календарь подписчика», и — вуаля! — событие в календаре.

Календарь подписчика напомнит о событии в заданное время. Полезная возможность? Думаю, вполне 🙂
Более того, ссылки на добавление события в календарь можно разместить на сайте и в социальных сетях для большего охвата аудитории.
Кому полезен календарь подписчика
Эта функция пригодится при анонсах различных мероприятий, как офлайн, так и онлайн: семинаров, мастер-классов, вебинаров или начала акции в магазине. Также можно генерировать календари в автоматическом режиме с помощью специальных сервисов и использовать их в триггерных рассылках.
Как мы готовили календарь подписчика
Письма открываются с различных устройств. Пользователю должно быть просто добавить событие в календарь. Нужно было решение для всех платформ. Но оказалось, что существующие стандарты файлов и способы добавления событий не везде одинаково удобны. Поэтому мы использовали два стандарта:
- iCal (.ics).
- Google Calendar.
Google Calendar используется для добавления в календарь от Google и поддерживается Android-устройствами и персональными компьютерами (если у подписчика есть аккаунт Google).
Формат .ics — общий стандарт. Его поддерживают многие календари, в том числе предустановленные на iOS и MacOS. При этом после нажатия на кнопку в письме не нужно совершать никаких промежуточных действий, событие сразу добавляется в календарь.
Также iCal поддерживает календарь Outlook. Он устанавливается вместе с почтовым клиентом. Единственное отличие от iOS и MacOS — событие добавится после открытия загруженного файла на компьютер.
Этих двух типов календарей достаточно, чтобы охватить всю аудиторию.
Реализация
Рассмотрим оба формата, чтобы понять, как их создавать и использовать.
iCal
Формат имеет следующий вид:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:EMX
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Moscow
TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Moscow
X-LIC-LOCATION:Europe/Moscow
BEGIN:STANDARD
TZOFFSETFROM:+0300
TZOFFSETTO:+0300
TZNAME:MSK
DTSTART:19700101T000000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20161024T120422Z
UID:20161017T114611Z-497098942@marudot.com
DTSTART;TZID="Europe/Moscow":20161024T100422
DTEND;TZID="Europe/Moscow":20161024T130422
SUMMARY:вебинар в среду
URL:http://emailmatrix.ru/
DESCRIPTION:
LOCATION:
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT2H
END:VALARM
END:VEVENT
END:VCALENDAR
Его можно прописывать вручную, но проще воспользоваться онлайн-сервисом. Он сделает все настройки за вас. Например, простым и бесплатным сервисом Event Generator.
Следуйте алгоритму ниже, чтобы создать событие в календаре с помощью этого сервиса:
- Переходим по адресу https://tools.emailmatrix.ru/event-generator/. Откроется окно следующего вида:
- Нажимаем «Регистрация», указываем свою почту, пароль и принимаем условия использования. Или же входим через Вконтакте или Фейсбук*.
- Переходим в Event Generator:
и вводим все данные мероприятия.
- Кликаем «Создать событие»:
В письме вы можете прописать ссылку на ics-календарь, что выдал сервис, или же скачать календарь и разместить у себя на сервере.
<a href="http://emailmatrix.ru/_clients/calendar/webinar.ics" target="_blank" style="font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 14px; color: #292929;text-decoration:underline;">iCalendar</a>
Google Calendar
Для создания события в Google-календаре зайдите на страницу календаря. Далее необходимо создать публичный календарь, для этого нажмите на плюсик и выберите «Создать новый календарь»:

Укажите его название и часовой пояс, после чего перейдите в настройки календаря:

И сделайте его общедоступным:

Осталось теперь просто добавить событие, для этого нажмите на кнопку «Создать»:

В открывшемся окне введите всю информацию о событии:

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

Нажмите на «Опубликовать мероприятие». Google даёт на выбор сгенерированный код для кнопки и ссылку отдельно:

Нам нужна ссылка. Берите её и вставляйте в вёрстку 🙂
Или, как в предыдущем варианте, воспользуйтесь Event Generator.
Как автоматизировать
Что же делать, если нужно создавать такие календари в автоматическом режиме — например для анонса вебинара или даты смены коллекции в магазине?
Воспользуйтесь сервисом, который работает через API.
Event Generator Может работать и по API.
- Зайдите в настройки и выберите раздел API-keys:
- Нажмите «Создать новый ключ» и в появившемся окне введите его название. Например, «api для календаря».
- Далее необходимо сформировать запрос в формате json.
Адрес для вызова: | https://tools.emailmatrix.ru/event-generator/ |
Метод вызова | POST |
Тип передачи данных | application/json |
Описание формата JSON вы найдёте в RFC 4627.
Общий формат запроса имеет следующий вид:
{
"apikey" : "уникальный код",
"start" : "2021-09-28 00:00",
"end" : "2021-09-28 01:00",
"timezone" : "Europe/Moscow",
"title" : "Событие",
"url" : "http://emailmatrix.ru",
"location" : "г. Рязань, 390010, ул. Октябрьская, д. 65, H264",
"description" : "Описание события",
"remind" : "2",
"remind_unit" : "h"
}
apikey — ключ из панели настроек;
start — начало события (указывается в формате ГГГГ-ММ-ДД ЧЧ:ММ);
end — окончание события (указывается в формате ГГГГ-ММ-ДД ЧЧ:ММ);
timezone — часовой пояс, например Europe/Moscow;
title — название мероприятия;
url — адрес страницы мероприятия;
location — адрес проведения мероприятия;
description — описание мероприятия;
remind — количество единиц времени для напоминания;
remind_unit — единицы времени для напоминания (m — минуты, h — часы, d — дни).
Параметры, выделенные жирным, являются обязательными.
Формат ответа
В случае успешного создания календаря сервер вернёт:
{
"ok" : "1",
"ics" : "Ссылк на ICS календарь",
"google" : "Ссылка на google календарь",
"start" : "28.09.2018 00:00",
"title" : "Заголовок события",
"json" : "json-строка со всеми переданными параметрами календаря"
}
В случае ошибки сервер вернёт примерно следующий ответ:
{
"ok" : "0",
"error" : "Текст ошибки",
}
Как это выглядит в письме
В качестве примера приводим реализацию в нашем собственном проекте. Для серии бесплатных вебинаров EmailGuide в емейлах «Подтверждение регистрации» и «Напоминание о предстоящем вебинаре» мы предлагаем подписчику добавить событие к себе в календарь:

Полезные рассылки — это не только интересный и актуальный контент, но и удобные функции. Создать собственный календарь и добавить его в рассылку теперь можно очень просто с помощью бесплатного инструмента Event Generator в EMX Tools. Это не единственный сервис, который мы разработали. Об остальных полезных разработках читайте в нашей статье.
* Продукт компании Meta, которая в России признана экстремистской и запрещена