Skip to main content

command line tool for tracking ical changes

Project description

Ionical - keeping an eye on icals

Installing via pip:

$ pip install ionical

Command line usage:

Usage: ionical [-h] [-v] 
               [-g] [-s] [-l] [-c CSV_FILE] 
               [-i IDS [IDS ...]] 
               [-t TEXT_FILTERS [TEXT_FILTERS ...]] [-a START_DATE] [-b END_DATE] 
               [-f CALENDAR_LIST_FILE] [-d DIRECTORY]
               [-n NUM_LOOKBACKS] [-x CSV_CONVERSION_FILE]


Help / Version Info:
  -h, --help            Print help message, then exit (ignoring below options).
  -v, --version         Print ionical version, then exit (ignoring below options).

Main Operations (can specify one or more, but at least one MUST be specified):
  -g, --get_today       Download current .ics files and label them with today's date. 
                        This will be done prior to running any other Main Operations. 
                        (If not specified, operations will use only .ics files 
                        which have previously been downloaded.)
  -s, --schedule        Display events from the most recent version of each calendar.
  -l, --changelog       Show changelog(s) between schedule versions from multiple dates.
  -c CSV_FILE, --csv_file CSV_FILE
                        Export current schedules to CSV_FILE (alpha status).

Calendar Filter Options (applies to all Main Operations):
  -i IDS [IDS ...], --ids IDS [IDS ...]
                        Only operate on calendars specified in the list of calendar IDS. 
                        (An ID is a 'nickname' specified in the calendar list config file.) 
                        (Default behavior: no restrictions. I.e., include all calendars  
                        listed in the config file.)

Event Filter Options (for changelogs, viewing schedules, and csv export):
  -t TEXT_FILTERS [TEXT_FILTERS ...], --text_filters TEXT_FILTERS [TEXT_FILTERS ...]
                        Filter EVENTS by text that appears in event summary field.  
                        (Default behavior: no text filters.)
  -a START_DATE, --start_date START_DATE
                        Apply actions only to EVENTS occuring AFTER specified date.  
                        Value must be EITHER a date in format YYYY-MM-DD, or a positive 
                        integer representing # of days before today. 
                        (Default behavior: 1 days before today's date.)
  -b END_DATE, --end_date END_DATE
                        Apply actions only to EVENTS occuring BEFORE specified date. 
                        Value must be EITHER a date in format YYYY-MM-DD, or a positive 
                        integer representing # of days after today.
                        (Default behavior: no filter)

General File/Directory Configuration Options:
  -f CALENDAR_LIST_FILE, --calendar_list_file CALENDAR_LIST_FILE
                        Filename containing list of calendars with associated info.
                        (In JSON format: [[NICKNAME, FULLNAME, URL, TIME_ZONE], ... ] )
                        (Default: ./calendar_list.json)
  -d DIRECTORY, --directory DIRECTORY
                        Directory where downloaded .ics files are stored.
                        (Default: ./)

Changelog Options (only applicable when -l option also specified):
  -n NUM_LOOKBACKS, --num_lookbacks NUM_LOOKBACKS
                        Number of past schedule versions (per person) to compare.  
                        [Only used when displaying changelogs with -l option.]  
                        (Default behavior: 2 'lookbacks')

CSV Options (only applicable when -c option also specified):
  -x CSV_CONVERSION_FILE, --csv_conversion_file CSV_CONVERSION_FILE
                        JSON file w/ dictionary of conversion terms. 
                        [Only used when generating CSV via -c option.]
                        (Default: ./csv_conversion_table.json)

Installing from respository:

$ git clone https://github.com/danyul/ionical
$ cd ionical
$ python -m venv env
$ source env/bin/activate
$ pip install -e ".[test]"

If on Windows, replace 'source env/bin/activate' with:

$ .\env\Scripts\activate

Note:

ionical has been successfully used to track schedules changes in ics files generated by Amion (http://amion.com/). However, it has not been extensively tested on ics files from other sources.

0.1.0

Initial release

0.1.10

Smattering of fixes/tweaks

0.2.0 (12/8/2020)

  • Substantial help message cleanup
  • Changed/renamed multiple CLI options

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

ionical-0.2.2.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

ionical-0.2.2-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file ionical-0.2.2.tar.gz.

File metadata

  • Download URL: ionical-0.2.2.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for ionical-0.2.2.tar.gz
Algorithm Hash digest
SHA256 edbbe2337db89d8fe4571a18606e1ee0dcd30a90c887e5d39e97f8b4f695bd60
MD5 b8b8e06111ce1bf83fed12cdf6190232
BLAKE2b-256 b885e0f9a9c8c251cd42c16e44f305dfdcb1302b59c2eda57f9292248f6e1505

See more details on using hashes here.

File details

Details for the file ionical-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: ionical-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for ionical-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c504c5bf9de8bfb2af25a515c8ed1e831e7740e34744e3ff7a6da47240b244ff
MD5 6c2d1edf9a2b66b51bd4642181837485
BLAKE2b-256 ff0a8e3b550f7197d7515a76335454fe727e05cdfa77d3e96ba039fd37793a41

See more details on using hashes here.

Supported by

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