# ICS → Discourse 가져오기 도구

**URL:** https://meta.discourse.org/t/ics-discourse-importer/381646
**Category:** Extras
**Tags:** events, rest-api
**Created:** [9월 4, 2025, 9:53오후 UTC](https://meta.discourse.org/t/ics-discourse-importer/381646 "2025-09-04T21:53:54Z")
**Posts on this page:** 1
**Showing post:** 17

<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: [10월 6, 2025, 6:54오전 UTC](https://meta.discourse.org/t/ics-discourse-importer/381646/17 "2025-10-06T06:54:58Z")

</div>

좋은 질문입니다, Nathan — 캘린더/이벤트 플러그인의 작은 확장으로, 또는 경량화된 코어 잡으로 구현할 수 있는 최소한의 피드 비종속적 접근 방식이 충분히 가능하다고 생각합니다.

PR이 일반적으로 유용하려면, 핵심은 가져오기(importer)를 피드 전용이 아닌 **어댑터 기반** 으로 만드는 것입니다. 예를 들어 다음과 같은 방식이 가능합니다:

- 각 피드는 ICS 필드를 Discourse 토픽 필드(`title`, `body`, `tags`, `start`, `end`, `location` 등)로 매핑하는 작은 어댑터(Python, YAML, Ruby 등)를 정의합니다.
- 코어는 멱등성(`UID` ↔ 토픽 ID 매핑), 취소(`STATUS:CANCELLED`), 조용한 편집(Latest를 올리지 않고 업데이트)을 처리합니다.
- 플러그인 또는 사이트 설정을 통해 폴링 간격, 태그 매핑, 번(bump) 정책(`always`, `never`, `on major change`)을 구성할 수 있습니다.

이렇게 하면 소음이 많거나 복잡한 피드(대학 시간표, 강의실 예약, Outlook 캘린더 등)를 가진 기관이 코어에 아무것도 하드코딩하지 않고 자신의 데이터에 맞는 어댑터를 제공할 수 있습니다.

관심이 있으시다면, 그 어댑터 인터페이스를 개요로 정리하거나, 다른 사람들이 기반으로 구축할 수 있는 Ruby 잡 형태의 코어 “ICS 업서트(upsert)” 헬퍼를 프로토타입으로 만들어 볼 수 있습니다. 이를 통해 독립적인 Python 스크립트에서 Discourse 생태계 내에서 유지보수 가능하고 범용적인 것으로 점진적으로 발전시킬 수 있을 것입니다.

---

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