Ethsim2
(Ethan )
9월 3, 2026, 10:10오전
5
이 문제를 추가로 조사했으며, 해결을 위한 PR을 열었습니다:
main ← Ethsim12:fix-calendar-outlook-VTIMEZONE
merged 02:45PM - 15 Sep 26 UTC
## What does this change?
Adds `VTIMEZONE` components to generated ICS downlo… ads when an event uses a named timezone.
Some calendar clients, notably Outlook on Windows, do not reliably interpret IANA `TZID` values unless the calendar also includes a matching `VTIMEZONE` definition. This could cause events such as `Europe/Berlin` to import one hour late even though the `DTSTART`/`DTEND` values were correct.
The generator now derives the current timezone rules from the bundled Moment Timezone data and:
emits one `VTIMEZONE` per unique `TZID`
emits the current recurring `DAYLIGHT` / `STANDARD` pair using open-ended yearly `RRULE`s when the transition rules are stable
verifies that the following seasonal cycle repeats the same rules before treating them as recurring
falls back to the current fixed offset when a stable recurring pair cannot be established
handles zones with no current DST transition
Existing event `DTSTART` / `DTEND` behavior is unchanged; the additional timezone definition gives clients the information needed to interpret those local times correctly.
## Tests
Added coverage for:
- `Europe/Berlin` — European DST rules / original Outlook case
- `America/New_York` — North American DST rules
- `Asia/Kolkata` — stable current offset
- `Europe/London` — zero standard UTC offset / GMT-BST rules
`Unit | Utility | download-calendar`: 22/22 passing.
`discourse-events` QUnit: 270 passing, 1 skipped, 0 failures.
Prettier, ESLint, and `git diff --check` are clean.
이 문제는 서버/컨테이너의 시간대가 아니라 ICS 내보내기 과정에서 발생합니다. 내보내진 이벤트는 Europe/Berlin과 같은 IANA TZID를 사용하지만, Outlook와 같은 클라이언트가 일광절약제(DST) 규칙을 안정적으로 해석하는 데 필요한 해당 VTIMEZONE 정의를 현재 포함하지 않고 있습니다.
해당 PR은 시간대 인식 ICS 다운로드에 VTIMEZONE 정의를 추가하는 동시에 기존 로컬 DTSTART/DTEND 값을 유지합니다.
이 토픽의 예시와 관련하여, 내보내기 시 Europe/Berlin에 대한 CET/CEST 적용 사항이 이제 포함되므로:
DTSTART;TZID=Europe/Berlin:20260811T170000
Outlook이 UTC+1로 폴백하는 대신 올바른 UTC+2 여름 오프셋으로 해석될 수 있습니다.
또한 유럽과 북미의 일광절약제 규칙, 고정 오프셋 사례, 그리고 Africa/Casablanca에서 사용되는 보다 이례적인 계절적 전환에 대한 테스트 커버리지도 추가했습니다.
2개의 좋아요