Search in sources :

Example 1 with DateTime

use of net.fortuna.ical4j.model.DateTime in project camel by apache.

the class ICalDataFormatTest method createTestCalendar.

/**
     * Creates test calendar instance.
     * 
     * @return ICal calendar object.
     */
protected Calendar createTestCalendar() throws ParseException {
    // Create a TimeZone
    TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
    TimeZone timezone = registry.getTimeZone("America/New_York");
    VTimeZone tz = timezone.getVTimeZone();
    // Start Date is on: April 1, 2013, 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, 2013);
    startDate.set(java.util.Calendar.HOUR_OF_DAY, 17);
    startDate.set(java.util.Calendar.MINUTE, 0);
    startDate.set(java.util.Calendar.SECOND, 0);
    // End Date is on: April 1, 2013, 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, 2013);
    endDate.set(java.util.Calendar.HOUR_OF_DAY, 21);
    endDate.set(java.util.Calendar.MINUTE, 0);
    endDate.set(java.util.Calendar.SECOND, 0);
    // Create the event
    PropertyList propertyList = new PropertyList();
    propertyList.add(new DtStamp("20130324T180000Z"));
    propertyList.add(new DtStart(new DateTime(startDate.getTime())));
    propertyList.add(new DtEnd(new DateTime(endDate.getTime())));
    propertyList.add(new Summary("Progress Meeting"));
    VEvent meeting = new VEvent(propertyList);
    // add timezone info..
    meeting.getProperties().add(tz.getTimeZoneId());
    // generate unique identifier..
    meeting.getProperties().add(new Uid("00000000"));
    // 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);
    return icsCalendar;
}
Also used : VEvent(net.fortuna.ical4j.model.component.VEvent) VTimeZone(net.fortuna.ical4j.model.component.VTimeZone) GregorianCalendar(java.util.GregorianCalendar) Calendar(net.fortuna.ical4j.model.Calendar) TimeZoneRegistry(net.fortuna.ical4j.model.TimeZoneRegistry) GregorianCalendar(java.util.GregorianCalendar) Cn(net.fortuna.ical4j.model.parameter.Cn) ProdId(net.fortuna.ical4j.model.property.ProdId) Calendar(net.fortuna.ical4j.model.Calendar) DateTime(net.fortuna.ical4j.model.DateTime) Attendee(net.fortuna.ical4j.model.property.Attendee) Uid(net.fortuna.ical4j.model.property.Uid) VTimeZone(net.fortuna.ical4j.model.component.VTimeZone) TimeZone(net.fortuna.ical4j.model.TimeZone) DtStamp(net.fortuna.ical4j.model.property.DtStamp) PropertyList(net.fortuna.ical4j.model.PropertyList) DtStart(net.fortuna.ical4j.model.property.DtStart) Summary(net.fortuna.ical4j.model.property.Summary) DtEnd(net.fortuna.ical4j.model.property.DtEnd)

Example 2 with DateTime

use of net.fortuna.ical4j.model.DateTime in project openremote by openremote.

the class AssetStorageService method calendarEventActiveOn.

protected static boolean calendarEventActiveOn(CalendarEvent calendarEvent, Date when) {
    if (calendarEvent.getRecurrence() == null) {
        return (!when.before(calendarEvent.getStart()) && !when.after(calendarEvent.getEnd()));
    }
    RecurrenceRule recurrenceRule = calendarEvent.getRecurrence();
    Recur recurrence;
    if (recurrenceRule.getCount() != null) {
        recurrence = new Recur(recurrenceRule.getFrequency().name(), recurrenceRule.getCount());
    } else if (recurrenceRule.getUntil() != null) {
        recurrence = new Recur(recurrenceRule.getFrequency().name(), new net.fortuna.ical4j.model.Date(recurrenceRule.getUntil()));
    } else {
        recurrence = new Recur(recurrenceRule.getFrequency().name(), null);
    }
    if (recurrenceRule.getInterval() != null) {
        recurrence.setInterval(recurrenceRule.getInterval());
    }
    RRule rRule = new RRule(recurrence);
    VEvent vEvent = new VEvent(new DateTime(calendarEvent.getStart()), new DateTime(calendarEvent.getEnd()), "");
    vEvent.getProperties().add(rRule);
    Period period = new Period(new DateTime(when), new Dur(0, 0, 1, 0));
    PeriodRule periodRule = new PeriodRule(period);
    return periodRule.evaluate(vEvent);
}
Also used : RecurrenceRule(org.openremote.model.calendar.RecurrenceRule) VEvent(net.fortuna.ical4j.model.component.VEvent) Dur(net.fortuna.ical4j.model.Dur) RRule(net.fortuna.ical4j.model.property.RRule) PeriodRule(net.fortuna.ical4j.filter.PeriodRule) Period(net.fortuna.ical4j.model.Period) DateTime(net.fortuna.ical4j.model.DateTime) Recur(net.fortuna.ical4j.model.Recur)

