Class VEvent
java.lang.Object
net.fortuna.ical4j.model.Component
net.fortuna.ical4j.model.component.CalendarComponent
net.fortuna.ical4j.model.component.VEvent
- All Implemented Interfaces:
Serializable,ComponentContainer<Component>,FluentComponent,PropertyContainer,RecurrenceSupport<VEvent>
public class VEvent
extends CalendarComponent
implements ComponentContainer<Component>, RecurrenceSupport<VEvent>
$Id$ [Apr 5, 2004]
Defines an iCalendar VEVENT component.
4.6.1 Event Component
Component Name: "VEVENT"
Purpose: Provide a grouping of component properties that describe an
event.
Format Definition: A "VEVENT" calendar component is defined by the
following notation:
eventc = "BEGIN" ":" "VEVENT" CRLF
eventprop *alarmc
"END" ":" "VEVENT" CRLF
eventprop = *(
; the following are optional,
; but MUST NOT occur more than once
class / created / description / dtstart / geo /
last-mod / location / organizer / priority /
dtstamp / seq / status / summary / transp /
uid / url / recurid /
; either 'dtend' or 'duration' may appear in
; a 'eventprop', but 'dtend' and 'duration'
; MUST NOT occur in the same 'eventprop'
dtend / duration /
; the following are optional,
; and MAY occur more than once
attach / attendee / categories / comment /
contact / exdate / exrule / rstatus / related /
resources / rdate / rrule / x-prop
)
Example 1 - Creating a new all-day event:
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.set(java.util.Calendar.MONTH, java.util.Calendar.DECEMBER);
cal.set(java.util.Calendar.DAY_OF_MONTH, 25);
VEvent christmas = new VEvent(cal.getTime(), "Christmas Day");
// initialise as an all-day event..
christmas.getProperties().getProperty(Property.DTSTART).getParameters().add(
Value.DATE);
// add timezone information..
VTimeZone tz = VTimeZone.getDefault();
TzId tzParam = new TzId(tz.getProperties().getProperty(Property.TZID)
.getValue());
christmas.getProperties().getProperty(Property.DTSTART).getParameters().add(
tzParam);
Example 2 - Creating an event of one (1) hour duration:
java.util.Calendar cal = java.util.Calendar.getInstance();
// tomorrow..
cal.add(java.util.Calendar.DAY_OF_MONTH, 1);
cal.set(java.util.Calendar.HOUR_OF_DAY, 9);
cal.set(java.util.Calendar.MINUTE, 30);
VEvent meeting = new VEvent(cal.getTime(), 1000 * 60 * 60, "Progress Meeting");
// add timezone information..
VTimeZone tz = VTimeZone.getDefault();
TzId tzParam = new TzId(tz.getProperties().getProperty(Property.TZID)
.getValue());
meeting.getProperties().getProperty(Property.DTSTART).getParameters().add(
tzParam);
Example 3 - Retrieve a list of periods representing a recurring event in a specified range:
Calendar weekday9AM = Calendar.getInstance();
weekday9AM.set(2005, Calendar.MARCH, 7, 9, 0, 0);
weekday9AM.set(Calendar.MILLISECOND, 0);
Calendar weekday5PM = Calendar.getInstance();
weekday5PM.set(2005, Calendar.MARCH, 7, 17, 0, 0);
weekday5PM.set(Calendar.MILLISECOND, 0);
// Do the recurrence until December 31st.
Calendar untilCal = Calendar.getInstance();
untilCal.set(2005, Calendar.DECEMBER, 31);
untilCal.set(Calendar.MILLISECOND, 0);
// 9:00AM to 5:00PM Rule
Recur recur = new Recur(Recur.WEEKLY, untilCal.getTime());
recur.getDayList().add(WeekDay.MO);
recur.getDayList().add(WeekDay.TU);
recur.getDayList().add(WeekDay.WE);
recur.getDayList().add(WeekDay.TH);
recur.getDayList().add(WeekDay.FR);
recur.setInterval(3);
recur.setWeekStartDay(WeekDay.MO.getDay());
RRule rrule = new RRule(recur);
Summary summary = new Summary("TEST EVENTS THAT HAPPEN 9-5 MON-FRI");
weekdayNineToFiveEvents = new VEvent();
weekdayNineToFiveEvents.getProperties().add(rrule);
weekdayNineToFiveEvents.getProperties().add(summary);
weekdayNineToFiveEvents.getProperties().add(new DtStart(weekday9AM.getTime()));
weekdayNineToFiveEvents.getProperties().add(new DtEnd(weekday5PM.getTime()));
// Test Start 04/01/2005, End One month later.
// Query Calendar Start and End Dates.
Calendar queryStartDate = Calendar.getInstance();
queryStartDate.set(2005, Calendar.APRIL, 1, 14, 47, 0);
queryStartDate.set(Calendar.MILLISECOND, 0);
Calendar queryEndDate = Calendar.getInstance();
queryEndDate.set(2005, Calendar.MAY, 1, 11, 15, 0);
queryEndDate.set(Calendar.MILLISECOND, 0);
// This range is monday to friday every three weeks, starting from
// March 7th 2005, which means for our query dates we need
// April 18th through to the 22nd.
PeriodList periods = weekdayNineToFiveEvents.getPeriods(queryStartDate
.getTime(), queryEndDate.getTime());
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from class net.fortuna.ical4j.model.component.CalendarComponent
EMPTY_VALIDATORFields inherited from class net.fortuna.ical4j.model.Component
AVAILABLE, BEGIN, components, END, EXPERIMENTAL_PREFIX, PARTICIPANT, VALARM, VAVAILABILITY, VEVENT, VFREEBUSY, VJOURNAL, VLOCATION, VRESOURCE, VTIMEZONE, VTODO, VVENUE -
Constructor Summary
ConstructorsConstructorDescriptionVEvent()Default constructor.VEvent(boolean initialise) Constructs a new VEVENT instance starting at the specified time with the specified summary.VEvent(Date start, TemporalAmount duration, String summary) Constructs a new VEVENT instance starting at the specified times, for the specified duration, with the specified summary.Constructs a new VEVENT instance starting and ending at the specified times with the specified summary.VEvent(PropertyList properties) Constructor.VEvent(PropertyList properties, ComponentList<VAlarm> alarms) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanfinal ComponentList<VAlarm>Returns the list of alarms for this event.final Clazzfinal PeriodListgetConsumedTime(Date rangeStart, Date rangeEnd) Returns a normalised list of periods representing the consumed time for this event.final PeriodListgetConsumedTime(Date rangeStart, Date rangeEnd, boolean normalise) Returns a list of periods representing the consumed time for this event in the specified range.final Createdfinal DtStampfinal Descriptionfinal Durationfinal DtEndReturns the end date of this event.final DtEndgetEndDate(boolean deriveFromDuration) Convenience method to pull the DTEND out of the property list.final Geofinal LastModifiedfinal Locationfinal VEventgetOccurrence(Date date) Deprecated.final Organizerfinal Priorityfinal RecurrenceIdfinal Sequencefinal DtStartConvenience method to pull the DTSTART out of the property list.final Statusfinal Summaryfinal Transpfinal UidgetUid()Returns the UID property of this component if available.final UrlgetUrl()protected ValidatorgetValidator(Method method) inthashCode()validate(boolean recurse) Perform validation on a component.Methods inherited from class net.fortuna.ical4j.model.component.CalendarComponent
validate, validateAdd, validateCancel, validateCounter, validateDeclineCounter, validatePublish, validateRefresh, validateReply, validateRequestMethods inherited from class net.fortuna.ical4j.model.Component
calculateRecurrenceSet, copy, getFluentTarget, getName, getProperties, getRequiredProperty, toString, validate, validatePropertiesMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface net.fortuna.ical4j.model.ComponentContainer
getComponent, getComponentsMethods inherited from interface net.fortuna.ical4j.model.FluentComponent
withPropertyMethods inherited from interface net.fortuna.ical4j.model.PropertyContainer
getProperties, getProperties, getPropertyMethods inherited from interface net.fortuna.ical4j.model.RecurrenceSupport
calculateRecurrenceSet, copy, getOccurrences
-
Constructor Details
-
VEvent
public VEvent()Default constructor. -
VEvent
public VEvent(boolean initialise) -
VEvent
Constructor.- Parameters:
properties- a list of properties
-
VEvent
Constructor.- Parameters:
properties- a list of propertiesalarms- a list of alarms
-
VEvent
Constructs a new VEVENT instance starting at the specified time with the specified summary.- Parameters:
start- the start date of the new eventsummary- the event summary
-
VEvent
Constructs a new VEVENT instance starting and ending at the specified times with the specified summary.- Parameters:
start- the start date of the new eventend- the end date of the new eventsummary- the event summary
-
VEvent
Constructs a new VEVENT instance starting at the specified times, for the specified duration, with the specified summary.- Parameters:
start- the start date of the new eventduration- the duration of the new eventsummary- the event summary
-
-
Method Details
-
getAlarms
Returns the list of alarms for this event.- Returns:
- a component list
-
getComponents
- Specified by:
getComponentsin interfaceComponentContainer<Component>
-
validate
Perform validation on a component.- Specified by:
validatein classComponent- Parameters:
recurse- indicates whether to validate the component's properties- Throws:
ValidationException- where the component is not in a valid state
-
getValidator
- Specified by:
getValidatorin classCalendarComponent- Parameters:
method- a method to validate on- Returns:
- a validator for the specified method or null if the method is not supported
-
getConsumedTime
Returns a normalised list of periods representing the consumed time for this event.- Parameters:
rangeStart- the start of a rangerangeEnd- the end of a range- Returns:
- a normalised list of periods representing consumed time for this event
- See Also:
-
getConsumedTime
Returns a list of periods representing the consumed time for this event in the specified range. Note that the returned list may contain a single period for non-recurring components or multiple periods for recurring components. If no time is consumed by this event an empty list is returned.- Parameters:
rangeStart- the start of the range to check for consumed timerangeEnd- the end of the range to check for consumed timenormalise- indicate whether the returned list of periods should be normalised- Returns:
- a list of periods representing consumed time for this event
-
getOccurrence
@Deprecated public final VEvent getOccurrence(Date date) throws IOException, URISyntaxException, ParseException Deprecated.Returns a single occurrence of a recurring event.- Parameters:
date- a date on which the occurence should occur- Returns:
- a single non-recurring event instance for the specified date, or null if the event doesn't occur on the specified date
- Throws:
IOException- where an error occurs reading dataURISyntaxException- where an invalid URI is encounteredParseException- where an error occurs parsing data
-
getClassification
- Returns:
- the optional access classification property for an event
-
getCreated
- Returns:
- the optional creation-time property for an event
-
getDescription
- Returns:
- the optional description property for an event
-
getStartDate
Convenience method to pull the DTSTART out of the property list.- Returns:
- The DtStart object representation of the start Date
-
getGeographicPos
- Returns:
- the optional geographic position property for an event
-
getLastModified
- Returns:
- the optional last-modified property for an event
-
getLocation
- Returns:
- the optional location property for an event
-
getOrganizer
- Returns:
- the optional organizer property for an event
-
getPriority
- Returns:
- the optional priority property for an event
-
getDateStamp
- Returns:
- the optional date-stamp property
-
getSequence
- Returns:
- the optional sequence number property for an event
-
getStatus
- Returns:
- the optional status property for an event
-
getSummary
- Returns:
- the optional summary property for an event
-
getTransparency
- Returns:
- the optional time transparency property for an event
-
getUrl
- Returns:
- the optional URL property for an event
-
getRecurrenceId
- Returns:
- the optional recurrence identifier property for an event
-
getEndDate
Returns the end date of this event. Where an end date is not available it will be derived from the event duration.- Returns:
- a DtEnd instance, or null if one cannot be derived
-
getEndDate
Convenience method to pull the DTEND out of the property list. If DTEND was not specified, use the DTSTART + DURATION to calculate it.- Parameters:
deriveFromDuration- specifies whether to derive an end date from the event duration where an end date is not found- Returns:
- The end for this VEVENT.
-
getDuration
- Returns:
- the optional Duration property
-
getUid
Returns the UID property of this component if available.- Returns:
- a Uid instance, or null if no UID property exists
-
equals
-
hashCode
public int hashCode()
-
RecurrenceSupport.getOccurrences(Period)