캘린더: ICS 파일에 시간대 정보가 없습니다!

어떤 이유에서인지 캘린더 관련해서 여기 게시하라는 다른 게시물을 봤는데, 이 문제는 discourse와 아무 관련이 없다고 생각하지만, 게시물이 7일 후에 자동으로 닫히니까 YOLO(일단 해보자)!

오, .ics 파일 스펙을 살펴보니 어떤 것이 필요한지 모르겠는데, 우리는 다음 항목들이 빠져 있습니다 …

  1. X-WR-TIMEZONE
  2. TZID
  3. X-LIC-LOCATION

그래서 팩(pack)의 시간대 설정을 가져와서 X-WR-TIMEZONE을 일치하도록 추가해야 한다고 생각합니다 … 구글에서 가져오면 로컬 시간대를 가정하지만, godaddy에서는 그 설정을 어디에서 해야 하는지 정말로 찾을 수가 없습니다 … 그리고 이전에는 작동했던 것 같습니다. 아마도旧的 ics 캘린더에는 시간대 정보가 있었기 때문일 것입니다.

적절한 시간대 정보가 있는 예시 … X-WR-TIMEZONE과 X-LIC-LOCATION이 설정되어 있고 이벤트에는 DTSTART;TZID=“America/Los_Angeles”:20160206T074400과 DTEND;TZID=“America/Los_Angeles”:20160206T084400이 있습니다.

최소한의 수정 방안은 X-WR-TIMEZONE과 X-LIC-LOCATION을 추가하는 것일 것이며, 적절한 스펙은 각 이벤트가 자체 시작 및 종료 시간대를 가질 수 있도록 허용해야 합니다 … 여러분도 비행기를 타시면서 이동할 때 캘린더에 올바르게 설정되어 있다면 시간대 설정이 조정되는 것을 아실 것입니다.

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 19.0 MIMEDIR//EN
VERSION:2.0
X-WR-TIMEZONE:America/Los_Angeles
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
X-LIC-LOCATION:America/Los_Angeles
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
TZNAME:PST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
SUMMARY:Appointment
LOCATION:Pune
DESCRIPTION:Your appointment Details:\n\nPatient Details:Kou Kul\nKeven\n\nAppointment Type:Counselling (30 min)\n\nThanks.
DTSTART;TZID="America/Los_Angeles":20160206T074400
DTEND;TZID="America/Los_Angeles":20160206T084400
PRIORITY:5
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

tephen_Hornak
ChristopherCamacho
Matt.Johnson
jacobfetzer

4개의 좋아요

이 문제에 대해 새로운 소식은 있나요? ICS 파일에 아직 타임존 정보가 빠져 있습니다. 그래서 사용자가 Discourse에서 ICS 파일을 캘린더에 가져오면 잘못된 시간이 표시됩니다.

생성하는 ics 파일은 iCalendar 사양을 따릅니다. 구체적으로 시간(Time)의 경우, UTC 타임스탬프를 생성하며(소스 코드 1, 소스 코드 2) 이는 다음을 준수하는 Z 접미사가 붙습니다:

FORM #2: UTC TIME

      UTC 시간 또는 절대 시간은 대문자 Z 접미 문자, 즉 UTC 지정자가
      시간 값에 추가됨으로써 식별됩니다. 예를 들어, 다음 값은 UTC
      오전 7시를 나타냅니다:

       070000Z

      "TZID" 속성 매개변수는 UTC로 지정된 시간 값을 가진 TIME 속성에
      적용되어서는 안 됩니다.

다른 속성인 X-WR-TIMEZONE과 X-LIC-LOCATION은 해당 사양의 일부가 아닙니다.

OP의 원래 주제에 이어, 관련 주제에서 다른 사용자들도 이 문제가 godaddy의 캘린더 뷰에 특이적이라는 점을 지적한 것을 확인했습니다. 아마도 ical 파일을 가져올 때 그들의 어댑터에서 처리하는 방식에 문제가 있는 것 같습니다. 다른 캘린더에서도 이 문제를 경험해 보셨나요?

1개의 좋아요

시간대 식별자 TZID는 해당 사양의 일부입니다: RFC 5545 - Internet Calendaring and Scheduling Core Object Specification (iCalendar)

네, 그 부분은 이해하고 있습니다. 같은 사양 문서에도 이렇게 명시되어 있습니다:

The "TZID" property parameter MUST NOT be applied to DATE
properties and DATE-TIME or TIME properties whose time values are
specified in UTC.

우리의 타임스탬프는 UTC로 지정되어 있으므로, TZID 속성은 적용되어서는 안 됩니다.