icalendar-anonymizer#
Strip personal data from iCalendar files while preserving technical properties for bug reproduction.
Install with pip or Docker
Using the anonymize() function
Using icalendar-anonymize and ican commands
REST API endpoints for anonymization
Run locally with Docker for data privacy
Function signatures and module documentation
Development workflow and code style
What Gets Anonymized?#
Personal data is hashed using SHA-256:
Event summaries, descriptions, locations
Attendee and organizer names
Comments and categories
Technical properties are preserved for bug reproduction:
Dates and times (DTSTART, DTEND, DUE)
Recurrence rules (RRULE, RDATE, EXDATE)
Metadata (STATUS, PRIORITY, SEQUENCE)
Timezones (complete VTIMEZONE components)
See the Python API for the complete property reference table.
Features#
- Deterministic hashing
Same input + same salt = same output
- Structure preservation
Word count and email format stay intact
- UID uniqueness
UIDs remain unique across the calendar
- Customizable
Use
preserveto keep specific properties- Secure by default
Unknown properties get anonymized
- Well tested
High test coverage with parametrized tests
- Comprehensive documentation
βIf itβs not documented, itβs broken.β
Documentation#
Project Information#
- License
AGPL-3.0-or-later
- Source Code
- Issue Tracker
- PyPI