Calendário: arquivo ICS sem informações de fuso horário!

Vi outra postagem que dizia para postar aqui por algum motivo sobre o calendário, mas não acho que o discourse tenha algo a ver com este problema, mas nossas postagens são fechadas após 7 dias, então YOLO!

Olhando a especificação do arquivo .ics, não sei qual precisamos, mas estamos perdendo estes… é

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

então acho que a configuração de fuso horário no pacote deve ser extraída e deve adicionar X-WR-TIMEZONE para corresponder… quando você importa do Google, ele assume seu local… mas o GoDaddy não consigo encontrar nem para onde definir isso… e funcionou antes porque presumo que os antigos calendários ics tinham informações de fuso horário

Exemplo com informações de fuso horário adequadas… X-WR-TIMEZONE e X-LIC-LOCATION são definidos e o evento tem DTSTART;TZID=“America/Los_Angeles”:20160206T074400 e DTEND;TZID=“America/Los_Angeles”:20160206T084400

Acho que, no mínimo, a correção seria adicionar X-WR-TIMEZONE e X-LIC-LOCATION e a especificação adequada deve permitir que cada evento tenha seu próprio fuso horário de início e parada… Tenho certeza que vocês viajam de avião e, à medida que se deslocam, as configurações de fuso horário se ajustam se estiverem corretamente definidas no calendário

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

stephen_Hornak
ChristopherCamacho
Matt.Johnson
jacobfetzer

4 curtidas

Alguma notícia sobre isso? O arquivo ics ainda está sem as informações de fuso horário. Portanto, quando os usuários importam o arquivo ics do Discourse para o calendário deles, eles obtêm o horário incorreto.

O arquivo ics que geramos segue a especificação iCalendar. Especificamente, para Time, geramos timestamps UTC (código fonte 1, código fonte 2) sufixados com Z, que aderem ao seguinte:

FORM #2: UTC TIME

      UTC time, or absolute time, is identified by a LATIN CAPITAL
      LETTER Z suffix character, the UTC designator, appended to the
      time value.  For example, the following represents 07:00 AM UTC:

       070000Z

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

As outras propriedades X-WR-TIMEZONE e X-LIC-LOCATION não fazem parte dessa especificação.

Continuando a partir do tópico original no OP, vejo que outros notaram em um tópico relacionado que este problema é específico da visualização de calendário do godaddy. Talvez seja um problema com a forma como está sendo tratado em seu adaptador ao importar arquivos ical. Você notou esse problema com outros calendários?

1 curtida

O identificador de fuso horário TZID faz parte dessa especificação RFC 5545 - Internet Calendaring and Scheduling Core Object Specification (iCalendar)

Sim, eu entendo essa parte. Também está declarado na mesma especificação:

O parâmetro de propriedade "TZID" NÃO DEVE ser aplicado a propriedades DATE e propriedades DATE-TIME ou TIME cujos valores de tempo são especificados em UTC.

Nossos timestamps são especificados em UTC, portanto, o parâmetro TZID não deve ser aplicado.