View on GitHub


Libical is an Open Source implementation of the iCalendar protocols and protocol data units.

Download this project as a .zip file Download this project as a tar.gz file


LIBICAL -- an implementation of iCalendar protocols and data formats

Most of the code in here was written by Eric Busboom with help from dozens of contributors. It is currently maintained by Art Cancro and Wilfried Goesgens.

Libical is an Open Source implementation of the iCalendar protocols and protocol data units. The iCalendar specification describes how calendar clients can communicate with calendar servers so users can store their calendar data and arrange meetings with other users.

Libical implements RFC2445, RFC2446 and some of RFC2447 the CalDav scheduling extensions in RFC6638; iCalendar extensions in RFC7986; plus the iCalendar iMIP protocol in RFC6047.

See the API Documentation.


The code and datafiles in this distribution are licensed under the Mozilla Public License (MPL) v2.0. See for a copy of the license.

Alternately, you may use libical under the terms of the GNU Library General Public License (LGPL) v2.1. See for a copy of the license.

This dual license ensures that the library can be incorporated into both proprietary code and GPL'd programs, and will benefit from improvements made by programmers in both realms. I will only accept changes into my version of the library if they are similarly dual-licensed.


Portions of this distribution are (C) Copyright 1996 Apple Computer, Inc., AT&T Corp., International Business Machines Corporation and Siemens Rolm Communications Inc. See src/libicalvcal/README.TXT for details.

Libical Users

In no particular order:

Get Involved

Subscribe to our mailing lists:

For developer discussions

For general discussions about libical and related projects

Report bugs to our issue tracker at

Building the library

See the top-level Install.txt file.

Using the Library

See the API Documentation.

There is rudimentary, unfinished documentation in the /doc directory, and annotated examples in /examples and the test code in src/test.