我正在尝试使用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

10-07 20:52