Example 3 with DateTime

use of net.fortuna.ical4j.model.DateTime in project android by nextcloud.

the class SaveCalendar method convertFromDb.

private VEvent convertFromDb(Cursor cur, Calendar cal, DtStamp timestamp) {
    Log_OC.d(TAG, "cursor: " + DatabaseUtils.dumpCurrentRowToString(cur));
    if (hasStringValue(cur, Events.ORIGINAL_ID)) {
        // FIXME: Support these edited instances
        Log_OC.w(TAG, "Ignoring edited instance of a recurring event");
        return null;
    }
    PropertyList l = new PropertyList();
    l.add(timestamp);
    copyProperty(l, Property.UID, cur, Events.UID_2445);
    String summary = copyProperty(l, Property.SUMMARY, cur, Events.TITLE);
    String description = copyProperty(l, Property.DESCRIPTION, cur, Events.DESCRIPTION);
    String organizer = getString(cur, Events.ORGANIZER);
    if (!TextUtils.isEmpty(organizer)) {
        // incorrectly left it in the organizer column.
        if (!organizer.startsWith("mailto:")) {
            organizer = "mailto:" + organizer;
        }
        try {
            l.add(new Organizer(organizer));
        } catch (URISyntaxException ignored) {
            if (!mFailedOrganisers.contains(organizer)) {
                Log_OC.e(TAG, "Failed to create mailTo for organizer " + organizer);
                mFailedOrganisers.add(organizer);
            }
        }
    }
    copyProperty(l, Property.LOCATION, cur, Events.EVENT_LOCATION);
    copyEnumProperty(l, Property.STATUS, cur, Events.STATUS, STATUS_ENUM);
    boolean allDay = TextUtils.equals(getString(cur, Events.ALL_DAY), "1");
    boolean isTransparent;
    DtEnd dtEnd = null;
    if (allDay) {
        // All day event
        isTransparent = true;
        Date start = getDateTime(cur, Events.DTSTART, null, null);
        Date end = getDateTime(cur, Events.DTEND, null, null);
        l.add(new DtStart(new Date(start)));
        if (end != null) {
            dtEnd = new DtEnd(new Date(end));
        } else {
            dtEnd = new DtEnd(utcDateFromMs(start.getTime() + DateUtils.DAY_IN_MILLIS));
        }
        l.add(dtEnd);
    } else {
        // Regular or zero-time event. Start date must be a date-time
        Date startDate = getDateTime(cur, Events.DTSTART, Events.EVENT_TIMEZONE, cal);
        l.add(new DtStart(startDate));
        // Use duration if we have one, otherwise end date
        if (hasStringValue(cur, Events.DURATION)) {
            isTransparent = getString(cur, Events.DURATION).equals("PT0S");
            if (!isTransparent) {
                copyProperty(l, Property.DURATION, cur, Events.DURATION);
            }
        } else {
            String endTz = Events.EVENT_END_TIMEZONE;
            if (endTz == null) {
                endTz = Events.EVENT_TIMEZONE;
            }
            Date end = getDateTime(cur, Events.DTEND, endTz, cal);
            dtEnd = new DtEnd(end);
            isTransparent = startDate.getTime() == end.getTime();
            if (!isTransparent) {
                l.add(dtEnd);
            }
        }
    }
    copyEnumProperty(l, Property.CLASS, cur, Events.ACCESS_LEVEL, CLASS_ENUM);
    int availability = getInt(cur, Events.AVAILABILITY);
    if (availability > Events.AVAILABILITY_TENTATIVE) {
        // Unknown/Invalid
        availability = -1;
    }
    if (isTransparent) {
        // not free, then mark it opaque.
        if (availability >= 0 && availability != Events.AVAILABILITY_FREE) {
            l.add(Transp.OPAQUE);
        }
    } else if (availability > Events.AVAILABILITY_BUSY) {
        // This event is ordinarily busy but differs, so output a FREEBUSY
        // period covering the time of the event
        FreeBusy fb = new FreeBusy();
        fb.getParameters().add(new FbType(AVAIL_ENUM.get(availability)));
        DateTime start = new DateTime(((DtStart) l.getProperty(Property.DTSTART)).getDate());
        if (dtEnd != null) {
            fb.getPeriods().add(new Period(start, new DateTime(dtEnd.getDate())));
        } else {
            Duration d = (Duration) l.getProperty(Property.DURATION);
            fb.getPeriods().add(new Period(start, d.getDuration()));
        }
        l.add(fb);
    }
    copyProperty(l, Property.RRULE, cur, Events.RRULE);
    copyProperty(l, Property.RDATE, cur, Events.RDATE);
    copyProperty(l, Property.EXRULE, cur, Events.EXRULE);
    copyProperty(l, Property.EXDATE, cur, Events.EXDATE);
    if (TextUtils.isEmpty(getString(cur, Events.CUSTOM_APP_PACKAGE))) {
        // Only copy URL if there is no app i.e. we probably imported it.
        copyProperty(l, Property.URL, cur, Events.CUSTOM_APP_URI);
    }
    VEvent e = new VEvent(l);
    if (getInt(cur, Events.HAS_ALARM) == 1) {
        // Add alarms
        String s = summary == null ? (description == null ? "" : description) : summary;
        Description desc = new Description(s);
        ContentResolver resolver = activity.getContentResolver();
        long eventId = getLong(cur, Events._ID);
        Cursor alarmCur;
        alarmCur = Reminders.query(resolver, eventId, mAllCols ? null : REMINDER_COLS);
        while (alarmCur.moveToNext()) {
            int mins = getInt(alarmCur, Reminders.MINUTES);
            if (mins == -1) {
                // FIXME: Get the real default
                mins = 60;
            }
            // FIXME: We should support other types if possible
            int method = getInt(alarmCur, Reminders.METHOD);
            if (method == Reminders.METHOD_DEFAULT || method == Reminders.METHOD_ALERT) {
                VAlarm alarm = new VAlarm(new Dur(0, 0, -mins, 0));
                alarm.getProperties().add(Action.DISPLAY);
                alarm.getProperties().add(desc);
                e.getAlarms().add(alarm);
            }
        }
        alarmCur.close();
    }
    return e;
}
Also used : VEvent(net.fortuna.ical4j.model.component.VEvent) Dur(net.fortuna.ical4j.model.Dur) Description(net.fortuna.ical4j.model.property.Description) Organizer(net.fortuna.ical4j.model.property.Organizer) FreeBusy(net.fortuna.ical4j.model.property.FreeBusy) Period(net.fortuna.ical4j.model.Period) Duration(net.fortuna.ical4j.model.property.Duration) URISyntaxException(java.net.URISyntaxException) Cursor(android.database.Cursor) Date(net.fortuna.ical4j.model.Date) SuppressLint(android.annotation.SuppressLint) DateTime(net.fortuna.ical4j.model.DateTime) ContentResolver(android.content.ContentResolver) PropertyList(net.fortuna.ical4j.model.PropertyList) DtStart(net.fortuna.ical4j.model.property.DtStart) FbType(net.fortuna.ical4j.model.parameter.FbType) VAlarm(net.fortuna.ical4j.model.component.VAlarm) DtEnd(net.fortuna.ical4j.model.property.DtEnd)

