<commit_before># iCal4j - iCalendar parser and object model

[RFC2445]: https://tools.ietf.org/html/rfc2445
[RFC2446]: https://tools.ietf.org/html/rfc2446
[RFC2447]: https://tools.ietf.org/html/rfc2447

[RFC5545]: https://tools.ietf.org/html/rfc5545
[RFC5546]: https://tools.ietf.org/html/rfc5546
[RFC5547]: https://tools.ietf.org/html/rfc5547

[Bintray Releases]: https://bintray.com/ical4j/maven/ical4j

[Introduction]: #introduction

[Setup]: #setup
[System requirements]: #system-requirements
[Release downloads]: #release-downloads
[Install with Maven]: #install-with-maven
[Install with Gradle]: #install-with-gradle

[Usage]: #usage

[Examples]: #examples

[Reference]: #reference
[Specifications]: #specifications

[Configuration]: #configuration
[Compatibility Hints]: #compatibility-hints

[Limitations]: #limitations

[Development]: #development
[Building with Gradle]: #building-with-gradle
[Redistribution]: #redistribution
[Contributing]: #contributing

#### Table of Contents

1. [Introduction - What is iCal4j?][Introduction]
2. [Setup - Download and installation of iCal4j][Setup]
    - [System requirements - What is required to use iCal4j][System requirements]
    - [Release downloads - Where to get iCal4j][Release downloads]
    - [Install with Maven]
    - [Install with Gradle]
3. [Usage - The iCal4j object model and how to use it][Usage]
    - [Examples - common usage scenarios][Examples]
4. [Reference - Specification][Reference]
    - [Specifications]
5. [Configuration options][Configuration]
    - [Compatibility Hints]
6. [Limitations - CUA compatibility, etc.][Limitations]
7. [Development - Guide for contributing to the iCalj project][Development]
    - [Building with Gradle]
    - [Redistribution]
    - [Contributing to iCal4j][Contributing]

## Introduction

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.

 - For a concise description of the goals and directions of iCal4j please
 take a look at the [open issues](https://github.com/ical4j/ical4j/issues).

 - You will find examples of how to use iCal4j in [the wiki](https://github.com/ical4j/ical4j/wiki)
 and throughout the [API documentation](https://ical4j.github.io/docs/ical4j/api).

 - Detailed descriptions of changes included in each release may be found
 in the [CHANGELOG](https://ical4j.github.io/docs/ical4j/release-notes).
 
 - iCal4j was created with the help of [Open Source](http://opensource.org) software.


## Setup

### System requirements

 - Java 7 or later

### Dependencies

In the interests of portability and compatibility with as many environments as possible, the number of dependent
libraries for iCal4j is kept to a minimum. The following describes the required (and optional) dependencies and the
functionality they provide.

* slf4j-api [required] - A logging meta-library with integration to different logging framework implementations. Used in all classes that require logging.

* commons-lang3 [required] - Provides enhancements to the standard Java library, including support for custom `equals()` and `hashcode()`
implementations. Used in all classes requiring custom equality implementations.

* commons-collections4 [required] - Provides enhancements to the standard Java collections API, including support for closures. Used in `net.fortuna.ical4j.validate.Validator` implementations to reduce the duplication of code in validity checks.

* javax.cache.cache-api [required] - Supports caching timzeone definitions.<commit_msg>Updated java cache docs<commit_after># iCal4j - iCalendar parser and object model

[RFC2445]: https://tools.ietf.org/html/rfc2445
[RFC2446]: https://tools.ietf.org/html/rfc2446
[RFC2447]: https://tools.ietf.org/html/rfc2447

[RFC5545]: https://tools.ietf.org/html/rfc5545
[RFC5546]: https://tools.ietf.org/html/rfc5546
[RFC5547]: https://tools.ietf.org/html/rfc5547

[Bintray Releases]: https://bintray.com/ical4j/maven/ical4j

[Introduction]: #introduction

[Setup]: #setup
[System requirements]: #system-requirements
[Release downloads]: #release-downloads
[Install with Maven]: #install-with-maven
[Install with Gradle]: #install-with-gradle

[Usage]: #usage

[Examples]: #examples

[Reference]: #reference
[Specifications]: #specifications

[Configuration]: #configuration
[Compatibility Hints]: #compatibility-hints

[Limitations]: #limitations

[Development]: #development
[Building with Gradle]: #building-with-gradle
[Redistribution]: #redistribution
[Contributing]: #contributing

#### Table of Contents

1. [Introduction - What is iCal4j?][Introduction]
2. [Setup - Download and installation of iCal4j][Setup]
    - [System requirements - What is required to use iCal4j][System requirements]
    - [Release downloads - Where to get iCal4j][Release downloads]
    - [Install with Maven]
    - [Install with Gradle]
3. [Usage - The iCal4j object model and how to use it][Usage]
    - [Examples - common usage scenarios][Examples]
4. [Reference - Specification][Reference]
    - [Specifications]
5. [Configuration options][Configuration]
    - [Compatibility Hints]
6. [Limitations - CUA compatibility, etc.][Limitations]
7. [Development - Guide for contributing to the iCalj project][Development]
    - [Building with Gradle]
    - [Redistribution]
    - [Contributing to iCal4j][Contributing]

## Introduction

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.

 - For a concise description of the goals and directions of iCal4j please
 take a look at the [open issues](https://github.com/ical4j/ical4j/issues).

 - You will find examples of how to use iCal4j in [the wiki](https://github.com/ical4j/ical4j/wiki)
 and throughout the [API documentation](https://ical4j.github.io/docs/ical4j/api).

 - Detailed descriptions of changes included in each release may be found
 in the [CHANGELOG](https://ical4j.github.io/docs/ical4j/release-notes).
 
 - iCal4j was created with the help of [Open Source](http://opensource.org) software.


## Setup

### System requirements

 - Java 7 or later

### Dependencies

In the interests of portability and compatibility with as many environments as possible, the number of dependent
libraries for iCal4j is kept to a minimum. The following describes the required (and optional) dependencies and the
functionality they provide.

* slf4j-api [required] - A logging meta-library with integration to different logging framework implementations. Used in all classes that require logging.

* commons-lang3 [required] - Provides enhancements to the standard Java library, including support for custom `equals()` and `hashcode()`
implementations. Used in all classes requiring custom equality implementations.

* commons-collections4 [required] - Provides enhancements to the standard Java collections API, including support for closures. Used in `net.fortuna.ical4j.validate.Validator` implementations to reduce the duplication of code in validity checks.

* javax.cache.cache-api [optional*] - Supports caching timzeone definitions. * NOTE: when not included you must set
a value for the `net.fortuna.ical4j.timezone.cache.impl` configuration
{'fraction_non_alphanumeric': 0.0998829496683574, 'fraction_numerical': 0.022499674860189882, 'mean_word_length': 4.80377358490566, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 22, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 16, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3967623', 'n_tokens_mistral': 2323, 'n_tokens_neox': 2176, 'n_words': 793}