Metadata-Version: 2.5
Name: calendaring-jmap
Version: 2.0.1
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/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.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Office/Business :: Scheduling
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: icalendar>=7.3.0
Requires-Dist: niquests>=3.21.1
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: wassima>=2.1.5
Provides-Extra: requests
Requires-Dist: requests>=2.34.2; extra == 'requests'
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
```

## 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/stable/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, the conversion target for iCalendar
- [draft-ietf-calext-jscalendar-icalendar](https://datatracker.ietf.org/doc/draft-ietf-calext-jscalendar-icalendar/): iCalendar and JSCalendar conversion rules
- [RFC 9610](https://www.rfc-editor.org/rfc/rfc9610): JMAP Contacts
- [RFC 9670](https://www.rfc-editor.org/rfc/rfc9670): JMAP Sharing and Principals
- [draft-ietf-jmap-tasks](https://datatracker.ietf.org/doc/draft-ietf-jmap-tasks/): JMAP Tasks (expired; see the [server compatibility](https://calendaring-jmap.readthedocs.io/en/stable/reference/server-compatibility.html) page, no known server implements it yet)

## Changelog

See the [change log](https://calendaring-jmap.readthedocs.io/en/stable/changelog.html).

## Contributing

See the [contributing guide](https://calendaring-jmap.readthedocs.io/en/stable/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).