Example 4 with DateTime

use of net.fortuna.ical4j.model.DateTime in project android by nextcloud.

the class ProcessVEvent method convertToDB.

// Munge a VEvent so Android won't reject it, then convert to ContentValues for inserting
private ContentValues convertToDB(VEvent e, Options options, List<Integer> reminders, long calendarId) {
    reminders.clear();
    boolean allDay = false;
    boolean startIsDate = !(e.getStartDate().getDate() instanceof DateTime);
    boolean isRecurring = hasProperty(e, Property.RRULE) || hasProperty(e, Property.RDATE);
    if (startIsDate) {
        // If the start date is a DATE we expect the end date to be a date too and the
        // event is all-day, midnight to midnight (RFC 2445).
        allDay = true;
    }
    if (!hasProperty(e, Property.DTEND) && !hasProperty(e, Property.DURATION)) {
        // No end date or duration given.
        // Since we added a duration above when the start date is a DATE:
        // - The start date is a DATETIME, the event lasts no time at all (RFC 2445).
        e.getProperties().add(ZERO_SECONDS);
        // Zero time events are always free (RFC 2445), so override/set TRANSP accordingly.
        removeProperty(e, Property.TRANSP);
        e.getProperties().add(Transp.TRANSPARENT);
    }
    if (isRecurring) {
        // Recurring event. Android insists on a duration.
        if (!hasProperty(e, Property.DURATION)) {
            // Calculate duration from start to end date
            Duration d = new Duration(e.getStartDate().getDate(), e.getEndDate().getDate());
            e.getProperties().add(d);
        }
        removeProperty(e, Property.DTEND);
    } else {
        // Non-recurring event. Android insists on an end date.
        if (!hasProperty(e, Property.DTEND)) {
            // Calculate end date from duration, set it and remove the duration.
            e.getProperties().add(e.getEndDate());
        }
        removeProperty(e, Property.DURATION);
    }
    // Now calculate the db values for the event
    ContentValues c = new ContentValues();
    c.put(Events.CALENDAR_ID, calendarId);
    copyProperty(c, Events.TITLE, e, Property.SUMMARY);
    copyProperty(c, Events.DESCRIPTION, e, Property.DESCRIPTION);
    if (e.getOrganizer() != null) {
        URI uri = e.getOrganizer().getCalAddress();
        try {
            MailTo mailTo = MailTo.parse(uri.toString());
            c.put(Events.ORGANIZER, mailTo.getTo());
            // Ensure we can edit if not the organiser
            c.put(Events.GUESTS_CAN_MODIFY, 1);
        } catch (ParseException ignored) {
            Log_OC.e(TAG, "Failed to parse Organiser URI " + uri.toString());
        }
    }
    copyProperty(c, Events.EVENT_LOCATION, e, Property.LOCATION);
    if (hasProperty(e, Property.STATUS)) {
        String status = e.getProperty(Property.STATUS).getValue();
        switch(status) {
            case "TENTATIVE":
                c.put(Events.STATUS, Events.STATUS_TENTATIVE);
                break;
            case "CONFIRMED":
                c.put(Events.STATUS, Events.STATUS_CONFIRMED);
                break;
            case // NOTE: In ical4j it is CANCELLED with two L
            "CANCELLED":
                c.put(Events.STATUS, Events.STATUS_CANCELED);
                break;
        }
    }
    copyProperty(c, Events.DURATION, e, Property.DURATION);
    if (allDay) {
        c.put(Events.ALL_DAY, 1);
    }
    copyDateProperty(c, Events.DTSTART, Events.EVENT_TIMEZONE, e.getStartDate());
    if (hasProperty(e, Property.DTEND)) {
        copyDateProperty(c, Events.DTEND, Events.EVENT_END_TIMEZONE, e.getEndDate());
    }
    if (hasProperty(e, Property.CLASS)) {
        String access = e.getProperty(Property.CLASS).getValue();
        int accessLevel = Events.ACCESS_DEFAULT;
        switch(access) {
            case "CONFIDENTIAL":
                accessLevel = Events.ACCESS_CONFIDENTIAL;
                break;
            case "PRIVATE":
                accessLevel = Events.ACCESS_PRIVATE;
                break;
            case "PUBLIC":
                accessLevel = Events.ACCESS_PUBLIC;
                break;
        }
        c.put(Events.ACCESS_LEVEL, accessLevel);
    }
    // Work out availability. This is confusing as FREEBUSY and TRANSP overlap.
    if (Events.AVAILABILITY != null) {
        int availability = Events.AVAILABILITY_BUSY;
        if (hasProperty(e, Property.TRANSP)) {
            if (e.getTransparency() == Transp.TRANSPARENT) {
                availability = Events.AVAILABILITY_FREE;
            }
        } else if (hasProperty(e, Property.FREEBUSY)) {
            FreeBusy fb = (FreeBusy) e.getProperty(Property.FREEBUSY);
            FbType fbType = (FbType) fb.getParameter(Parameter.FBTYPE);
            if (fbType != null && fbType == FbType.FREE) {
                availability = Events.AVAILABILITY_FREE;
            } else if (fbType != null && fbType == FbType.BUSY_TENTATIVE) {
                availability = Events.AVAILABILITY_TENTATIVE;
            }
        }
        c.put(Events.AVAILABILITY, availability);
    }
    copyProperty(c, Events.RRULE, e, Property.RRULE);
    copyProperty(c, Events.RDATE, e, Property.RDATE);
    copyProperty(c, Events.EXRULE, e, Property.EXRULE);
    copyProperty(c, Events.EXDATE, e, Property.EXDATE);
    copyProperty(c, Events.CUSTOM_APP_URI, e, Property.URL);
    copyProperty(c, Events.UID_2445, e, Property.UID);
    if (c.containsKey(Events.UID_2445) && TextUtils.isEmpty(c.getAsString(Events.UID_2445))) {
        // Remove null/empty UIDs
        c.remove(Events.UID_2445);
    }
    for (Object alarm : e.getAlarms()) {
        VAlarm a = (VAlarm) alarm;
        if (a.getAction() != Action.AUDIO && a.getAction() != Action.DISPLAY) {
            // Ignore email and procedure alarms
            continue;
        }
        Trigger t = a.getTrigger();
        final long startMs = e.getStartDate().getDate().getTime();
        long alarmStartMs = startMs;
        long alarmMs;
        // - Check the calendars max number of alarms
        if (t.getDateTime() != null) {
            // Absolute
            alarmMs = t.getDateTime().getTime();
        } else if (t.getDuration() != null && t.getDuration().isNegative()) {
            Related rel = (Related) t.getParameter(Parameter.RELATED);
            if (rel != null && rel == Related.END) {
                alarmStartMs = e.getEndDate().getDate().getTime();
            }
            // Relative
            alarmMs = alarmStartMs - durationToMs(t.getDuration());
        } else {
            continue;
        }
        int reminder = (int) ((startMs - alarmMs) / DateUtils.MINUTE_IN_MILLIS);
        if (reminder >= 0 && !reminders.contains(reminder)) {
            reminders.add(reminder);
        }
    }
    if (options.getReminders(reminders).size() > 0) {
        c.put(Events.HAS_ALARM, 1);
    }
    // FIXME: Attendees, SELF_ATTENDEE_STATUS
    return c;
}
Also used : ContentValues(android.content.ContentValues) FreeBusy(net.fortuna.ical4j.model.property.FreeBusy) Duration(net.fortuna.ical4j.model.property.Duration) URI(java.net.URI) DateTime(net.fortuna.ical4j.model.DateTime) SuppressLint(android.annotation.SuppressLint) Trigger(net.fortuna.ical4j.model.property.Trigger) Related(net.fortuna.ical4j.model.parameter.Related) FbType(net.fortuna.ical4j.model.parameter.FbType) ParseException(android.net.ParseException) VAlarm(net.fortuna.ical4j.model.component.VAlarm) MailTo(android.net.MailTo)

