我正在尝试使用ICal4j创建一个.ics
文件。
但是,当我尝试添加重复出现时,它失败了,并抛出了ValidationException
:
net.fortuna.ical4j.model.ValidationException: Invalid property: RRULE at
net.fortuna.ical4j.model.Calendar.validate(Calendar.java:297) at
net.fortuna.ical4j.model.Calendar.validate(Calendar.java:257) at
net.fortuna.ical4j.data.CalendarOutputter.output(CalendarOutputter.java:96) at
net.fortuna.ical4j.data.CalendarOutputter.output(CalendarOutputter.java:83)
我添加重复代码是:
Recur recur = new Recur(Recur.WEEKLY,null);
recur.setUntil( new DateTime(dateTo.getTime()) );
RRule rule = new RRule(recur);
cal.getProperties().add(rule);
如果没有此规则,它就可以正常工作,但是我想每个星期一添加一次此事件
直到
12 December 2011
(dateTo
返回的日期)。有任何想法吗? 最佳答案
必须将重复规则(RRULE)属性添加到日历中的特定事件(VEVENT),而不是日历本身。例如
myEvent.getProperties().add(rule);
另外,如果您希望事件在星期一发生,则可能应使用如下规则:
FREQ=WEEKLY;BYDAY=MO;UNTIL=<date>
这是我的头等大事,所以最好检查一下RFC以确保:
http://tools.ietf.org/html/rfc5545#section-3.3.10