Metadata-Version: 2.0
Name: icalendar-light
Version: 0.2.0
Summary: Light and easy iCalendar event reader
Home-page: https://github.com/idlesign/icalendar_light
Author: Igor `idle sign` Starikov
Author-email: idlesign@yandex.ru
License: BSD 3-Clause License
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: License :: OSI Approved :: BSD License
Provides-Extra: cli
Requires-Dist: python-dateutil
Provides-Extra: cli
Requires-Dist: click; extra == 'cli'

icalendar_light
===============
https://github.com/idlesign/icalendar_light

|release| |lic| |ci| |coverage|

.. |release| image:: https://img.shields.io/pypi/v/icalendar_light.svg
    :target: https://pypi.python.org/pypi/icalendar_light

.. |lic| image:: https://img.shields.io/pypi/l/icalendar_light.svg
    :target: https://pypi.python.org/pypi/icalendar_light

.. |ci| image:: https://img.shields.io/travis/idlesign/icalendar_light/master.svg
    :target: https://travis-ci.org/idlesign/icalendar_light

.. |coverage| image:: https://img.shields.io/coveralls/idlesign/icalendar_light/master.svg
    :target: https://coveralls.io/r/idlesign/icalendar_light


Description
-----------

*Light and easy iCalendar event reader*

No fancy stuff, just iCalendar (``.ics``) events reading.

* Requires Python 3.6+;
* Uses ``namedtuple`` for event representation;
* Features iterative event reading to be fast and minimize memory usage.


API
---

.. code-block:: python

    from icalendar_light.toolbox import Calendar

    for event in Calendar.iter_events_from_file('my_calendar.ics'):
        print(Calendar.event_stringify(event))

    # Or get events upcoming in next 5 days from iCalendar represented as lines:
    lines = []  # Let's imagine this one is not empty %)
    events = Calendar.iter_events_upcoming(lines, days_forward=5)


CLI
---

Requires `click` package (can be installed with: `pip install icalendar_light[cli]`).

.. code-block:: bash

    ; Show upcoming event for next 90 days
    $ icalendar_light upcoming my_calendar.ics --days 90


