Calendar Lock PEA - Encrypted iCalendar Application

Calendar Encryption

Please Donate To Bitcoin Address: [[address]]

Donation of [[value]] BTC Received. Thank You.

Calendar Lock PEA (PEA = Password Encrypting Archive) encrypts calendars and displays them in a month view. The shown calendars are never stored unencrypted on your disk (unless you explicitly decide to do that), but exists only in the memory (RAM).

The program is small and consists of a single archive file. Installation is not required.

The Calendar Lock PEA
  • runs on nearly all operating systems with a Java Runtime Environment,

  • is compatible with iCalendar data (ics files as defined in RFC 5545 and RFC 7986), such as those used in Android, OS/iOS, Microsoft Outlook and many other areas,

  • Calendar Lock PEA: month view Calendar Lock PEA: Month View
  • uses functions to derive the key from the password, that can also protect against custom-hardware attacks, reducing one vulnerability of password-based encryption programs,

  • protects the integrity of the data by an authenticated encryption (EAX mode) in addition to the confidentiality and prevents unauthorized and unnoticed tampering of the data,

  • is Open Source (GPL v2) and free to use.

Calendar Data

Calendar data should always be available and never be lost, which is one reason they are often stored in the cloud.

At the same time, calendars contain very sensitive and personal information and are a worthwhile target for snooping. Many commercial services are trying to access this data to create user profiles, government agencies are trying to gather information about the behavior of potential dissidents, and scammers are just buying and selling these data.

This application intends to protect calendar data.

Download Options for Calendar Lock PEA 0.3 (beta):

Calendar Lock PEA: main frame with day view Calendar Lock PEA: Day View
Key Derivation Function: Catena-Dragonfly
Cipher (EAX-Mode): Threefish
Hash Function: Blake2b
(Size: 369 KiB)
MD5 checksum: 1cb4ac5d5be88e2fca0cc935719399a7
SHA-256: 81993fa20fcde939a18fbdaf4f81c62356141f0fa73e848ab06323deec532778
(Size: 369 KiB)
MD5 checksum: 6b7d498a93a66dc144447e5326dd77cc
SHA-256: 4d58f1aed964fb07c378e94c370be52dc81bd531be82bf92243fe95660c2f885

If you want to look into the source code:
(Size: 235 KiB)

What's new in version 0.3-beta?

  • Day view
  • Event info window instead of tool tips to show events
  • Priority of events: red border signals the priority of the event
  • Event setting starts with time depending on mouse click location
  • Event setting: end time switches automatically to one hour after start time, when start time is changed
  • Minor modification in appearance (buttons, background color and white font for events with dark color, short month names) and minor bug fixes:
    • navigation "year" closes now automatically,
    • save button now does not appear when changing the view,
    • no duplicate events now when merging two calendars if time stamp is missing,
    • program now does not freeze when importing very large calendars,
    • merging two calendars now depends on LAST-MODIFIED property if available


Calendar Lock PEA is in an early stage. So far, there are a monthly view and a day view: a weekly view, a yearly overview and an event list should be added. Some important features are not yet implemented, such as multi-lingual support, LOCATION, STATUS, CATEGORY... The graphical user interface and accessibility support are to be improved.

Password-Dialog Password dialog to open the Calendar Lock PEA

The Long-time Goal of this Application

It's nice to have calendars protected on a PC, but as long as mobile devices automatically pass such data to companies like Google, Microsoft or Apple, that's not much.

In principle, it is possible to synchronize these data between different devices without ever storing them unencrypted on any device or any cloud server. Necessary for this is an application on each of these systems, which indeed displays this data, but always stores and synchronizes them in encrypted form. That's a lot of work. And you have to start from scratch. Synchronization standards such as the CalDAV protocol completely ignore user privacy and rule out the possibility of encryption in principle.

The Calendar Lock PEA is also meant as a very first step towards this long term goal. Any help to achieve this goal is welcome: bug reports, reviews, programming, or even donation.

Thanks to all who have improved, tested or reviewed Calendar Lock PEA:
  • Laxman Singh wrote a short manual and a review for Calendar Lock PEA 0.2 on ilovefreesoftware
  • RubĂ©n Velasco wrote a short manual in Spanish and a review for Calendar Lock PEA 0.2 on SoftZone
  • Doriann Marquez reviewed Calendar Lock PEA 0.2 on TekCrispy

Compatibility with iCalendar Standards RFC 5545 and RFC 7986

Although there are two Internet Drafts that define properties for iCalendar to ensure compatibility, the new RFC 7986 draft from 2016 is still not very popular. Instead, there are several unofficial extensions of RFC 5545 in use.

You are able to import external ICS files with some of the old property formats and you can export ICS files from the Calendar Lock PEA to use in other applications either in the new standard (RFC 7986) or in the old one with some non-standardized but widely used properties (RFC 5545 only).

So far, the Calendar Lock PEA uses only a basic set of properties, which is to be gradually expanded with every new release. That means, that you will loose some properties like the event category or location at the moment if import an ICS file. Recurring events are basically supported, but more far-reaching specifications of recurrence rules like every second Monday of the third month are not yet displayed correctly.

How to use

Start the Jar Archive

You need OpenJDK, Java Runtime Environment (JRE) or something similar. On most systems there is at least one available.
These PEAs are single Java jar archives, a file with the extension "jar". If you are familiar with jar archives, you can skip the following part.

Linux, BSD systems and Mac OS and other UNIX like systems: unpack the compressed download file (tar or unzip), store it for example in your home folder, change in the directory in console and type: java -jar YOUR_ARCHIVE.jar or try to double click the file
Windows: Normally you can open the jar archive just by a double click. But sometimes other programs overwrites this possibility and instead unpack the jar archive. In this case you can change the default program to open a jar archive or use the terminal, change in the directory of your archive and type java -jar YOUR_ARCHIVE.jar or try to double click the file windows_start_helper.bat
Initialization: First Start

The first time you start the Calendar Lock PEA, the program will initialize. You are asked for a password, a calendar name and color.
You can reset the password later in the menu.