2011-11-22 50 views
2

我已經構建了一個完全適用於Apple日曆的iCal源。然後我嘗試將其導入Google日曆,並且時間都是五個小時,這很有意義,因爲我在美國/東部時區。我從理論上認爲日曆程序應該像當地時代一樣尊重我的時代,根據它們如何格式化(它們沒有時區或UTC標籤),但這不會發生。所以,我在日曆中添加了時區信息。無法讓谷歌日曆尊重iCal時區

BEGIN:VCALENDAR 
CALSCALE:GREGORIAN 
METHOD:PUBLISH 
PRODID:iCalendar-Ruby VERSION:2.0 
BEGIN:VTIMEZONE 
TZID:America/New_York 
BEGIN:DAYLIGHT 
DTSTART:19700308T020000 
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU 
TZNAME:EDT 
TZOFFSETFROM:-0500 
TZOFFSETTO:-0400 
END:DAYLIGHT 
BEGIN:STANDARD 
DTSTART:19701101T020000 
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU 
TZNAME:EST 
TZOFFSETFROM:-0400 
TZOFFSETTO:-0500 
END:STANDARD 
END:VTIMEZONE 

我刪除了一個重新導入日曆,時間還沒有關閉。標準事件如下所示:

BEGIN:VEVENT 
DESCRIPTION:Justin M. is scheduled to work from 12 PM to 3 PM. 
DTEND:20111103T150000 
DTSTAMP:20111122T144545 
DTSTART:20111103T120000 
LOCATION:Museum of Unnatural History 
SEQUENCE:0 
SUMMARY:Justin M. 
UID:2011-11-22T14:45:45+00:[email protected] 9 
END:VEVENT 

所以,我不確定爲什麼Google日曆有問題。它可能只是緩存網址,並沒有真正更新日曆?還有什麼我該做的。

+0

谷歌日曆確實緩存了一段時間的網址 - 很多人一直在抱怨手動刷新是一個需要的功能(多年來)。 –

回答

1

因此,我採用了通過在每個事件時間結束時添加一個Z來使用UTC時間。再加上日曆中的時區信息,Google可以正確轉換時間 - 除了夏令時以外。那些仍然關閉。如果我能弄明白爲什麼會更新。

2

您可以在每個事件日期中指定特定時區,例如,

DTSTART;TZID=America/New_York:20150218T133000 

這樣夏令時會自動考慮和你沒有創建日曆時從本地時間轉換爲UTC(Z)格式。請注意,如果解釋ical文件的客戶端沒有其區域設置權限,則還可能遇到時區問題。