gpt4 book ai didi

outlook - 如何在ics文件中指定可与Google,outlook和Apple一起有效使用的时区?

转载 作者:行者123 更新时间:2023-12-04 03:42:53 27 4
gpt4 key购买 nike

我想生成一个与Google,Outlook和Apple日历兼容的ics文件。我可以做的很好,但是问题是我无法在文件中指定时区块,因此与上述应用程序兼容。我目前使用的X-Wr-timezone属性不适用于Outlook,并在Google中提供了不同的时间。我需要解决这个问题的方法。我的ics文件:

BEGIN:VCALENDA
RPRODID:-//sample//sam Calendar//EN
VERSION:2.0
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
X-WR-TIMEZONE:America/Los_Angeles
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20160206T074400
DTEND;TZID=America/Los_Angeles:20160206T084400
DESCRIPTION:Your appointment Details:\n\nPatient Details:Kou Kul\nKeven\n\nAppointment Type:Counselling (30 min)\n\nThanks.
LOCATION: Pune
SEQUENCE:0
PRIORITY:5
STATUS:CONFIRMED
SUMMARY:Appointment Details:- John Bond
UID:X:201600U2800000A9Yp0EAF@sample
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

最佳答案

在VEVENT之前使用VTIMEZONE组件:https://tools.ietf.org/html/rfc5545#section-3.6.5

   BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
BEGIN:STANDARD
DTSTART:20071104T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE


因此,最终的组装ICS文件将如下所示(基于OP的ICS文件; NB在其第一行中,VCALENDAR的“ R”被推到第二行中“ PRODID”的开头,我已在回答中对其进行了更正):

BEGIN:VCALENDAR
PRODID:-//sample//sam Calendar//EN
VERSION:2.0
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
X-WR-TIMEZONE:America/Los_Angeles
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
BEGIN:STANDARD
DTSTART:20071104T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTSTART:20160206T074400
DTEND:20160206T084400
DESCRIPTION:Your appointment Details:\n\nPatient Details:Kou Kul\nKeven\n\nAppointment Type:Counselling (30 min)\n\nThanks.
LOCATION: Pune
SEQUENCE:0
PRIORITY:5
STATUS:CONFIRMED
SUMMARY:Appointment Details:- John Bond
UID:X:201600U2800000A9Yp0EAF@sample
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR


我尚未测试此特定的ICS,因此无法预测同时使用VTIMEZONE和X-WR-TIMEZONE的行为。

另一个微妙之处是日期/时间格式不能包含时区。因此,例如,如果您要使用PHP进行构建,则需要确保:

const DT_FORMAT = 'Ymd\THis';


例如
DTSTART:20160206T074400

并不是:

const DT_FORMAT = 'Ymd\THis\Z';


例如
DTSTART:20160206T074400Z

此日期/时间格式对于VEVENT块中的日期/时间很重要。当“ LAST_MODIFIED”字段的末尾有“ Z”时,我获得了成功。

在一个旁注中,OP在洛杉矶时区工作,但是此答案在VTIMEZONE块中显示了纽约信息。必须计算洛杉矶的适当信息(例如,夏令时抵消等)。

最后的观察,从2018年4月开始,新行“ \ n”不适用于Google日历。只要使用“ VERSION:2.0”,iCal就会遵守。

关于outlook - 如何在ics文件中指定可与Google,outlook和Apple一起有效使用的时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35645402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com