Metadata-Version: 2.4
Name: icalendar-anonymizer
Version: 0.1.3
Summary: Strip personal data from iCalendar files while preserving technical properties for bug reproduction
Project-URL: Homepage, https://docs.icalendar-anonymizer.com
Project-URL: Documentation, https://docs.icalendar-anonymizer.com
Project-URL: Repository, https://github.com/pycalendar/icalendar-anonymizer
Project-URL: Changelog, https://docs.icalendar-anonymizer.com/stable/changelog.html
Project-URL: Issues, https://github.com/pycalendar/icalendar-anonymizer/issues
Project-URL: Discussions, https://github.com/pycalendar/icalendar-anonymizer/discussions
Project-URL: source_archive, https://github.com/pycalendar/icalendar-anonymizer/archive/caae1798a6e2370b9f0cf780fe6f845e09dc7a20.zip
Author-email: Sashank Bhamidi <hello@sashank.wiki>, Nicco Kunzmann <niccokunzmann@rambler.ru>, Abe Hanoka <abe@habet.dev>
Maintainer-email: Sashank Bhamidi <hello@sashank.wiki>, Nicco Kunzmann <niccokunzmann@rambler.ru>, Abe Hanoka <abe@habet.dev>
License-Expression: AGPL-3.0-or-later
License-File: LICENSE
Keywords: anonymizer,calendar,icalendar,ics,privacy,vcalendar
Classifier: Development Status :: 3 - Alpha
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
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Office/Business :: Scheduling
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: icalendar>=7.0.0
Provides-Extra: all
Requires-Dist: build>=1.3; extra == 'all'
Requires-Dist: click>=8.3.1; extra == 'all'
Requires-Dist: commitizen>=4.10; extra == 'all'
Requires-Dist: coverage>=7.11; extra == 'all'
Requires-Dist: fastapi>=0.128.0; extra == 'all'
Requires-Dist: httpx>=0.28.1; extra == 'all'
Requires-Dist: pre-commit>=4.4; extra == 'all'
Requires-Dist: pydata-sphinx-theme>=0.16.0; extra == 'all'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'all'
Requires-Dist: pytest-cov>=6.0; extra == 'all'
Requires-Dist: pytest>=9.0; extra == 'all'
Requires-Dist: python-multipart>=0.0.18; extra == 'all'
Requires-Dist: reuse>=6.2; extra == 'all'
Requires-Dist: ruff>=0.14.0; extra == 'all'
Requires-Dist: sphinx-copybutton>=0.5.2; extra == 'all'
Requires-Dist: sphinx-design>=0.6.0; extra == 'all'
Requires-Dist: sphinx>=8.2; extra == 'all'
Requires-Dist: twine>=6.2; extra == 'all'
Requires-Dist: uvicorn>=0.38.0; extra == 'all'
Provides-Extra: cli
Requires-Dist: click>=8.3.1; extra == 'cli'
Provides-Extra: dev
Requires-Dist: build>=1.3; extra == 'dev'
Requires-Dist: commitizen>=4.10; extra == 'dev'
Requires-Dist: coverage>=7.11; extra == 'dev'
Requires-Dist: pre-commit>=4.4; extra == 'dev'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
Requires-Dist: pytest-cov>=6.0; extra == 'dev'
Requires-Dist: pytest>=9.0; extra == 'dev'
Requires-Dist: reuse>=6.2; extra == 'dev'
Requires-Dist: ruff>=0.14.0; extra == 'dev'
Requires-Dist: twine>=6.2; extra == 'dev'
Provides-Extra: doc
Requires-Dist: pydata-sphinx-theme>=0.16.0; extra == 'doc'
Requires-Dist: sphinx-copybutton>=0.5.2; extra == 'doc'
Requires-Dist: sphinx-design>=0.6.0; extra == 'doc'
Requires-Dist: sphinx>=8.2; extra == 'doc'
Provides-Extra: test
Requires-Dist: click>=8.3.1; extra == 'test'
Requires-Dist: coverage>=7.11; extra == 'test'
Requires-Dist: hypothesis>=6.147; extra == 'test'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'test'
Requires-Dist: pytest-cov>=6.0; extra == 'test'
Requires-Dist: pytest-httpx>=0.30.0; extra == 'test'
Requires-Dist: pytest>=9.0; extra == 'test'
Provides-Extra: web
Requires-Dist: fastapi>=0.128.0; extra == 'web'
Requires-Dist: httpx>=0.28.1; extra == 'web'
Requires-Dist: python-multipart>=0.0.18; extra == 'web'
Requires-Dist: uvicorn>=0.38.0; extra == 'web'
Description-Content-Type: text/markdown

<!--- SPDX-FileCopyrightText: 2025 icalendar-anonymizer contributors -->
<!--- SPDX-License-Identifier: AGPL-3.0-or-later -->

# icalendar-anonymizer

Strip personal data from iCalendar files while preserving technical properties for bug reproduction.

Calendar bugs are hard to reproduce without actual calendar data, but people can't share their calendars publicly due to privacy concerns. This tool uses hash-based anonymization to remove sensitive information (names, emails, locations, descriptions) while keeping all date/time, recurrence, and timezone data intact.

[![Documentation](https://readthedocs.org/projects/icalendar-anonymizer/badge/?version=stable)](https://docs.icalendar-anonymizer.com/stable/)
[![Tests](https://github.com/pycalendar/icalendar-anonymizer/actions/workflows/tests.yml/badge.svg)](https://github.com/pycalendar/icalendar-anonymizer/actions/workflows/tests.yml)
[![codecov](https://codecov.io/gh/pycalendar/icalendar-anonymizer/branch/main/graph/badge.svg?token=BeroSsugTc)](https://codecov.io/gh/pycalendar/icalendar-anonymizer)
[![PyPI version](https://img.shields.io/pypi/v/icalendar-anonymizer.svg)](https://pypi.org/project/icalendar-anonymizer/)
[![Python versions](https://img.shields.io/pypi/pyversions/icalendar-anonymizer.svg)](https://pypi.org/project/icalendar-anonymizer/)
[![Container image](https://img.shields.io/badge/ghcr.io-pycalendar%2Ficalendar--anonymizer-blue)](https://github.com/pycalendar/icalendar-anonymizer/pkgs/container/icalendar-anonymizer)
[![License: AGPL-3.0-or-later](https://img.shields.io/badge/License-AGPL%203.0--or--later-blue.svg)](https://github.com/pycalendar/icalendar-anonymizer?tab=AGPL-3.0-1-ov-file#readme)
[![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)

## Usage

**Web Service:** https://icalendar-anonymizer.com

For installation and other usage options, see the [documentation](https://docs.icalendar-anonymizer.com/stable/).

## Contributing

See the contributing guide at https://docs.icalendar-anonymizer.com/stable/contributing.html.

## License

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