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.
In the most low-tech case, you can expand your recurring events on your server side before sending them down to a json feed event source. However, if you’d like to expand your recurring events on the client-side, there are two different techniques you can use.
FullCalendar offers recurring event functionality out-of-the-box, but with a limited featureset. It allows for the following types of recurrence:
- every day, within an optional date range
- weekly, within an optional date range
To define recurrence, you specify additional properties when you define your events object:
The days of the week this event repeats. An array of integers. Each integer represents a day-of-week, with
What time-of-day this event starts. Something that will parse into a Duration. If defined,
What time-of-day this event ends. Something that will parse into a Duration. If omitted, your events will appear to have the default duration. See defaultAllDayEventDuration, defaultTimedEventDuration, and forceEventDuration for more info.
When recurrences of this event begin. Something that will parse into a Date. If not specified, recurrences will extend infinitely into the past.
When recurrences of this event end. Something that will parse into a Date. If not specified, recurrences will extend infinitely into the future.
This value is exclusive! I repeat, this value is exclusive!!! Just like every other end-date in the API. For all-day recurring events, make the
If any of these properties are specified, the event is assumed to be recurring and there is no need to specify the normal
For a multi-day all-day event, specify the
duration property (a duration input).
Recurrence with the RRule Plugin
If the built-in recurrence functionality is too limited for you, you can leverage the rrule library. FullCalendar has a connector plugin to make it easy to work with.