Как добавить дни рождения в гугл календарь из excel
У офисных работников, работающих с Таблицами и Календарем на платформе Google Disk рано или поздно возникает насущная потребность синхронизировать эти два сервиса. Ниже в виде инструкции (а еще ниже в виде инфографики) дается типичный вариант такого решения.
Задача: Есть Гугл Таблица с днями рождения партнеров. Надо сделать так, чтобы мы могли автоматически в Гугл Календаре иметь напоминания об этих днях рождения с извещением на электронную почту владельца Календаря, т.е. на наш e-mail.
Решение: 1) Создаем таблицу дней рождения в Гугл Таблицах; 2) Пишем скрипт на языке Google Apps Script, который считывает таблицу и ретранслирует ее строки в Гугл Календарь в виде напоминаний; 3) Рисуем кнопку в интерфейсе Таблиц и задаем ей связь со скриптом; 4) Запускаем скрипт этой кнопкой.
СОЗДАЕМ ТАБЛИЦУ
ПИШЕМ СКРИПТ
Сохранить код по кнопке [Save] (изображение дискеты).
Код можно просто методом копирования перенести в редактор.
Некоторые пояснения:
- В первой строке фигурирует имя функции – DR – его можно изменить на другое. Его нужно запомнить, пригодится ниже.
- Создается новый календарь с именем «Личный_календарь».
- Если календарь с таким именем уже был, то он очищается от всех напоминаний с начала 2019 года по 2030 год.
- Согласно расписанию дней рождения в Таблице на дни, даты которых фигурируют в третьем столбце, в «Личный_Календарь» выставляются напоминания с email-уведомлением.
Желтым в коде подсвечены те участки, которые должны будут подвергнуться ревизии при изменении формата таблицы, заложенного в постановке задачи:
i = 1 Единица соответствует второй строке, т.к. в программировании счет начинается с нуля. Т.е., если у вас заголовок будет занимать две строки, то 1 надо будет заменить на 2. data[i][0] Это имя. data[i][1] Это фамилия. data[i][2] Это дата рождения. Т.е., если вы изменяете формат и вводите вторым столбцом отчество, сдвигая фамилию и дату вправо, то в коде на месте data[i][2] должно стоять data[i][3], а отчество в виде data[i][1] вставьте после имени, а именно data[i][0] замените на data[i][0]+” ”+data[i][1]. И прежнюю переменную data[i][1], отвечавшую за фамилию, измените на data[i][2].
Таким образом, актуализировать расписание Календаря можно в любое время нажатием на кнопку [ДР]. Прежнее содержание календаря «Личный_Календарь» будет полностью заменяться на расписание, которое присутствует в Таблице.
РИСУЕМ КНОПКУ ДЛЯ СКРИПТА
Для запуска скрипта из интерфейса Таблицы в ней создадим кнопку:
- В меню выбрать: Insert > Drawing.
- Выбрать инструмент Shape.
- Нарисовать фигуру, которая вам нравится. Можно задать на фигуре текст, например, "ДР".
- Сохранить по кнопке [Save and Close].
- В Таблице на появившейся кнопке нажать на три вертикальные точки – это меню кнопки.
- Выбрать пункт Assign Script.
- Выбрать имя функции "DR" (без кавычек и без скобок)
- Сохранить [Ok].
Теперь связь кнопки и скрипта организована.
Потом, при желании изменить имя функции у кнопки, или отредактировать ее дизайн, или удалить, надо нажать на эту кнопку правой кнопкой мыши, чтобы увидеть заветные три вертикальные точки.
ЗАПУСКАЕМ СКРИПТ
- Нажать на созданную кнопку [ДР].
- Если это первый запуск, то Google запросит разрешение на выполнения скрипта. Дать это согласие.
- После выполнения скрипта зайти в Google Календарь.
- Увидеть слева "Личный_Календарь" в списке календарей. Но назначенных событий пока не видно в ячейках дней.
- Переключить галочку "Личный_Календарь" в списке календарей. События появятся.
ИНФОГРАФИКА
Специально для визуалов ниже изображено то, что написано выше:
ВАРИАНТЫ ВЫЗОВА ФУНКЦИИ
Скрипт состоит из функций, часто независимых друг от друга. Вызвать функцию на исполнение можно из другой функции, а также независимо, и Гугл предоставляет 4 варианта такого независимого вызова:
Google Apps Script: переносим расписание из таблицы в календарь
Это можно сделать, перейдя на страницу своего Google Drive.
Рис. 1. Правый клик мышью по рабочему пространству открывает контекстное меню, где нужно выбрать "Google Таблицы" — "Создать пустую таблицу"
В созданную таблицу нужно скопировать имеющееся у Вас расписание, в моем случае это расписание занятий в университете. Важно, чтобы в таблицы были следующие поля:
- Название мероприятия
- Дата мероприятия
- Время начала
- Время конца или длительность (впрочем, это необязательно — в итоге вы сможете установить какое-нибудь общее дефолтное значение длительности мероприятия, например 1 час, или вовсе сделать мероприятие, длящимся целый день)
Вся остальная информация, в моем случае — преподаватель, тип занятия (лекция, семинар и т.д.), может быть отправлена в описание мероприятия.
Рис. 2. Таблица с расписанием
2. Создаем скрипт
2.1. Переходим в редактор скриптов
Нужно создать скрипт, который будет связан с только что созданной таблицей, будет иметь доступ к данным в ней и переносить их в календарь.
Рис. 3. Скрипт создается, через меню "Инструменты", в котором нужно выбрать пункт "Редактор скриптов"
Скрипты разрабатываются на языке JavaScript. Только что созданный скрипт содержит одну пустую функцию myFunction. Писать код можно в ней, но я предпочту дать ей более осмысленное имя SetCalendar.
Рис. 4. Созданный скрипт, дадим функции осмысленное имя — SetCalendar
Над редактором кода имеется выпадающий список, который позволяет выбрать основную функцию, которая будет являться точкой входа в запущенный скрипт. В нашем случае следуем выбрать функцию SetCalendar.
2.2. Разбираемся с отладкой
Часто для отладки скриптов на JavaScript мы выводим различные значения в консоль:
В Google Apps Script логировать значения следует немного иначе. Вместо объекта console следует использовать глобальный объект Logger:
После запуска скрипта, все выведенные в лог значения можно посмотреть из меню "Вид", выбрав пункт "Журналы" или же по сочетанию клавиш Ctrl+Enter:
Рис. 5. Модальное окно с логами последнего запуска скрипта
2.3. Извлекаем информацию о мероприятиях из таблицы
Сразу небольшой кусок кода
Рассмотрим строку 11.
Глобальный объект SpreadsheetApp — глобальный объект, содержащий методы, представляющие собой интерфейс для взаимодействия скрипта с приложением Google Sheets.
Первое, что нужно сделать — получить объект, представляющий активную (открытую в данный момент) страницу документа. Для этого необходимо вызвать метод getActiveSheet.
Метод возвращает объект sheet.
Далее, нужно получить объект range — он представляет собой диапазон ячеек таблицы, из которых мы будем извлекать данные. Это делается путем вызова метода getRange. В качестве параметров передаются:
- Индекс первой строки диапазона
- Индекс первого столбца диапазона
- Количество извлекаемых строк
- Количество извлекаемых столбцов
Строка 15: мы получаем из выбранного выше диапазона ячеек непосредственно данные путем вызова метода getDisplayValues.
2.4. Извлекаем данные из ячеек
Прежде, чем работать с ячейками, удобно было бы дать номерам столбцов имена, дабы избежать ошибок при указании номеров столбцов с интересующими нас данными. Создадим для этого несколько констант:
Вы можете посмотреть какие столбцы стоят в таблице под данными номерами на рисунке 2.
Объект data представляет набор ячеек с данными, которые были получены. Теперь нужно получить данные из отдельных ячеек.
Чтобы получить дату-время начала и окончания занятия, нужно вызывать функцию extractPeriod и передать две строки — дата и временной период, в который длится занятие.
2.7. Создание события в Google Calendar
Сразу небольшой листинг, пояснения будут дальше
Строки 1-6: получаем дату-время начала и окончания занятия, а также склеиваем в одну строку всю дополнительную информацию, которая будет записана в описание мероприятия в календаре.
Далее, к интерфейсу сервиса Google Calendar мы обращаемся через методы глобального объекта CalendarApp.
Посредством метода getCalendarsByName мы получаем массив календарей с указанным именем.
Получить объект-календарь можно также посредством метода getDefaultCalendar, тогда событие будет создано в основном календаре. Однако, я советую зайти в веб-версию Google Calendar и создать новый календарь, в который вы будете экспортировать мероприятия. Во-первых, вы получаете возможность скрывать события этого календаря, выделять события отдельным цветом.
Но, что более важно, в случае, если вы при написании скрипта где-то ошиблись, и экспортировали события как-то неправильно, то вместо того, чтобы удалять все многочисленные неправильные события вручную, вы можете просто удалить календарь, после чего создать новый, пустой, и попробовать запустить новый, исправленный скрипт.
В данном случае я создал календарь "Учеба", и собираюсь создавать события в нем. Поэтому в коде вызывается метод getCalendarsByName и в качестве параметра передается срока "Учеба".
Метод возвращает массив календарей с указанным названием, поэтому нужно взять из этого массива один элемент, в нашем случае нулевой:
У объекта-календаря необходимо вызывать метод createEvent. В качестве параметров нужно передать следующее:
- Название мероприятия (в данном случае название дисциплины)
- Объект Data — дата-время начала мероприятия
- Объект Data — дата-время окончания мероприятия
- Необязательный параметр — объект с дополнительными опциями (в данном случае я заполняю одно поле — description — это описание мероприятия)
Последняя строка в скрипте — задержка на 50 миллисекунд. Во время разработки скрипта и отладки я обнаружил, что иногда при выполнении кода выбрасывается исключение, суть которого в том, что Google Calendar не нравятся частые обращения к сервису, и в описании исключения рекомендуется вставить задержку между вызовами методов API календаря.
3. Итоговый скрипт
Ниже приведен полный скрипт, который получился
4. Немножко скриншотов
Что можно улучшить
- Некоторые значения в коде я просто захардкодил — например, индексы начала таблицы, размеры таблицы, количество строк (количество мероприятий). Теоретически, можно покопаться в API Google Sheets для Google Apps Script и придумать, как выцеплять нужные координаты ячеек автоматически;
- Я никогда плотно не изучал JavaScript, могут быть различные стилистические и прочие недостатки в коде, возможно тот же парсинг даты-времени можно сделать красивее и элегантнее.
Открыт к конструктивной критике, буду рад, если укажете на недостатки, посоветуете что можно улучшить, а что изменить в статье.
Импорт событий в календарь
Часто обновляете календарь?
Планируете много мероприятий, которые повторяются из недели в неделю, из месяца в месяц?
Это отнимает много времени.
Вам поможет импорт событий в календарь из таблицы Google.
Здесь вы узнаете, как облегчить эту работу. Перед тем, как производить импорт событий в календарь, необходимо подготовить исходную таблицу.
1. Заполняем таблицу деталями
В таблицу поместите детали мероприятий (событий, events). Можно создать строки с разными типами событий, а затем их скопировать и отредактировать. Это сильно ускорит процесс.
Детали событий введите в ячейки A7:F.
Не оставляйте пустых строк между шапкой и строками с вашими данными!
Обратите внимание на даты: не забудьте указать время начала и окончания события.
2. Идентификатор календаря
Идентификатор календаря поместите в ячейку E3. Найти его просто:
- откройте календарь,
- в списке календарей нажмите на 3 точки справа от нужного календаря,
- выберите Настройки и общий доступ,
- затем Интеграция календаря.
3. Установка дополнения
Установите дополнение Good Events Planner *.
4. Импорт событий в календарь
В меню Дополнения выберите CreateEvents и Send.
* Этот пункт можно пропустить.
Также можно нажать на кнопку В КАЛЕНДАРЬ!
Дайте все необходимые разрешения. Это делается только раз при первом запуске.
Я сделал шаблон, который вы можете использовать.
Сделайте копию таблицы (меню Файл > Создать копию), замените данные в шаблоне на свои и вперёд!
Загляните в меню Файл/Настройки таблицы/Часовой пояс. Если ваш часовой пояс отличается от московского, выберите свой.
Полная версия сайта Гугл Календаря предоставляет массу возможностей, позволяющих тщательно планировать дату и время проведения каких-либо мероприятий. Кроме того, здесь также присутствуют инструменты для создания новых календарей, поделить которые можно на три способа.
Способ 1: Создание календаря
- Наиболее доступный метод добавления нового календаря на сайте рассматриваемого сервиса заключается в создании. Для этого откройте Google Календарь, с левой стороны кликните по значку «+» в блоке «Другие календари» и выберите «Создать календарь».
В случае успеха в нижней части окна появится соответствующее уведомление.
Способ 2: Добавление по URL
- Еще один метод сводится к использованию прямой ссылки на существующий календарь, полученной вами от кого-либо. Чтобы произвести создание, первым делом откройте «Настройки» и в подразделе «Добавить календарь» выберите пункт «Добавить по URL».
Способ 3: Оформление подписки
- При переходе на вкладку «Подписаться на календарь» можно произвести добавление, просто указав адрес электронной почты пользователя, календарь которого хотите добавить.
Сайт данного сервиса имеет хоть и весьма нагруженный, но все же достаточно понятный интерфейс, позволяющий произвести добавление и последующую настройку календаря в максимально короткие сроки.
Вариант 2: Мобильное приложение
На мобильных устройствах в качестве альтернативы веб-сервису можно использовать приложение Google Календарь, предоставляющее похожие, но весьма ограниченные возможности. В частности, здесь нельзя создавать или импортировать внешние календари, однако при этом можно выполнить добавление, попросту подключив еще одну учетную запись Гугл в настройках смартфона и выполнив синхронизацию. По сути, само приложение здесь даже не требуется, так как данные появятся сами по себе.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Всё нужное для выполнения следующих инструкций предусмотрено в большинстве версий ОС Android по умолчанию. Если же приложения отсутствуют, их можно загрузить с помощью Google Play Маркета и из App Store в случае с iPhone/iPad.
Способ 1: Календарь
Добавить информацию о каком-либо событии, в том числе и дне рождения, в мобильном приложении очень просто. Следующая инструкция является универсальной для Android и iOS-девайсов.
- Запустив приложение, тапните иконку плюса, расположенную в нижнем правом углу.
Способ 2: Контакты
Дни рождения и прочие знаменательные даты, привязанные к контактам, автоматически переносятся в Google Календарь.
-
Открыв программу, тапните по имени пользователя, о чьём дне рождения следует сделать напоминание в будущем.
Вариант 2: Компьютер
Вышеперечисленные методы работают и без скачивания сторонних приложений.
Способ 1: Календарь
Google Календарь доступен в браузере (Google Chrome, Mozilla Firefox или любом другом), благодаря чему можно воспользоваться им с помощью компьютера.
-
После перехода по ссылке выше будет предложено войти в аккаунт Гугл. Введите электронный адрес или мобильный номер, привязанный к учётной записи, и кликните «Далее».
Способ 2: Контакты
Если добавить информацию о дне рождения контакта, в эту дату автоматически придёт оповещение о празднике.
-
Воспользуйтесь кнопкой выше, чтобы перейти на сайт сервиса Google Контакты. Войдите в учётную запись, введя логин (email либо мобильный номер) и пароль от неё. Для перехода к следующему шагу кликните «Далее».
Обратите внимание! Вводить дату нужно в американском формате (месяц/день/год). Например, 31 декабря 2020 года записывается следующим образом: «12/31/2020».
Аналогичным образом можно и отредактировать существующую запись в журнале контактов. Значок карандаша, по которому следует кликнуть для настройки, появляется при наведении указателя мыши на имя пользователя.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Дни рождения и праздники добавляются в календарь автоматически. Вы также можете добавить другие календари с полезной информацией, например с фазами луны или расписанием игр спортивных команд.
Дни рождения
Как скрыть все дни рождения
- Откройте Google Календарь.
- Снимите флажок Контакты в разделе "Мои календари". Календарь скрыт, если рядом с ним отображается незакрашенный квадрат.
Как скрыть дни рождения из списка календарей
Чтобы скрыть календарь "Контакты" из списка в разделе "Мои календари", выполните следующие действия:
- Откройте Google Календарь.
- В левой части страницы найдите раздел Мои календари. При необходимости разверните его.
- Наведите указатель на пункт "Контакты" и нажмите Скрыть из списка.
Информация о днях рождения берется из данных Google Контактов.
Добавьте человека в Google Контакты и укажите дату его рождения. Информация о днях рождениях из Google Контактов обновляется при каждой синхронизации календаря.
Советы
- Если вы хотите получать уведомления о дне рождения, создайте для него повторяющееся мероприятие.
- Добавить дни рождения друзей из Facebook в Google Календарь на компьютере нельзя.
- Откройте Google Календарь.
- В левой части страницы найдите раздел Мои календари. При необходимости разверните его.
- Рядом с календарем "Контакты" нажмите на значок .
- Выберите новый цвет.
Праздники и другие тематические календари
- Откройте Google Календарь.
- На панели слева в разделе "Другие календари" нажмите на значок "Добавить другие календари" Интересные календари.
- Чтобы добавить календарь, установите флажок рядом с ним.
Если вы хотите удалить календарь, снимите флажок рядом с ним.
- Откройте Google Календарь.
- В правом верхнем углу нажмите на значок "Настройки" Настройки.
- На панели слева нажмите Добавить календарьИнтересные календари.
- В разделе "Региональные праздники" можно найти календари, на которые вы подписаны.
- Рядом с нужным календарем нажмите на раскрывающееся меню и выберите Только государственные праздники.
- Откройте Google Календарь.
- В левой части страницы в разделе "Другие календари" снимите флажок Праздники. Календарь скрыт, если рядом с ним отображается незакрашенный квадрат.
- Откройте Google Календарь.
- На панели слева в разделе "Другие календари" найдите календарь праздников.
- Наведите указатель мыши на этот календарь.
- Нажмите на значок .
- Выберите новый цвет.
- Откройте Google Календарь.
- В правом верхнем углу нажмите на значок "Настройки" Настройки.
- На панели слева нажмите Добавить календарьИнтересные календари.
- В разделе "Другое" установите флажок напротив календаря Фазы луны.
Лунный и альтернативные календари
Вы также можете добавить другие календари, например лунный или солнечный.
- Откройте Google Календарь.
- В правом верхнем углу нажмите на значок "Настройки" Настройки.
- В разделе "Общие" выберите Режим просмотра.
- Нажмите на раскрывающийся список Альтернативные календари.
- Выберите нужный календарь.
Совет. Чтобы удалить альтернативный календарь, в раскрывающемся списке выберите Нет.
Спортивные календари
В Google Календаре на компьютере можно добавить тематические календари, например с расписанием игр любимой команды.
- Откройте Google Календарь.
- На панели слева в разделе "Другие календари" нажмите на значок "Добавить другие календари" Интересные календари.
- Найдите нужный календарь в разделе "Спорт". Чтобы добавить календарь, установите флажок рядом с ним.
Примечание. После того как вы добавите календарь на компьютере, он появится в приложении "Google Календарь" на мобильном устройстве.
Вы можете перенести все мероприятия из стороннего приложения или аккаунта Google в Google Календарь.
При импорте мероприятия список приглашенных на него гостей и сведения о видеовстрече не импортируются.
Шаг 1. Экспортируйте мероприятия
В первую очередь необходимо экспортировать мероприятия для последующего импорта в Google. Выберите один из описанных ниже вариантов.
В большинстве приложений календаря, таких как Календарь Apple или Outlook, есть функция экспорта.
- Откройте приложение, из которого нужно перенести мероприятия. Как правило, это удобнее делать на компьютере, а не на мобильном устройстве.
- Найдите опцию Экспорт.
- Если приложение предлагает выбрать формат файла, выберите CSV. Если вы собираетесь переносить мероприятия в календарь на устройстве Apple, выберите vCard.
Дополнительные инструкции можно найти в справке соответствующего приложения или с помощью поискового запроса экспорт календаря .
Файл будет сохранен на компьютере в разделе загрузок или в указанной вами папке. После этого можно переходить к импорту.
Если у вас несколько аккаунтов Google, вы можете экспортировать свои календари из одного аккаунта и импортировать их в другой.
- На компьютере войдите в тот аккаунт Google, из которого нужно экспортировать мероприятия. Экспортировать календарь можно только в веб-интерфейсе.
- Выполните экспорт по этой инструкции. Вам нужно будет скачать файл с расширением .ics на компьютер.
- Войдите в аккаунт Google, в который нужно импортировать календарь.
- Процесс выполнения импорта описан в следующем шаге.
Совет. Импортированные мероприятия не будут синхронизироваться между двумя аккаунтами. Если вам нужно синхронизировать календари, откройте себе доступ к одному из них.
Шаг 2. Импортируйте мероприятия в Google Календарь
После экспорта мероприятий импортируйте их в Google Календарь. Импорт файлов в форматах ICS и CSV выполняется на компьютере.
- Откройте Google Календарь.
- В правом верхнем углу нажмите на значок "Настройки" Настройки.
- Слева выберите Импорт и экспорт.
- Нажмите Выберите файл на компьютере и укажите ранее экспортированный файл(с расширением .ics или .csv).
- Укажите, в какой календарь нужно импортировать данные. По умолчанию мероприятия импортируются в основной календарь.
- Нажмите Импортировать.
Если данные для импорта сохранены в виде ZIP-файла, найдите его на компьютере и откройте. В архиве вы найдете файлы с расширением .ics. Импортируйте каждый из них по отдельности.
Повторяющиеся мероприятия из файла с расширением .csv импортируются в виде отдельных мероприятий, а не связанной серии.
Создание и редактирование файлов CSV или iCal для последующего импорта (дополнительно)
Как создать и отредактировать файл в формате .csv
- Откройте имеющийся файл CSV или создайте новый в табличном редакторе, например в Google Таблицах.
- В первой строке должны быть такие заголовки, как Subject и Start Date (на английском языке). Перечень допустимых заголовков смотрите ниже.
- Каждая последующая строчка – это записи отдельных мероприятий. Пример:
Subject Start date Start time Итоговый экзамен 05/30/2020 10:00 AM - Сохраните готовый файл в формате .csv. После этого можно выполнить импорт в Google Календарь по приведенной выше инструкции.
Как форматировать заголовки и мероприятия в файлах с расширением .csv
Обязательными являются только 2 первых заголовка в списке. Остальные – на ваше усмотрение.
Важно! Заголовки должны быть на английском языке, как в примере ниже. Если в каком-то из полей есть данные, разделенные запятой (как в описанном примере с местоположением), заключите их в кавычки.
- Subject
Название мероприятия (обязательно).
Пример: Выпускной экзамен - Start Date
Первый день мероприятия (обязательно).
Пример: 05/30/2020 - Start Time
Время начала.
Пример: 10:00 AM - End Date
Последний день мероприятия.
Пример: 05/30/2020 - End Time
Время завершения.
Пример: 1:00 PM - All Day Event
Статус "На весь день". Введите True , если мероприятие запланировано на весь день, или False , если это не так.
Пример: False - Description
Описание или примечания к мероприятию.
Пример: 50 вопросов теста и два сочинения - Location
Место проведения мероприятия.
Пример: "Саратов, школа 614" - Private
Доступ к мероприятию. Введите True , если мероприятие закрытое, или False , если это не так.
Пример: True
После импорта такого примера будет создано мероприятие "Выпускной экзамен", которое пройдет 30 мая 2020 года с 10:00 до 13:00 в Саратове в школе 614. В описании мероприятия будет написано "50 вопросов теста и два сочинения". Информация о мероприятии будет доступна только его создателю.
Как создать и отредактировать файл iCalendar
- Откройте файл с расширением .ics или создайте новый. Для этого воспользуйтесь приложением для редактирования текста, в котором можно сохранять файлы этого типа.
- Отформатируйте файл с учетом перечисленных ниже требований. В качестве примера можно использовать файл с расширением .ics, экспортированный из Google Календаря.
- Сохраните готовый файл в формате .ics.
Как форматировать файлы iCalendar
В первой строке файла iCalendar должен быть заголовок BEGIN:VCALENDAR . За ним должны быть указаны данные заголовка, в том числе VERSION:2.0 и "PRODID:[здесь укажите данные ID]>" . В последней строке файла должен быть завершающий параметр END:VCALENDAR . Между первой и последней строками должны быть перечислены все мероприятия календаря. Каждое из мероприятий должно быть ограничено строками BEGIN:VEVENT и END:VEVENT .
Если вы редактируете файл iCalendar вручную, убедитесь, что в нем есть заголовок и завершающая строка. Если вы не знаете, где заканчивается заголовок, просто скопируйте одну строчку, расположенную выше строки BEGIN:VEVENT .
Вот пример файла iCalendar (здесь перечислены только обязательные строки; данных может быть больше):
Читайте также: