Skip to content

Ics Privacy Scrub MCP tool

MCP findutils:ics_privacy_scrub

Redact an iCalendar (.ics) export before sharing it: per field, keep, generalize or remove the title (SUMMARY), description, location, links (URL, CONFERENCE and vendor meeting links), attendees, organizer, attachments, comments and categories. Defaults keep the schedule and hide the details: titles become "Busy", descriptions, locations, links, attendees, organizer, attachments and comments are removed, categories stay, alarms are removed, every UID is replaced (a recurring series keeps one shared UID), CLASS is set to PRIVATE, and vendor X- properties, CONTACT and RESOURCES are removed. DTSTART, DTEND, DURATION, RRULE, EXDATE, RDATE, RECURRENCE-ID, STATUS and TRANSP are kept, and shift_days can move every date by whole days without touching the TZID. Generalize writes "Private" for text fields, numbered stand-ins such as "Attendee 1 <[email protected]>" for people, and only the scheme and host of a link. Recurrence rules are never expanded and no calendar URL is fetched.

Needs an API key. Running a tool needs an API key. Keys are not for sale yet: ask for early access. About API keys

Arguments

application/json
  • input

    string required

    The .ics file contents.

  • summary

    string optional

    What to do with SUMMARY: keep, generalize or remove. Default generalize. One of keep · generalize · remove. Default "generalize".

  • description

    string optional

    What to do with DESCRIPTION: keep, generalize or remove. Default remove. One of keep · generalize · remove. Default "remove".

  • location

    string optional

    What to do with LOCATION: keep, generalize or remove. Default remove. One of keep · generalize · remove. Default "remove".

  • url

    string optional

    What to do with URL: keep, generalize or remove. Default remove. One of keep · generalize · remove. Default "remove".

  • attendee

    string optional

    What to do with ATTENDEE: keep, generalize or remove. Default remove. One of keep · generalize · remove. Default "remove".

  • organizer

    string optional

    What to do with ORGANIZER: keep, generalize or remove. Default remove. One of keep · generalize · remove. Default "remove".

  • attach

    string optional

    What to do with ATTACH: keep, generalize or remove. Default remove. One of keep · generalize · remove. Default "remove".

  • comment

    string optional

    What to do with COMMENT: keep, generalize or remove. Default remove. One of keep · generalize · remove. Default "remove".

  • categories

    string optional

    What to do with CATEGORIES: keep, generalize or remove. Default keep. One of keep · generalize · remove. Default "keep".

  • summary_label

    string optional

    The title Generalize writes, such as Busy or Blocked. Default Busy. Default "Busy".

  • remove_other

    boolean optional

    Remove vendor X- properties, CONTACT and RESOURCES from every entry, and the calendar name and description from the header. Default true. Default true.

  • strip_alarms

    boolean optional

    Remove every VALARM. Default true. Default true.

  • regenerate_uids

    boolean optional

    Replace every UID with a random UUID; a recurrence master and its exceptions keep sharing one. Default true, so a re-import never collides with the original calendar. Default true.

  • mark_private

    boolean optional

    Set CLASS:PRIVATE on every entry. Default true. Default true.

  • shift_days

    integer optional

    Move every date by this many whole days (DTSTART, DTEND, DUE, RECURRENCE-ID, EXDATE, RDATE, RRULE UNTIL, absolute alarm triggers), keeping each value's zone. Default 0, at most 3650 either way. Default 0.

  • calendar_name

    string optional

    Written as X-WR-CALNAME. Default: none when remove_other is on, else the source name.

Example arguments

Verified
{
  "input": "BEGIN:VCALENDAR\nVERSION:2.0\nBEGIN:VEVENT\nUID:[email protected]\nDTSTART;TZID=Europe/Istanbul:20261006T100000\nDTEND;TZID=Europe/Istanbul:20261006T103000\nSUMMARY:Client Sync with Acme\nDESCRIPTION:Zoom https://zoom.us/j/123\nATTENDEE;CN=Jane:mailto:[email protected]\nBEGIN:VALARM\nACTION:DISPLAY\nTRIGGER:-PT10M\nDESCRIPTION:Reminder\nEND:VALARM\nEND:VEVENT\nEND:VCALENDAR\n"
}