Skip to main content

Non-interactive CLI for managing local iCalendar (.ics) files

Project description

kcal

Non-interactive CLI for managing local iCalendar (.ics) files. Designed for scripting and AI agent integration — no GUI, no server, just direct .ics file manipulation.

Install

pip install kcal-cli

Or with uv:

uv tool install kcal-cli

Usage

All commands require -f <path> pointing to your .ics file.

List events

kcal -f ~/calendar.ics list
kcal -f ~/calendar.ics list --date 2026-06-25

Add a timed event

kcal -f ~/calendar.ics add "Meeting" -s "2026-06-26 09:00" -e "2026-06-26 10:00"

Add an all-day event

kcal -f ~/calendar.ics add "Holiday" -s "2026-07-04" --allday

For multi-day events, set --end to the day after the last day (iCal convention):

kcal -f ~/calendar.ics add "Conference" -s "2026-08-01" -e "2026-08-04" --allday

Edit an event

kcal -f ~/calendar.ics edit 1cc4704e --summary "New title"
kcal -f ~/calendar.ics edit 1cc4704e --start "2026-06-26 10:00" --end "2026-06-26 11:00"
kcal -f ~/calendar.ics edit 1cc4704e --start "2026-06-26" --allday

Delete an event

kcal -f ~/calendar.ics delete 1cc4704e

UID prefix matching — only the first few characters of the event UID are needed.

Options

Flag Description
-f, --file Path to .ics file (required)
-s, --start Start date/time (YYYY-MM-DD HH:MM or YYYY-MM-DD)
-e, --end End date/time (optional for all-day events)
--allday Create/convert to all-day event (uses VALUE=DATE)
-d, --description Event description
-l, --location Event location

Notes

  • Creates the .ics file if it doesn't exist
  • All-day events use proper VALUE=DATE entries (not midnight-to-midnight)
  • Works with KOrganizer, GNOME Calendar, Thunderbird, or any iCal-compatible app
  • If your calendar app is open, you may need to refresh to see changes

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kcal_cli-0.1.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kcal_cli-0.1.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file kcal_cli-0.1.0.tar.gz.

File metadata

  • Download URL: kcal_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Void","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for kcal_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 708cf444173b782f59d9aba21fd498ed4443674b7bb8dcf37ddba2697c4fdd90
MD5 d9dac88b6b76c474787c12833a943f0e
BLAKE2b-256 5d2df67d48a3a02efd0343fcc5a418137a9b2924336f916b7f451a3279ed625c

See more details on using hashes here.

File details

Details for the file kcal_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kcal_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Void","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for kcal_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f4d35440e19b5249d8a7c06151b11f8e7f54eeef3c6df456d83ae004649e2ba
MD5 11f27e357cce1dd7ecdb8818e7472d96
BLAKE2b-256 ed54184ff0f4fe85957d16924571a1b29acdb758bc5878d2d50203f102016d90

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page