Skip to content

Getting Started

iCal4j provides solutions for many scenarios involving the iCalendar and vCard specifications. Here you will find an explanation of some of the features available and when to use them.

iCal4j

If you are interested in creating iCalendar object definitions (i.e. *.ics format), you can use the core iCal4j library. This library supports creation of iCalendar object models, including validation and export to a file. See the examples for how to build iCalendar objects.

Similarly, if you want to parse and work with existing iCalendar data the core library also supports this. In addition to validation you can perform filtering and lookups on model data, and generate temporal information from recurring events, etc.

iCal4j Extensions

If your object model requires support for extended component or properties, you can include the extensions library in your classpath. This includes support for things like CalDAV extensions, X-WR-TIMEZONE, and more properties not found in the core specifications.

iCal4j vCard

If you need to create or parse vCard data (i.e. *.vcf format) you can use the vCard library. This library is an extension to the core library and shares some of the same foundations, including support for validation and filtering.

iCal4j Zoneinfo Outlook

If you have data compatibility concerns regarding timezones, you might try using the Zoneinfo Outlook library. This provides an alternate set of timezone data that use simplified recurrence definitions.

iCal4j Template

If you are unsure of which properties you need to use for maximum compatibility with all Calendar User Agents, you can try the template library. This library provides support for creating and modifying iCalendar objects to conform with a predefined object type.

iCal4j Command

The command library provides an execution framework for common operations when working with iCalendar. This library is also distributed as a command-line application that can be used with iCalendar without any coding required.

iCal4j Connector

If you want to access a persistent calendar store you can use the connector library. This library supports CalDAV/CardDAV repositories, as well as a simple local filesystem store.

iCal4j Integration

For publishing and consuming iCalendar objects from external actors, the integration library provides support for common transports such as email.

iCal4j Serializer

iCalendar includes specifications for converting to and from equivalent XML/JSON formats, which is supported by the serializer library. This library also includes support for other conversions including JMAP, Atom, and a custom JSON-based format for API development (JOTN).

iCal4j Streams

If you are implementing workflow automation as part of your iCalendar use-case, you may want to look at the streams library. This includes a simple workflow definition language and engine for producing tasks that may be subsequently acted upon by one or more execution agents.

Maven Dependencies

iCal4j libraries are currently published directly to Maven Central. Use the following table to identify current coordinates for iCal4j libraries:

Name Current Coordinates Deprecated Coordinates
ical4j org.mnode.ical4j:ical4j -
ical4j-vcard org.mnode.ical4j:ical4j-vcard -
ical4j-extensions org.mnode.ical4j:ical4j-extensions -
ical4j-zoneinfo-outlook org.mnode.ical4j:ical4j-zoneinfo-outlook -
ical4j-template org.ical4j:ical4j-template -
ical4j-command org.ical4j:ical4j-command org.ical4j:ical4j-validator
ical4j-connector org.ical4j:ical4j-connector org.mnode.ical4j:ical4j-connector
ical4j-integration org.ical4j:ical4j-integration org.mnode.ical4j:ical4j-integration
ical4j-serializer org.ical4j:ical4j-serializer org.mnode.ical4j:ical4j-serializer, org.mnode.ical4j:ical4j-json
ical4j-actions Coming Soon -