Icalendar Calendar Command Line Interface
An iCalendar Command Line Interface
icalcli - a modification of gcalcli - is a Python command line front-end to your Calendar. It allows you to get your agenda, view weekly and monthly calendars (ascii text graphical calendar), search for events, add new events, delete events, and edit events.
Unlike gcalcli which is tied to Google Calendar,
icalcli is agnostic to (abstracts away from) the actual backend calendar service. It relies on a backend interface which interacts with the backend calendar to perform all the CRUD (Create, Retrieve, Update and Delete) operations on the actual calendar. The package includes two backends:
etesync_backendsubpackage provides a backend interface to the EteSync calendar. In fact,
icalcliwas created primarily to provide a command line interface to my self hosted
file_backendsubpackage provides a backend interface to a calendar contained in a local
icsfile. This is useful as a viewer/editor of
icsfiles. It is also useful to try out
icalciwithout having any other backend configured.
The two included backends would also be useful to those who wish to write their own backend interfaces.
icalcli requires the calendar to be presented to it as a list of icalendar events (
VEVENT). It is the responsibility of the backend interface to read the actual calendar and create this list of events. It must also perform all the CRUD (Create, Retrieve, Update and Delete) operations on the actual calendar.
- pyetesync the python client library for
EteSyncif you want to use the
Install from PyPI
pip install icalcli
Install from source
git clone https://github.com/jrvarma/icalcli.git cd icalcli python setup.py install
Command line arguments
icalcli provides a series of subcommands with the following functionality:
edit (e) edit calendar events agenda (g) get an agenda for a time period calw (w) get a week-based agenda in calendar format calm (m) get a month agenda in calendar format add (a) add a detailed event to the calendar search (s) (regex) search for events sync (y) sync the backend calendar quit (q) quit icalcli
icalcli runs interactively as an REPL (Read Evaluate Print Loop). Run
icalcli --help for more details.
icalcli <subcommand> --help gives help on each subcommand.
In the beginning,
icalcli executes a configuration script which is expected to create the object
backend_interface representing the backend interface initialized with the right authentication credentials to access the backend calendar. The configuration script is located, by default, at
~/.icalcli.py, but this can be changed with the
Example configuration for file_backend
from icalcli import ICSInterface backend_interface = ICSInterface("/path/to/ics-file")
Example configuration for etesync_backend
This configuration assumes that all the credentials are stored in a plain text (
json) file. In practice, you would use a more secure storage (perhaps, the
Gnome keyring) or just read it from the terminal.
from icalcli import EtesyncInterface import base64 import json conf_file = '/path/to/json-file' with open(conf_file, 'r') as fp: c = json.load(fp) backend_interface = EtesyncInterface( c['email'], c['userPassword'], c['remoteUrl'], c['uid'], c['authToken'], base64.decodebytes(c['cipher_key'].encode('ascii')))
Some screenshots are available at Github:
Agenda and Week Views
Adding an event
Searching and editing events
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size icalcli-0.9.1-py3-none-any.whl (26.5 kB)||File type Wheel||Python version py3||Upload date||Hashes View hashes|
|Filename, size icalcli-0.9.1.tar.gz (24.8 kB)||File type Source||Python version None||Upload date||Hashes View hashes|