Awesome Open Source
Awesome Open Source


Continuous Integration:
Code Coverage:
Maven Central: Maven Central
Chat Room: Gitter
License: FreeBSD License

biweekly is an iCalendar library written in Java. The project aims to provide a well documented, easy to use API for reading and writing iCalendar data.

Downloads | Javadocs | Maven/Gradle | Documentation

Code sample

Reading an iCal

String str =
  "VERSION:2.0\r\n" +
  "PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN\r\n" +
  "BEGIN:VEVENT\r\n" +
    "UID:0123\r\n" +
    "DTSTAMP:20130601T080000Z\r\n" +
    "SUMMARY;LANGUAGE=en-us:Team Meeting\r\n" +
    "DTSTART:20130610T120000Z\r\n" +
    "DURATION:PT1H\r\n" +
  "END:VEVENT\r\n" +

ICalendar ical = Biweekly.parse(str).first();

VEvent event = ical.getEvents().get(0);
String summary = event.getSummary().getValue();

Writing an iCal

ICalendar ical = new ICalendar();
  VEvent event = new VEvent();
    Summary summary = event.setSummary("Team Meeting");

    Date start = ...

    Duration duration = new Duration.Builder().hours(1).build();

    Recurrence recur = new Recurrence.Builder(Frequency.WEEKLY).interval(2).build();

String str = Biweekly.write(ical).go();


  • Simple, intuitive API (see Examples).
  • Android compatibility.
  • Full compliance with iCalendar and vCalendar specifications (see Supported Specifications).
  • Supports XML and JSON formats (see Supported Specifications).
  • Full timezone support (uses for timezone definitions).
  • Extensive unit test coverage.
  • Low Java version requirement (1.6 or above).
  • Few dependencies on external libraries. Dependencies can be selectively excluded based on the functionality that is needed (see Dependencies).





implementation 'net.sf.biweekly:biweekly:0.6.6'
// or use the `api` keyword if you are exposing parts of biweekly in your API

Build Instructions

biweekly uses Maven as its build tool, and adheres to its convensions.

To build the project: mvn compile
To run the unit tests: mvn test
To build a JAR: mvn package

Questions / Feedback

You have some options:

Please submit bug reports and feature requests to the issue tracker.

This project was born on June 23, 2013 on Sourceforge. It migrated to Github on November 22, 2015.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Java (412,144
Gradle (13,063
Timezone (2,361
Ical (747
Icalendar (561