Example 5 with DateTime

use of net.fortuna.ical4j.model.DateTime in project wildfly-camel by wildfly-extras.

the class ICalFormatTest method createTestCalendar.

private Calendar createTestCalendar() throws ParseException {
    // Create a TimeZone
    TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
    TimeZone timezone = registry.getTimeZone("America/New_York");
    VTimeZone tz = timezone.getVTimeZone();
    // Start Date is on: April 1, 2013, 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, 2013);
    startDate.set(java.util.Calendar.HOUR_OF_DAY, 17);
    startDate.set(java.util.Calendar.MINUTE, 0);
    startDate.set(java.util.Calendar.SECOND, 0);
    // End Date is on: April 1, 2013, 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, 2013);
    endDate.set(java.util.Calendar.HOUR_OF_DAY, 21);
    endDate.set(java.util.Calendar.MINUTE, 0);
    endDate.set(java.util.Calendar.SECOND, 0);
    // Create the event
    PropertyList propertyList = new PropertyList();
    propertyList.add(new DtStamp("20130324T180000Z"));
    propertyList.add(new DtStart(new DateTime(startDate.getTime())));
    propertyList.add(new DtEnd(new DateTime(endDate.getTime())));
    propertyList.add(new Summary("Progress Meeting"));
    VEvent meeting = new VEvent(propertyList);
    // add timezone info..
    meeting.getProperties().add(tz.getTimeZoneId());
    // generate unique identifier..
    meeting.getProperties().add(new Uid("00000000"));
    // 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);
    return icsCalendar;
}
Also used : VEvent(net.fortuna.ical4j.model.component.VEvent) VTimeZone(net.fortuna.ical4j.model.component.VTimeZone) GregorianCalendar(java.util.GregorianCalendar) Calendar(net.fortuna.ical4j.model.Calendar) TimeZoneRegistry(net.fortuna.ical4j.model.TimeZoneRegistry) GregorianCalendar(java.util.GregorianCalendar) Cn(net.fortuna.ical4j.model.parameter.Cn) ProdId(net.fortuna.ical4j.model.property.ProdId) Calendar(net.fortuna.ical4j.model.Calendar) DateTime(net.fortuna.ical4j.model.DateTime) Attendee(net.fortuna.ical4j.model.property.Attendee) Uid(net.fortuna.ical4j.model.property.Uid) VTimeZone(net.fortuna.ical4j.model.component.VTimeZone) TimeZone(net.fortuna.ical4j.model.TimeZone) DtStamp(net.fortuna.ical4j.model.property.DtStamp) PropertyList(net.fortuna.ical4j.model.PropertyList) DtStart(net.fortuna.ical4j.model.property.DtStart) Summary(net.fortuna.ical4j.model.property.Summary) DtEnd(net.fortuna.ical4j.model.property.DtEnd)

