FORGEBOX Enterprise 🚀 - Take your ColdFusion (CFML) Development to Modern Times! Learn More...


v0.0.1 Public

Master Branch Build Status


This project is a ColdBox Module to assist in processing recurring events. It is useful to create ICS RRULE statements or to iterate over a series of datetimes for a given recurrence rule.

The lib-recur and rfc5545-datetime Java libraries are used in this project, obtained from MvnRepository (lib-recur-0.10.3 and rfc5545-datetime-0.2.1).


  • Lucee 5+
  • Java 8+


Install with CommandBox, like so:

package install id=recurrence production=true

The project will be installed to ./modules/recurrence unless overridden using the directory parameter.

If you're not yet running Lucee 5.2, you'll need to drop this into your Application.cfc:

this.javaSettings = {
    loadPaths: [expandPath("/modules/recurrence/lib/")],
    loadCFMLClassPath: false

If you are already on Lucee 5.2 or later, the JAR files will be located automatically.


When your ColdBox application starts, the module will be configured and available for injection as [email protected].

Here's a use case: Say you'd like a collection of the next 12 recurrences of an event starting a month ago and repeating every other Tuesday:

var start = "20180904";
var count = 12;
var recur = getInstance("[email protected]");
var recurrenceRule = recur.createRecurrenceRule("SimpleWeeklyRule");
var recurrenceIterator = recur.createRecurrenceIterator(rrule=recurrenceRule.generateRRule(), start=start, count=count);
var recurrenceSet = [];
while (recurrenceIterator.hasNext()) {
writeDump(var=recurrenceSet, abort=true);

The result is an array with 12 elements, each a string representing a recurrence.


To generate API documentation, ensure that the DocBox Commands system package (v1.3 or later) is available in your CommandBox installation. Then run the documentation generation script.

package install id="[email protected]>=1.3.2" system=true
package run-script generateDocs

The generated documentation is written to ./apidocs/index.html


To run the test specifications (if the package was installed in non-production mode), first start the CommandBox embedded server (server start), then wait a moment for the server to become available and execute testbox run.

To-Do List

  • Recurrence.getNextRecurrence() to get the soonest next recurrence after today.
  • Implement more advanced rules, for example "Tuesdays and Thursdays of every second week."


This project is licensed under the terms of the MIT license.

Here are all the versions for this package. Please note that you can leverage CommandBox package versioning to install any package you like. Please refer to our managing package version guide for more information.

Version Created Last Update Published By Stable Actions
0.0.1 Oct 09 2018 03:29 PM Oct 09 2018 03:29 PM


No collaborators yet.
  • Oct 09 2018 03:29 PM
  • Oct 09 2018 03:29 PM
  • 377
  • 0
  • 428