0

我在 iCalendar 中创建了事件。它的开始日期是今天,结束日期是下个月 15 日。这是事件的重复类型。因此,如果将事件设置为重复事件,则将结束日期更改为与重复结束日期相同。我想给出事件的持续时间,比如下午 3.30 到下午 6.30 如何设置事件持续时间....

 "DTSTART;TZID=US-Eastern:19970105T083000 
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9; BYMINUTE=30

首先,“INTERVAL=2”将应用于“FREQ=YEARLY”以达到“每隔一年”。

然后,“BYMONTH=1”将应用于“每年一月,每隔一年”。

然后,“BYDAY=SU”将应用于“1 月的每个星期日,每隔一年”。

然后,“BYHOUR=8,9”将应用于“1 月的每个星期日早上 8 点和 9 点,每隔一年”。

然后,“BYMINUTE=30”将应用于“1 月的每个星期日上午 8:30 和 9:30,每隔一年”到达。

然后,由于缺少来自 RRULE 的信息,第二个来自 DTSTART,以“1 月的每个星期日上午 8:30:00 和上午 9:30:00,每隔一年”结束。

同样,如果缺少 BYMINUTE、BYHOUR、BYDAY、BYMONTHDAY 或 BYMONTH 规则部分,则将从“DTSTART”属性中检索到适当的分钟、小时、日或月。

请任何人指导我如何设置......我知道重复规则如何工作,但我的问题是如何设置事件持续时间。

4

1 回答 1

1

据我所知,没有客户端支持 BYMINUTE 和 BYHOUR,因此除非此事件是供您自己的应用程序使用的,否则您是在自找麻烦。在任何情况下,第一个实例将使用 DTSTART 值作为开始,无论您在 BYMINUTE 和 BYHOUR 中输入了什么(参见https://www.rfc-editor.org/rfc/rfc5545#section-3.8. 5.3 )

然后您可以使用 DTEND 或 DURATION:

DTSTART;TZID=美国东部:19970105T083000 DTEND;TZID=美国东部:19970105T153000

或者

DTSTART;TZID=US-Eastern:19970105T083000 DURATION:PT7H

于 2013-09-27T06:52:05.310 回答