UTCで繰り返し指定されたiCalイベントがあります。すべてが正しく出力されているように見えますが、iCalクライアントは不安定です。繰り返しパターンはM、W、Fですが、開始日(UTCに変換)は火曜日です。
誤って計算されている繰り返しパターンはS、T、Rです。
これは、正しく機能していないical出力です。
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-WR-CALNAME: Room ICCS008
PRODID:-//Drupal iCal API//EN
BEGIN:VEVENT
UID:calendar.18861.field_date.0.8
SUMMARY:CPSC 210 L2C
DTSTAMP:20110518T123628Z
DTSTART:20110621T010000Z
DTEND:20110621T033000Z
RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,FR;UNTIL=20110730T033000Z
URL;VALUE=URI:https://localhost/event/2011/06/cpsc-210-l2c
END:VEVENT
END:VCALENDAR
イベントは6月20日午後6時PSTに開始されることになっています。カレンダーは、これをUTCの6月21日の午前1時に正しく変換します。M、W、Fを1か月繰り返します。しかし、それはグーグルカレンダーとアップルiCalの繰り返しイベントの計算の両方を完全に捨てているようです。
最初のイベントは月曜日に表示されますが、2番目のイベントは火曜日、第3木曜日に表示され、それ以降は、最後まで繰り返されるパターンのS、T、Rになります。
これはiCalのバグですか?これは私のiCal作成者(Drupal's Views iCal)によって間違って出力されているものですか?
更新:わかりました。多くの人がこれをインポートしており、AppleiCalとThunderbirdLightningを除くすべてのケースで機能します。
これは、インポートクライアントが(私が信じている)グローバルにタイムゾーンをスコープし、すべてを一度に正しくシフトしているためです。
ただし、 GCalでサブスクライブすると、各イベントの時間を個別にスコープし、kerpleweyになり、上記の動作を示します。
UPDAT-IER
iCalファイル自体が間違っています-何らかの理由で特定のクライアントが不正を処理でき、他のクライアントは処理できませんが、UTCで指定されたイベントは、実際には午前1時にすべてのT、R、Sを繰り返しており、「良好な」クライアントはシフトしますこれは、ローカルTZに基づいています。iCalの作成プロセスでは、UTC 1に変換されるのではなく、ローカルタイムゾーンに基づいて繰り返し日数が計算されました。これは、DrupaliCal実装のバグです。