java - ICal4j 中的递归规则

标签 java icalendar ical4j rfc5545

我正在尝试使用 ICal4j 创建一个 .ics 文件.
但是当我尝试添加一个 recurrence 它失败了,抛出一个 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);

没有这个规则它工作正常,但我想每个星期一添加这个事件
直到 2011 年 12 月 12 日(dateTo 返回的日期)。有什么想法吗?

最佳答案

重复规则 (RRULE) 属性必须添加到日历中的特定事件 (VEVENT),而不是日历本身。例如

myEvent.getProperties().add(rule);

此外,如果您希望事件发生在星期一,您可能应该使用这样的规则:

FREQ=WEEKLY;BYDAY=MO;UNTIL=<date>

这超出了我的想象,所以最好检查 RFC 以确保:

https://www.rfc-editor.org/rfc/rfc5545#section-3.3.10

关于java - ICal4j 中的递归规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785400/

相关文章:

java - aws s3 withRegion : Cannot resolve method 'withRegion(com.amazonaws.regions.Regions)'

java - 使用 Tika 解析 PDF 区域

Java:将数组写入文本文件

c# - 在多个文件中搜索多个字符串的 Grep 工具

java - 使用 Java 发布 iCalendar Feed

php - 从 PHP 时区值生成 iCalendar VTIMEZONE 组件

java - ical4j.properties 文件 IntelliJ

time - Outlook 是否正确处理 .ics (ICalendar) 文件的时区?

java - iCal 同步可以在 Java 中使用吗?如何使用java连接ical服务器?

java - 通过 javamail 和 ical4j 发送的 Activity 邀请在 Outlook 365 中显示为纯文本