iCal4j
Home | | | Introduction | | | Wiki | | | Documentation | | | News | | | Support | | | Download | | | License

## Overview »

iCal4j is a Java library used to read and write iCalendar data streams as defined in RFC2445. The iCalendar standard provides a common data format used to store information about calendar-specific data such as events, appointments, to-do lists, etc. All of the popular calendaring tools, such as Lotus Notes, Outlook and Apple's iCal also support the iCalendar standard.

Providing both a parser and an object model, iCal4j allows you to either modify existing iCalendar data or create new data models. Validation is also provided to ensure the data maintains a state consistent with the specification.

## Popularity »

## Version Information »

0.9

- Initial release
- Primary focus: parsing iCalendar data stream and building object model
- Limited model manipulation

0.9.1

- Interim release
- Validation of object model
- Manipulation of object model

0.9.2

- Interim release
- Added typed constructors to Property classes
- Refactoring

0.9.3

- Interim release
- Finished implementation of types (Recur, Period)
- Bug fixes (see CHANGELOG for details)

0.9.4

- Interim release
- Implemented proper string representations for all entities
- Fixed folding and other changes (see CHANGELOG for details)

0.9.5

- Interim release
- Configurable output format for some date-time-based properties (UTC or local time)
- Added support for pre-defined VTimeZones

0.9.6

- Interim release
- Fixed bug with parsing certain date-time properties
- Added support for automatic validation

0.9.7

- Milestone (alpha) release
- Added convenience constructors to object model
- Initial design for suppporting RFC2446

0.9.8

- Second milestone (alpha) release
- Added support for special character escaping

0.9.9

- Third milestone (alpha) release
- All properties now mutable
- Decoupled parser/builder to allow for alternate parser implementations

0.9.10

- Fourth milestone (alpha) release
- Model classes now implement Serializable
- Bug fixes related to nested VALARMs in VTODOs

0.9.11

- Fifth alpha release
- Better support/usability for recurrence rules
- Convenience constructors added to most components
- Improved support for non-conformant folding of long lines
- See the CHANGELOG for further details

0.9.12

- Sixth alpha release
- Improved parsing of iCalendar files generated by KOrganizer
- Reimplemented some constants as typed instances
- Applied patch #1170060
- Added Base64 encoding to ATTACH property
- See the CHANGELOG for further details

0.9.13

- Seventh alpha release
- "Normalised" DateRange/Period, DateRangeNormalizer/PeriodList and associated recurrance methods
- Default charset is now UTF-8
- Applied patches #1197119, #1191253, #1185766, #1203990
- See the CHANGELOG for further details

0.9.14

- Interim release
- Introduced Date, DateTime and Dur types
- More support for timezones
- Applied patches: #1234424, #1244945
- Many more changes - see the CHANGELOG for further details

0.9.15

- Alpha release
- Introduced custom TimeZone implementation and TimeZone Registry support
- Added encoding/decoding of URIs
- More bug fixes - see the CHANGELOG for further details

0.9.16

- Interim release
- Includes a number of critical bug fixes (see CHANGELOG for further details)

0.9.17

- Interim release
- Now includes default timezone definitions (based on Olson timezone database)
- Support for experimental components
- Other bug fixes (see CHANGELOG for details)

0.9.18

- Alpha release
- Improved performance with regard to timezone lookups
- Date/Time instances now use the default Java timezone where no timezone information is specified (i.e. floating time).
- Updated timezone definitions
- Other bug fixes (see CHANGELOG for details)

0.9.19

- Alpha release
- Added filtering capabilities (net.fortuna.ical4j.filter)
- Added support for indexed components and properties (see IndexedComponentList and IndexedPropertyList
- Improved compatibility with Mozilla Calendar's invalid "X" property (see relaxed parsing)
- Additional convenience methods for Components and Properties
- Even more performance improvements with timezones and dates
- Updated timezone definitions
- Other bug fixes (see CHANGELOG for details)

0.9.20

- Alpha release
- Upgraded commons logging dependency to 1.1
- Added commons codec support for encoding attachments
- Updated timezone definitions
- Other bug fixes (see CHANGELOG for details)

1.0 beta

- Beta Release
- Clean up and consistency check of code

1.0

- Stable Release
- Complete implementation of RFC2445

1.1

- Stable Release
- Complete implementation of RFC2446

1.2

- Stable Release
- Complete implementation of RFC2447

## Dependencies »

Please see the Project Documentation for a list of dependencies.