# Event Model

## Articles

- [Event Parsing](event-parsing.md) - When you give your calendar event data, whether it's through an array, a json feed, or the addEvent method, you specify the event as a plain JavaScript object with properties. This object then gets "parsed" into a proper Event Object that is then exposed in other parts of the API, like the event render hooks method.
- [Event Object](event-object.md) - A JavaScript object that FullCalendar uses to store information about a calendar event. It is exposed in various places of the API such as getEventById and provides methods for dynamic manipulation. It was originally parsed from a plain object.
- [Recurring Events](recurring-events.md) - A recurring event is an event that happens more than once, on a repeating schedule. When a repeating event is turned into individual event instances with individual dates, it is called "expanding" the event.
- [RRule Plugin](rrule-plugin.md) - The RRule plugin is a connector to the rrule js library. It is powerful for specifying recurring events, moreso than FullCalendar's built-in simple event recurrence.

## Event Data Parsing

- [eventDataTransform](eventDataTransform.md) - A hook for transforming custom data into a standard Event object.
- [defaultAllDay](defaultAllDay.md) - Determines the default value for each Event Object's allDay property when it is unspecified.
- [defaultAllDayEventDuration](defaultAllDayEventDuration.md) - A fallback duration for all-day Event Objects without a specified end value.
- [defaultTimedEventDuration](defaultTimedEventDuration.md) - A fallback duration for timed Event Objects without a specified end value.
- [forceEventDuration](forceEventDuration.md) - A flag to force assignment of an event's end if it is unspecified.

## Methods

- [Calendar::getEvents](Calendar-getEvents.md) - Retrieves events that FullCalendar has in memory.
- [Calendar::getEventById](Calendar-getEventById.md) - Returns a single event with the matching id.
- [Calendar::addEvent](Calendar-addEvent.md) - Adds a new event to the calendar.
- [Event::setProp](Event-setProp.md) - Modifies any of the non-date-related properties of an Event Object.
- [Event::setExtendedProp](Event-setExtendedProp.md) - Modifies a single property in an Event Object's extendedProps hash.
- [Event::setStart](Event-setStart.md) - Sets an event's start date.
- [Event::setEnd](Event-setEnd.md) - Sets an event's end date.
- [Event::setDates](Event-setDates.md) - Sets an event's start date, end date, and allDay properties at the same time.
- [Event::setAllDay](Event-setAllDay.md) - Sets whether an event is considered all-day.
- [Event::moveStart](Event-moveStart.md) - Will move an event's start date by a specific period of time.
- [Event::moveEnd](Event-moveEnd.md) - Will move an event's end date by a specific period of time.
- [Event::moveDates](Event-moveDates.md) - Will move an event's start and end dates by a specific period of time.
- [Event::formatRange](Event-formatRange.md) - Formats an event's dates into a string.
- [Event::remove](Event-remove.md) - Removes an event from the calendar.
- [Event::getResources](Event-getResources.md) - Gets the Resources associated with the given event.
- [Event::setResources](Event-setResources.md) - Sets the Resources associated with the given event.
- [Event::toPlainObject](Event-toPlainObject.md) - Serializes an Event API Object to a plain object that would be fit for JSON.stringify.

## Callbacks

- [eventAdd](eventAdd.md) - Called after an event has been added to the calendar.
- [eventChange](eventChange.md) - Called after an event has been modified in some way.
- [eventRemove](eventRemove.md) - Called after an event has been removed from the calendar.
- [eventsSet](eventsSet.md) - Called after event data is initialized OR changed in any way.

## See Also

- [Associating Events with Resources](resources-and-events.md) - How to specify which resources your events are assigned to.

## Demos

- [Add an event dynamically](Calendar-addEvent-demo)
