Импорт дней рождения из Excel в календарь Nextcloud через VEVENT: Полный гайд

Настройка импорта дней рождения в календарь Nextcloud с помощью Excel-таблицы и генерации VEVENT-блоков. Полный гайд по созданию .ics файла, проверке корректности и импорту в систему.

В этой статье мы разберем, как создать календарь дней рождения в Nextcloud, используя обычный Excel. Вместо ручного ввода каждого события из контактов, мы сгенерируем их автоматически с помощью формул, создав файл в формате .ics (VCALENDAR), который затем импортируем в календарь.

Важно: Nextcloud создаёт подобные события автоматически из контактов (через VCF). Если импортировать такой ICS вручную, он попадёт в календарь как обычные события, а не в специальный «Дни рождения». Но если вам нужно просто перенести даты в календарь — способ рабочий. —

1. Шаг

Подготовка таблицы

Создайте в Excel лист со столбцами:

Где: A2 — «Екатерина» B2 — «02.01.1982» (лучше, чтобы это была настоящая дата, а не текст)

Важно: Если дата введена как текст, преобразуйте её с помощью формулы:

				
					=ДАТА(ПРАВСИМВ(B2;4);ПСТР(B2;4;2);ЛЕВСИМВ(B2;2))
				
			

Эта формула гарантирует, что Excel воспринимает значение как реальную дату, а не как текст. —

2. Шаг

Формулы для служебных столбцов

Вставьте формулы во вторую строку и протяните вниз.

C2 — дата начала в формате ГГГГММДД

				
					=ТЕКСТ(B2;"ГГГГММДД")
				
			

Пример: Для 02.01.1982 → 19820102

D2 — дата окончания (следующий день)

				
					=ТЕКСТ(B2+1;"ГГГГММДД")
				
			

Пример: Для 02.01.1982 → 19820103

E2 — уникальный UID

				
					="bday-"&C2&"-"&ПОДСТАВИТЬ(A2;" ";"_")
				
			

Пример: bday-19820102-Екатерина_Викторовна

F2 — заголовок события

				
					="🎂 "&A2
				
			

Пример: 🎂 Екатерина —

3. Шаг

Сборка VEVENT одной формулой

В G2 вставьте формулу (обратите внимание на разделитель ; — в русском Excel):

				
					="BEGIN:VEVENT"&СИМВОЛ(10)&
"DTSTAMP:20260808T091207Z"&СИМВОЛ(10)&
"DTSTART;VALUE=DATE:"&C2&СИМВОЛ(10)&
"DTEND;VALUE=DATE:"&D2&СИМВОЛ(10)&
"UID:"&E2&СИМВОЛ(10)&
"RRULE:FREQ=YEARLY"&СИМВОЛ(10)&
"SUMMARY:"&F2&СИМВОЛ(10)&
"TRANSP:TRANSPARENT"&СИМВОЛ(10)&
"X-NEXTCLOUD-BC-FIELD-TYPE:BDAY"&СИМВОЛ(10)&
"X-NEXTCLOUD-BC-UNKNOWN-YEAR:0"&СИМВОЛ(10)&
"BEGIN:VALARM"&СИМВОЛ(10)&
"TRIGGER;VALUE=DURATION:PT9H"&СИМВОЛ(10)&
"ACTION:DISPLAY"&СИМВОЛ(10)&
"DESCRIPTION:"&F2&СИМВОЛ(10)&
"END:VALARM"&СИМВОЛ(10)&
"END:VEVENT"
				
			

Пояснения к формуле: СИМВОЛ(10) — это перенос строки внутри ячейки (ASCII 10 = LF). X-NEXTCLOUD-BC-FIELD-TYPE:BDAY — указывает Nextcloud, что это день рождения. X-NEXTCLOUD-BC-UNKNOWN-YEAR:0 — если год известен. Если год неизвестен, поставьте 1, а в DTSTART используйте только месяц и день (например, --1120). BEGIN:VALARM — уведомление за 9 часов до события.

Протяните формулу вниз — для каждой строки получится готовый блок VEVENT.

4. Шаг

Сборка файла .ics 1. Создайте текстовый файл (например, в Блокноте или Notepad++). 2. Добавьте шапку:

				
					    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:-//Nextcloud//Birthdays//RU
    CALSCALE:GREGORIAN
				
			

Скопируйте все значения из столбца G (каждый VEVENT) и вставьте после шапки. 4. Добавьте подвал:

				
					    END:VCALENDAR
				
			

Сохраните файл с расширением .ics в кодировке UTF-8 (без BOM или с BOM — обычно Nextcloud понимает). —

5. Импорт в Nextcloud

Откройте Календарь.

В левом нижнем углу → Настройки и импорт. 3. Выберите «Импортировать календарь» и загрузите ваш .ics. 

Важное замечание

Этот способ создаст обычные события с повторением раз в год. Они не будут привязаны к контактам и не попадут в автоматический календарь дней рождения Nextcloud. Если вы хотите именно «настоящий» календарь дней рождения, который сам обновляется из контактов, используйте импорт VCF (как описано в предыдущем ответе). Тогда Nextcloud сам сгенерирует точно такие VEVENT с полями X-NEXTCLOUD-BC-*. —

Итог

После выполнения всех шагов у вас будет готовый файл .ics с событиями дней рождения, который можно импортировать в календарь Nextcloud. Все события будут повторяться раз в год автоматически, а уведомления будут появляться за 9 часов до даты.

Рекомендуется: После импорта проверить, что события отображаются корректно и уведомления приходят вовремя.