Aggregations

DateTime (net.fortuna.ical4j.model.DateTime)70 Period (net.fortuna.ical4j.model.Period)20 VEvent (net.fortuna.ical4j.model.component.VEvent)18 BwDateTime (org.bedework.calfacade.BwDateTime)15 CalFacadeException (org.bedework.calfacade.exc.CalFacadeException)15 Date (java.util.Date)13 TimeZone (net.fortuna.ical4j.model.TimeZone)13 ParseException (java.text.ParseException)12 DtStart (net.fortuna.ical4j.model.property.DtStart)11 Date (net.fortuna.ical4j.model.Date)10 Dur (net.fortuna.ical4j.model.Dur)10 PeriodList (net.fortuna.ical4j.model.PeriodList)10 PropertyList (net.fortuna.ical4j.model.PropertyList)9 DtStamp (net.fortuna.ical4j.model.property.DtStamp)9 LastModified (net.fortuna.ical4j.model.property.LastModified)9 Uid (net.fortuna.ical4j.model.property.Uid)9 Calendar (net.fortuna.ical4j.model.Calendar)8 Recur (net.fortuna.ical4j.model.Recur)8 ExDate (net.fortuna.ical4j.model.property.ExDate)8 GregorianCalendar (java.util.GregorianCalendar)7