如何在icalendar中设置ekevent中的事件持续时间?

时间:2013-09-26 09:12:26

标签: iphone ios icalendar ekevent ekeventkit

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

 "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”将应用于“每年的每个星期日,每隔一年”。

     

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

     

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

     

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

     

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

请任何人指导我如何设置...... 我知道如何使用递归规则,但我的问题是如何设置事件持续时间。

1 个答案:

答案 0 :(得分:1)

我知道没有客户支持BYMINUTE和BYHOUR,所以除非此事件是您自己的应用程序消费,否则您会遇到麻烦。无论如何,第一个实例将使用DTSTART值作为开头,无论你在BYMINUTE和BYHOUR中放置什么(见http://tools.ietf.org/html/rfc5545#section-3.8.5.3

然后你可以使用DTEND或DURATION:

DTSTART; TZID = US-东:19970105T083000 DTEND; TZID = US-东:19970105T153000

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