According to RFC 5545 - Internet Calendaring and Scheduling Core Object Specification (iCalendar)
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=12;BYMONTHDAY=-1
Is a valid value. But aspose-email-26.3-jdk16.jar fails to parse it
import com.aspose.email.Appointment;
import com.aspose.email.AppointmentLoadOptions;
import com.aspose.email.MailMessage;
import com.aspose.email.MapiMessage;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import org.junit.Test;
public class PreviewGeneratorTaskTest {
static String test = “BEGIN:VCALENDAR\n” +
“VERSION:2.0\n” +
“METHOD:PUBLISH\n” +
“BEGIN:VTIMEZONE\n” +
“TZID:(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius\n” +
“BEGIN:STANDARD\n” +
“TZOFFSETFROM:+0300\n” +
“TZOFFSETTO:+0200\n” +
“DTSTART:19011005T040000\n” +
“RRULE:FREQ=YEARLY;INTERVAL=1;WKST=SU;BYDAY=-1SU;BYMONTH=10;BYHOUR=4\n” +
“END:STANDARD\n” +
“BEGIN:DAYLIGHT\n” +
“TZOFFSETFROM:+0200\n” +
“TZOFFSETTO:+0300\n” +
“DTSTART:19010305T030000\n” +
“RRULE:FREQ=YEARLY;INTERVAL=1;WKST=SU;BYDAY=-1SU;BYMONTH=3;BYHOUR=3\n” +
“END:DAYLIGHT\n” +
“END:VTIMEZONE\n” +
“BEGIN:VEVENT\n” +
“ORGANIZER;CN=:invalid:nomail\n” +
“RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=12;BYMONTHDAY=-1\n” +
“SUMMARY:New Year’s Eve\n” +
“LOCATION:United States\n” +
“DTSTART;TZID=(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius:20121231T000000\n” +
“DTEND;TZID=(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius:20130101T000000\n” +
“CLASS:PUBLIC\n” +
“PRIORITY:5\n” +
“TRANSP:TRANSPARENT\n” +
“SEQUENCE:0\n” +
“X-MICROSOFT-CDO-BUSYSTATUS:FREE\n” +
“X-MICROSOFT-CDO-IMPORTANCE:1\n” +
“BEGIN:VALARM\n” +
“TRIGGER;RELATED=START:PT0S\n” +
“ACTION:DISPLAY\n” +
“DESCRIPTION:REMINDER\n” +
“END:VALARM\n” +
“END:VEVENT\n” +
“END:VCALENDAR”;
public PreviewGeneratorTaskTest() { }
@Test
public void test() throws FileNotFoundException, Exception{
AppointmentLoadOptions opts = new AppointmentLoadOptions();
opts.setIgnoreSmtpAddressCheck(true);
Appointment appointment = Appointment.load(new ByteArrayInputStream(test.getBytes()), opts);
MailMessage msg = new MailMessage();
msg.addAlternateView(appointment.requestApointment());
var result = MapiMessage.fromMailMessage(msg);
result.save(System.out);
}
}
PreviewGeneratorTaskTest): Caused an ERROR
value
class com.aspose.email.system.exceptions.ArgumentException: value
com.aspose.email.YearlyRecurrencePattern.setStartOffset(SourceFile:97)
com.aspose.email.zayq.a(SourceFile:138)
com.aspose.email.zayq.a(SourceFile:105)
com.aspose.email.zgx.a(SourceFile:851)
com.aspose.email.zgx.e(SourceFile:496)
com.aspose.email.zgx.b(SourceFile:231)
com.aspose.email.Appointment.a(SourceFile:1615)
com.aspose.email.Appointment.load(SourceFile:1597)