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 [-v] [-h] 
               [-g] [-s] [-l] [-c CSV_EXPORT_FILE] 
               [-i CALENDAR_NICKNAMES [CALENDAR_NICKNAMES ...]] 
               [-t TEXT_FILTERS [TEXT_FILTERS ...]] 
               [-a DATE_OR_NUMBER] [-b DATE_OR_NUMBER]
               [-f CALENDAR_CONFIG_FILE] 
               [-d ICS_DIRECTORY] 
               [-n NUMBER_TO_COMPARE] 
               [-x CONVERSION_DICTIONARY_FILENAME]

Help / Version Info:
  -v, --version         Print version, then exit (ignoring below options).
  -h, --help            Print help message, 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_EXPORT_FILE    Export current schedules to CSV_EXPORT_FILE (alpha status).

Calendar Filter Options (applies to all Main Operations):
  -i CALENDAR_NICKNAMES [CALENDAR_NICKNAMES ...]
                        Only operate on calendars with an nickname identifier that is given
                        in the list of CALENDAR_NICKNAMES.
                        (Nickname identifiers are specified in the calendar list config file
                        and appear at the start of the filename of downloaded ics files.
                        (Default behavior: no restrictions. I.e., include all calendars.)

Event Filter Options (for changelogs, viewing schedules, and csv export):
  -t TEXT_FILTERS [TEXT_FILTERS ...]
                        Only include events with event summaries matching the text
                        of one or more of the specified TEXT_FILTERS.
                        (Default behavior: no text filters.)
  -a DATE_OR_NUMBER     Only include events that start AFTER a specified date.
                        Value must be EITHER a date in format YYYY-MM-DD, or a positive
                        integer representing # of days in the past.
                        (Default behavior: 1 day prior to today's date.)
  -b DATE_OR_NUMBER     Only include events that start BEFORE a specified date.
                        Value must be EITHER a date in format YYYY-MM-DD, or a positive
                        integer representing # of days in the future.
                        (Default behavior: no filter)

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

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

CSV Options (only applicable when -c option also specified):
  -x CONVERSION_DICTIONARY_FILENAME
                        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

Filename formats for downloaded ics files:

Downloaded .ics files have a filename format of ABC123__20200314.ics,
where "ABC123" is an identifier nickname for the calendar (a reasonable
identifier nickname for, say, a calendar which tracks an employee's
work schedule might be a last name or an employee ID number.)

"20200314" indicates that this particular version of the calendar
was downloaded on March 14, 2020.

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.3.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

ionical-0.2.3-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ionical-0.2.3.tar.gz
  • Upload date:
  • Size: 16.3 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.3.tar.gz
Algorithm Hash digest
SHA256 127b8c513c460c77cedf7aa4fc997bd859eecb4b143cbc818e9d7726c55a646b
MD5 7d550a0ffdc3dafc41056365def56b08
BLAKE2b-256 3efbb543acba95416d89d9ca7ac4cd67ac5d8f029f4ac79051b32ebf3b026e93

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ionical-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 16.2 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cad57f2adf71c164ee4f153b155e0141a63b077f98c5ff91674d22c186b10859
MD5 63d094ff6aac2307ae5ec8b50cb4bca0
BLAKE2b-256 c83b8132ce921f5ca0c0927138f04be5cf554112edc5d7d9a6a5d37e94b79f4f

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