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
Publish an anonymized calendar with Open Web Calendar
Practical workflows for common scenarios
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