Как добавить событие в календарь подписчика

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

Как это работает

Подписчик получает письмо с анонсом события, нажимает на кнопку «Добавить в календарь подписчика», и — вуаля! — событие в календаре.

Добавляем событие в календарь из емейла

Календарь подписчика напомнит о событии в заданное время. Полезная возможность? Думаю, вполне 🙂
Более того, ссылки на добавление события в календарь можно разместить на сайте и в социальных сетях для большего охвата аудитории.

Кому полезен календарь подписчика

Эта функция пригодится при анонсах различных мероприятий, как офлайн, так и онлайн: семинаров, мастер-классов, вебинаров или начала акции в магазине. Также можно генерировать календари в автоматическом режиме с помощью специальных сервисов и использовать их в триггерных рассылках.

Как мы готовили календарь подписчика

Письма открываются с различных устройств. Пользователю должно быть просто добавить событие в календарь. Нужно было решение для всех платформ. Но оказалось, что существующие стандарты файлов и способы добавления событий не везде одинаково удобны. Поэтому мы использовали два стандарта:

  1. iCal (.ics).
  2. 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.

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

  1. Переходим по адресу https://tools.emailmatrix.ru/event-generator/. Откроется окно следующего вида:

    Регистрация в emx tools
  2. Нажимаем «Регистрация», указываем свою почту, пароль и принимаем условия использования. Или же входим через Вконтакте или Фейсбук.
  3. Переходим в Event Generator:

    Добавляем событие из емейла в календарь

    и вводим все данные мероприятия.

  4. Кликаем «Создать событие»:

    Пример события в емейле

В письме вы можете прописать ссылку на 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.

  1. Зайдите в настройки и выберите раздел API-keys:

    Настройка api keys
  2. Нажмите «Создать новый ключ» и в появившемся окне введите его название. Например, «api для календаря».
  3. Далее необходимо сформировать запрос в формате 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. Это не единственный сервис, который мы разработали. Об остальных полезных разработках читайте в нашей статье.

Проверьте на ошибки вашу рассылку и емейл-стратегию
Пришлём чек-лист на ваш емейл
Имя
Email *
Array
(
    [0] => WP_Term Object
        (
            [term_id] => 1425
            [name] => Статьи
            [slug] => articles
            [term_group] => 0
            [term_taxonomy_id] => 1907
            [taxonomy] => category
            [description] => 
            [parent] => 0
            [count] => 662
            [filter] => raw
            [cat_ID] => 1425
            [category_count] => 662
            [category_description] => 
            [cat_name] => Статьи
            [category_nicename] => articles
            [category_parent] => 0
        )

)
Поделиться статьёй
Подписаться на рассылку