Skip to content


The iCal4j project is a collection of Open Source Java libraries providing support for the iCalendar specifications (RFCs).

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.

Active Projects

The following table provides an overview of the currently active projects in iCal4j.

Name Description References
ical4j Support for the iCalendar standard RFC5545, RFC5546, RFC6868, RFC7953, RFC7986, RFC7529, RFC9073, RFC9074, RFC9253
ical4j-extensions Support for non-standard iCalendar components and properties -
ical4j-zoneinfo-outlook Alternate timezone definitions to improve support for MS Outlook -
ical4j-vcard Support for the vCard standard RFC6350, RFC6473, RFC6474, RFC6868, RFC6869
ical4j-template Template calendar and card object builders to assist with data creation -
ical4j-connector Support for connecting to calendar and card store implementations (e.g. CalDAV) RFC4791, RFC6352
ical4j-integration Support for delivery of calendar and card objects via common transports (e.g Email) RFC6047
ical4j-command Command-line support for calendar and card operations -
ical4j-serializer Serialization of calendar data to standard formats (e.g xCal, jCal, JSCalendar, etc.) RFC6321, RFC6351, RFC7095, RFC7265, RFC8984
tzurl 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.

  • In this guide You will find examples of how to use iCal4j, as well as throughout the API documentation.

  • Detailed descriptions of changes included in each release may be found in the CHANGELOG.

  • iCal4j was created with the help of Open Source software.