Metadata-Version: 2.5
Name: calendaring-jmap
Version: 1.1.0
Summary: JMAP (RFC 8620) calendar client library
Project-URL: Repository, https://github.com/pycalendar/calendaring-jmap
Project-URL: Issues, https://github.com/pycalendar/calendaring-jmap/issues
Project-URL: Documentation, https://calendaring-jmap.readthedocs.io/en/stable/
Project-URL: Changelog, https://calendaring-jmap.readthedocs.io/en/stable/reference/changelog.html
Author: Sashank Bhamidi
License-Expression: AGPL-3.0-or-later
License-File: LICENSE
Keywords: calendar,calendaring,ical,icalendar,jmap,rfc8620
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Scheduling
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: icalendar>=7.3.0
Requires-Dist: niquests>=3.21.1
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: requests>=2.34.2
Provides-Extra: async
Requires-Dist: niquests[asyncio]; extra == 'async'
Provides-Extra: dev
Requires-Dist: coverage==7.16.0; extra == 'dev'
Requires-Dist: mypy==1.18.2; extra == 'dev'
Requires-Dist: pytest-asyncio==1.4.0; extra == 'dev'
Requires-Dist: pytest-cov==7.1.0; extra == 'dev'
Requires-Dist: pytest==9.1.1; extra == 'dev'
Requires-Dist: ruff==0.16.6; extra == 'dev'
Requires-Dist: towncrier==26.9.0; extra == 'dev'
Requires-Dist: types-pyyaml==6.0.12.20260906; extra == 'dev'
Provides-Extra: docs
Requires-Dist: pydata-sphinx-theme==0.21.0; extra == 'docs'
Requires-Dist: sphinx-autobuild==2025.8.25; extra == 'docs'
Requires-Dist: sphinx-copybutton==0.5.2; extra == 'docs'
Requires-Dist: sphinx-design==0.7.0; extra == 'docs'
Requires-Dist: sphinx-issues==6.0.0; extra == 'docs'
Requires-Dist: sphinx-notfound-page==1.1.0; extra == 'docs'
Requires-Dist: sphinx==9.1.0; extra == 'docs'
Description-Content-Type: text/markdown

<!--- SPDX-FileCopyrightText: 2026 calendaring-jmap contributors -->
<!--- SPDX-License-Identifier: AGPL-3.0-or-later -->

# calendaring-jmap

Calendar operations over JMAP (RFC 8620 + draft-ietf-jmap-calendars).

Part of the [Python Calendaring Ecosystem](https://pycal.org).

[![Documentation](https://readthedocs.org/projects/calendaring-jmap/badge/?version=stable)](https://calendaring-jmap.readthedocs.io/en/stable/)
[![Tests](https://github.com/pycalendar/calendaring-jmap/actions/workflows/tests.yml/badge.svg)](https://github.com/pycalendar/calendaring-jmap/actions/workflows/tests.yml)
[![codecov](https://codecov.io/gh/pycalendar/calendaring-jmap/branch/main/graph/badge.svg)](https://codecov.io/gh/pycalendar/calendaring-jmap)
[![REUSE status](https://api.reuse.software/badge/github.com/pycalendar/calendaring-jmap)](https://api.reuse.software/info/github.com/pycalendar/calendaring-jmap)
[![License: AGPL-3.0-or-later](https://img.shields.io/badge/License-AGPL%203.0--or--later-blue.svg)](LICENSE)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)

## Installation

```bash
pip install calendaring-jmap
```

Not yet published to PyPI.

## Usage

```python
from calendaring_jmap import get_jmap_client

with get_jmap_client(
    url="https://jmap.example.com/.well-known/jmap",
    username="alice",
    password="secret",
) as client:
    calendars = client.get_calendars()
    for cal in calendars:
        print(cal.name)
```

See the [quickstart](https://calendaring-jmap.readthedocs.io/en/latest/tutorials/quickstart.html) for authentication options, error handling, and configuration from environment variables or a YAML file.

## Documentation

Full documentation: https://calendaring-jmap.readthedocs.io/

## Specs

- [RFC 8620](https://www.rfc-editor.org/rfc/rfc8620): JMAP core
- [draft-ietf-jmap-calendars](https://datatracker.ietf.org/doc/draft-ietf-jmap-calendars/): JMAP Calendars
- [RFC 8984](https://www.rfc-editor.org/rfc/rfc8984): JSCalendar

## Contributing

See the [contributing guide](https://calendaring-jmap.readthedocs.io/en/latest/contribute.html).

## Funding

This project is funded through [NGI0 Commons Fund](https://nlnet.nl/commonsfund), a fund established by [NLnet](https://nlnet.nl) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu) program. Learn more at the [NLnet project page](https://nlnet.nl/project/Python-Webcalendaring).

[<img src="https://nlnet.nl/logo/banner.png" alt="NLnet foundation logo" width="20%" />](https://nlnet.nl)
[<img src="https://nlnet.nl/image/logos/NGI0_tag.svg" alt="NGI Zero Logo" width="20%" />](https://nlnet.nl/commonsfund)

## License

AGPL-3.0-or-later. See [LICENSE](LICENSE).
