The iCal4j project is a collection of Open Source Java libraries for creating semantically-rich calendar and scheduling data. iCal4j is based on the iCalendar and vCard specifications, with each library focused on a specific subset of interoperability functionality.
What is iCalendar?
The iCalendar standard was originally created from a collaboration of leading groupware developers, as a way for their software to interoperate.
The core iCal4j library provides an implementation of the iCalendar specifications that are designed to facilitate interoperability between calendaring and scheduling software systems.
iCalendar provides a common data format used to store scheduling information such as events, appointments, to-do lists, etc. Most calendaring tools include some level of support for the iCalendar standard.
The following table provides an overview of the currently active projects in iCal4j.
|Model and parsing support for iCalendar standards
|RFC5545, RFC5546, RFC6868, RFC7953, RFC7986, RFC7529, RFC9073, RFC9074, RFC9253
|Model extensions for non-standard data objects
|Alternate timezone definitions to improve support for MS Outlook
|Model and parsing support for vCard standards
|RFC6350, RFC6473, RFC6474, RFC6868, RFC6869
|Mutator functions for building and modifying data objects
|Connectivity to persistent store implementations (e.g. CalDAV)
|Delivery of data objects via common transport channels (e.g Email)
|Command framework for common use-cases
|Serialization of data objects to structured data formats (e.g xCal, jCal, JSCalendar, etc.)
|RFC6321, RFC6351, RFC7095, RFC7265, RFC8984
|Generation and hosting of timezone data in iCalendar format
For a concise description of the goals and directions of iCal4j please take a look at the open issues.
Detailed descriptions of changes included in each release may be found in the CHANGELOG.
iCal4j was created with the help of Open Source software.