# ICS → Импортер Discourse

**URL:** <https://meta.discourse.org/t/ics-discourse-importer/381646>\
**Category:** Extras\
**Tags:** events, rest-api\
**Created:** [04.Сентябрь.2025 21:53:54 UTC](https://meta.discourse.org/t/ics-discourse-importer/381646 "2025-09-04T21:53:54Z")\
**Posts on this page:** 1\
**Showing post:** 16

<div class="post-metadata">

**Author:** ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)\
**Post date:** [06.Октябрь.2025 06:53:34 UTC](https://meta.discourse.org/t/ics-discourse-importer/381646/16 "2025-10-06T06:53:34Z")

</div>

Спасибо за напоминание!

Краткий статус: сейчас я запускаю три экземпляра своего импортера Python ICS→Discourse (расписание университета, бронирование в спортивном центре и календарь Outlook). Я начал обёртывать его в плагин Discourse, но версия плагина не дотягивает до функционала скрипта — в основном потому, что каждый источник данных требует индивидуальной обработки (особенности UID, частичные обновления, отмены, шумные правки и т. д.). Плагин Ангуса отлично подходит для многих случаев, но мои сценарии использования кажутся более «специфичными для источника».

Также у меня есть открытый PR в ядро, направленный на снижение «шума» от синей кнопки «Последние» во время крупных/всплесковых обновлений ICS. При активных источниках (например, расписании университета) пакет малозначимых правок может заставлять кнопку «Последние» постоянно мигать; этот PR фактически отключает кнопку «Новые темы», если раздел «Последние» открыт во время выполнения автоматизированного пакета.

В долгосрочной перспективе: я сейчас на самохостинге IONOS. Если позже я перейду на официальное хостинг-решение, мне всё равно хотелось бы иметь возможность сохранить поток Python (или его аналог) без необходимости использования функций Enterprise, если там существует входящий ICS. Я предполагаю, что универсальное решение ядра/плагина могло бы сработать, если бы оно позволяло подключать «адаптеры» для каждого источника данных, сохраняя при этом строгую идемпотентность (UID ICS), обработку отмен и семантику редактирования без поднятия темы.

Если есть интерес, я могу набросать минимальный интерфейс адаптера и путь миграции от моего скрипта на Python к Ruby-задаче или внести вклад в виде источников-независимых компонентов (маппинг UID, дебаунс/обновления без поднятия, логика отмены) в плагин календаря/событий.

---

_[View the full topic](https://meta.discourse.org/t/ics-discourse-importer/381646)._
