# Install khal with Homebrew, apk, apt, dnf, Nix, pacman

CLI calendar application. Version 0.14.0 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:khal
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install khal
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add khal
```

  Evidence: Alpine Linux edge package indexes: khal from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install khal
```

  Evidence: Debian stable package indexes: khal from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install khal
```

  Evidence: Fedora Rawhide package metadata: khal from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#khal
```

  Evidence: nixpkgs package indexes: pkgs/by-name/kh/khal/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S khal
```

  Evidence: Arch Linux sync databases: khal from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

## Package facts

- **Package key:** brew:khal
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/khal>
- **Version:** 0.14.0
- **Source summary:** CLI calendar application
- **Homepage:** <https://lostpackets.de/khal/>
- **Repository:** <https://github.com/pimutils/khal>
- **Upstream docs:** <https://khal.readthedocs.io/>
- **License:** MIT
- **Source archive:** <https://files.pythonhosted.org/packages/31/30/04072c5adc3a5d4638a8c9f9c2cd8497832b079dbec0e32532cc95c1d74e/khal-0.14.0.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- ikhal (cli)
- khal (cli)
- ikhal (alias)
- khal (alias)

## Dependencies

- python@3.14

## Install behavior

- Post-install hook: not defined
- Bottle: available on all

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.14.0
- Local data: ok
- Upstream repository: https://lostpackets.de/khal/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

khal is a standards-based command-line and terminal calendar program for local iCalendar/vdir collections, commonly paired with vdirsyncer for CalDAV synchronization. Its interactive mode, ikhal, gives terminal users a text UI for browsing and editing calendars.

### Project history

The project copyright and changelog place khal's early development in the 2013-2014 period. By September 2014, version 0.3.0 introduced unified Sphinx-generated documentation and changed the configuration syntax. Version 0.5.0 on June 1, 2015 added search, at, birthday-calendar support, recurring-event options, and Python 3 support.

Version 0.8.0 on April 13, 2016 dropped Python 2 support, raised the vdirsyncer dependency, added the configure command, and moved the git repository to the pimutils GitHub organization. Later releases kept pace with Python and dependency changes, including 0.11.0 in April 2023 dropping Python versions before 3.8 and 0.14.0 in March 2026 dropping Python versions before 3.10.

### Adoption history

khal belongs to the Unix personal-information-management stack built around vdirsyncer and local vdir storage. Its README documents packaging for Debian/Ubuntu, Nix, Arch, Homebrew, Fedora, and FreeBSD, and notes that khal is packaged for most operating systems.

The project appealed to users who wanted scriptable, offline-friendly calendar workflows instead of browser-only calendaring. The split between khal and vdirsyncer kept synchronization separate from presentation, which matched the Unix style of composing small tools.

### How it is used

Users configure one or more local calendar collections, often synchronized from CalDAV by vdirsyncer, then use khal for agenda views, date queries, quick event creation, imports, searches, and terminal UI editing through ikhal.

### Why package nerds care

khal is significant in package-manager culture as part of the terminal PIM family: it turns CalDAV/iCalendar data into plain local files and a packageable CLI, making calendars available to shells, text UIs, and dotfile-managed systems.

### Timeline

- 2014-09-03: khal 0.3.0 introduced unified Sphinx documentation.
- 2015-06-01: khal 0.5.0 added search, at, birthday support, and Python 3 support.
- 2016-04-13: khal 0.8.0 dropped Python 2 support and moved to the pimutils GitHub organization.
- 2023-04-23: khal 0.11.0 dropped Python versions before 3.8.
- 2026-03-24: khal 0.14.0 dropped Python versions before 3.10 and added Python 3.14 support.

### Related projects

- vdirsyncer is the main companion synchronizer. khard is the related console address-book tool in the same terminal PIM ecosystem, while gcalcli and calendar-cli are documented alternatives with different storage and service assumptions.

### Sources

- <https://formulae.brew.sh/formula/khal>
- <https://github.com/pimutils/khal>
- <https://khal.readthedocs.io/>
- <https://raw.githubusercontent.com/pimutils/khal/master/CHANGELOG.rst>
- <https://raw.githubusercontent.com/pimutils/khal/master/README.rst>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: $XDG_CONFIG_HOME/khal/config, ~/.config/khal/config, ~/.khal/khal.conf, ./khal.conf
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** khal
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - khal - 1:0.11.4-1: normalized package name match | Debian stable package indexes: khal from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Standards based CLI and terminal calendar program | https://github.com/pimutils/khal
- Debian apt - khal-doc - 1:0.11.4-1: normalized package name match | Debian stable package indexes: khal-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Standards based CLI and terminal calendar program - documentation | https://github.com/pimutils/khal
- Nix - khal: normalized package name match | nixpkgs package indexes: pkgs/by-name/kh/khal/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - khal - 1:0.11.3-1: normalized package name match | Ubuntu 24.04 LTS package indexes: khal from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Standards based CLI and terminal calendar program | https://github.com/pimutils/khal
- Ubuntu apt - khal-doc - 1:0.11.3-1: normalized package name match | Ubuntu 24.04 LTS package indexes: khal-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Standards based CLI and terminal calendar program - documentation | https://github.com/pimutils/khal
- apk - khal - 0.14.0-r1: normalized package name match | Alpine Linux edge package indexes: khal from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | CLI calendar application build around CalDAV | https://lostpackets.de/khal
- apk - khal-bash-completion - 0.14.0-r1: normalized package name match | Alpine Linux edge package indexes: khal-bash-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Bash completions for khal | https://lostpackets.de/khal
- apk - khal-doc - 0.14.0-r1: normalized package name match | Alpine Linux edge package indexes: khal-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | CLI calendar application build around CalDAV (documentation) | https://lostpackets.de/khal
- apk - khal-fish-completion - 0.14.0-r1: normalized package name match | Alpine Linux edge package indexes: khal-fish-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Fish completions for khal | https://lostpackets.de/khal
- apk - khal-pyc - 0.14.0-r1: normalized package name match | Alpine Linux edge package indexes: khal-pyc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Precompiled Python bytecode for khal | https://lostpackets.de/khal
- apk - khal-zsh-completion - 0.14.0-r1: normalized package name match | Alpine Linux edge package indexes: khal-zsh-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Zsh completions for khal | https://lostpackets.de/khal
- dnf - khal - 0.13.0-17.fc45: normalized package name match | Fedora Rawhide package metadata: khal from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | CLI calendar application | https://github.com/pimutils/khal
- pacman - khal - 0.14.0-1: normalized package name match | Arch Linux sync databases: khal from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | CLI calendar application built around CalDAV | https://lostpackets.de/khal/


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Productivity CLI packages](https://www.automicvault.com/pkg/productivity-cli-packages/) - Matched curated productivity category metadata from av.db.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [gcalcli](https://www.automicvault.com/pkg/brew/gcalcli/) - Shares av.db curated category or tags: calendar, cli, productivity, python.
- [calcurse](https://www.automicvault.com/pkg/brew/calcurse/) - Shares av.db curated category or tags: calendar, cli, productivity.
- [ccal](https://www.automicvault.com/pkg/brew/ccal/) - Shares av.db curated category or tags: calendar, cli, productivity.
- [ddate](https://www.automicvault.com/pkg/brew/ddate/) - Shares av.db curated category or tags: calendar, cli, productivity.
- [diary](https://www.automicvault.com/pkg/brew/diary/) - Shares av.db curated category or tags: caldav, calendar, cli, productivity, terminal.
- [hebcal](https://www.automicvault.com/pkg/brew/hebcal/) - Shares av.db curated category or tags: calendar, cli, productivity.
- [ical-buddy](https://www.automicvault.com/pkg/brew/ical-buddy/) - Shares av.db curated category or tags: calendar, cli, productivity.
- [jcal](https://www.automicvault.com/pkg/brew/jcal/) - Shares av.db curated category or tags: calendar, cli, productivity.
- [vdirsyncer](https://www.automicvault.com/pkg/brew/vdirsyncer/) - Both packages touch the same language runtime or ecosystem. Shared terms: caldav, calendar, cli, productivity, python.
- [dooit](https://www.automicvault.com/pkg/brew/dooit/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, productivity, python, python-3-14, terminal.

## Combined YAML source

View the package source record on GitHub. [combined/khal.yml](https://github.com/automic-vault/db/blob/main/combined/khal.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
