Link: https://www.ical4j.org/examples/model/#creating-a-meeting-of-four-hour-duration
I have corrected the compilation errors in the above example and yet when I run it. This is my output. Please help.
BEGIN:VCALENDAR END:VCALENDAR
I am getting this error when I call Calendar#validate :
net.fortuna.ical4j.validate.ValidationException: Content [PRODID] must be specified once at net.fortuna.ical4j.validate.Validator.assertFalse(Validator.java:53)
Here is my code:
import net.fortuna.ical4j.data.CalendarOutputter import net.fortuna.ical4j.model.DateTime import net.fortuna.ical4j.model.TimeZoneRegistry import net.fortuna.ical4j.model.TimeZoneRegistryFactory import net.fortuna.ical4j.model.component.VEvent import net.fortuna.ical4j.model.component.VTimeZone import net.fortuna.ical4j.model.parameter.Cn import net.fortuna.ical4j.model.parameter.Role import net.fortuna.ical4j.model.property.Attendee import net.fortuna.ical4j.model.property.CalScale import net.fortuna.ical4j.model.property.ProdId import net.fortuna.ical4j.model.property.Uid import net.fortuna.ical4j.model.property.Version import net.fortuna.ical4j.util.Calendars import net.fortuna.ical4j.util.MapTimeZoneCache import net.fortuna.ical4j.util.RandomUidGenerator import net.fortuna.ical4j.util.UidGenerator import java.time.LocalDateTime import java.time.Month import java.time.ZoneId System.setProperty("net.fortuna.ical4j.timezone.cache.impl", MapTimeZoneCache.class.getName()); // Create a TimeZone TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry(); TimeZone timezone = registry.getTimeZone("America/Mexico_City"); VTimeZone tz = timezone.getVTimeZone(); // Start Date is on: April 1, 2008, 9:00 am java.util.Calendar startDate = new GregorianCalendar(); startDate.setTimeZone(timezone); startDate.set(java.util.Calendar.MONTH, java.util.Calendar.APRIL); startDate.set(java.util.Calendar.DAY_OF_MONTH, 1); startDate.set(java.util.Calendar.YEAR, 2008); startDate.set(java.util.Calendar.HOUR_OF_DAY, 9); startDate.set(java.util.Calendar.MINUTE, 0); startDate.set(java.util.Calendar.SECOND, 0); // End Date is on: April 1, 2008, 13:00 java.util.Calendar endDate = new GregorianCalendar(); endDate.setTimeZone(timezone); endDate.set(java.util.Calendar.MONTH, java.util.Calendar.APRIL); endDate.set(java.util.Calendar.DAY_OF_MONTH, 1); endDate.set(java.util.Calendar.YEAR, 2008); endDate.set(java.util.Calendar.HOUR_OF_DAY, 13); endDate.set(java.util.Calendar.MINUTE, 0); endDate.set(java.util.Calendar.SECOND, 0); // Create the event String eventName = "Progress Meeting"; LocalDateTime start = LocalDateTime.of(2023, Month.APRIL, 30, 12, 00) LocalDateTime end = LocalDateTime.of(2023, Month.APRIL, 30, 12, 30) VEvent meeting = new VEvent(start, end, eventName); // add timezone info.. meeting.getProperties().add(tz.getTimeZoneId().get()); // generate unique identifier.. UidGenerator ug = new RandomUidGenerator(); Uid uid = ug.generateUid(); meeting.getProperties().add(uid); // add attendees.. Attendee dev1 = new Attendee(URI.create("mailto:dev1@mycompany.com")); dev1.getParameters().add(Role.REQ_PARTICIPANT); dev1.getParameters().add(new Cn("Developer 1")); meeting.getProperties().add(dev1); Attendee dev2 = new Attendee(URI.create("mailto:dev2@mycompany.com")); dev2.getParameters().add(Role.OPT_PARTICIPANT); dev2.getParameters().add(new Cn("Developer 2")); meeting.getProperties().add(dev2); // Create a calendar net.fortuna.ical4j.model.Calendar icsCalendar = new net.fortuna.ical4j.model.Calendar(); icsCalendar.getProperties().add(Version.VERSION_2_0); icsCalendar.getProperties().add(new ProdId("-//Events Calendar//iCal4j 1.0//EN")); icsCalendar.getProperties().add(CalScale.GREGORIAN); // Add the event and print icsCalendar.getComponents().add(meeting); System.out.println(icsCalendar.validate()); OutputStream byteOutputStream = new ByteArrayOutputStream(); CalendarOutputter calendarOutputter = new CalendarOutputter(false) calendarOutputter.output(icsCalendar, byteOutputStream) println new String(byteOutputStream.toByteArray())
I figured it out. I was using 4.0.0-alpha version. However, when I switched it to the version: 3.2.2 it worked fine.
Log in to post a comment.
Link: https://www.ical4j.org/examples/model/#creating-a-meeting-of-four-hour-duration
I have corrected the compilation errors in the above example and yet when I run it. This is my output. Please help.
I am getting this error when I call Calendar#validate :
Here is my code:
Last edit: Saran Vinaiyak 2022-05-24
I figured it out. I was using 4.0.0-alpha version. However, when I switched it to the version: 3.2.2 it worked fine.