# Ics Timezone Convert — MCP tool `findutils:ics_timezone_convert`

Rewrite the time zones of an iCalendar (.ics) file so events land at the right local time after import. convert keeps each moment and restates DTSTART, DTEND, DUE, RECURRENCE-ID, EXDATE and RDATE in target_tz (a UTC value too). reanchor keeps the clock numbers and changes the zone, for an export that stated the wrong zone; RRULE UNTIL moves with it. normalize renames Windows zone IDs such as "Eastern Standard Time" and vendor-prefixed names such as /mozilla.org/.../America/New_York to IANA names without changing any time. A VTIMEZONE built from the runtime's IANA rules is written for every zone the output introduces, and blocks no longer referenced are dropped. All-day dates are never changed; floating times are changed only with include_floating. A TZID no rule knows is listed and left as it is. Zone rules come from the runtime's time-zone database, not from the file's own VTIMEZONE. Recurrence rules are never expanded.

- Category: productivity
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, API key for tools/call, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/ics-timezone-convert/execute (API key, 60 req/min per IP)
- API key: Running a tool needs an API key. Keys are not for sale yet: ask for early access. Without a key, a tool call answers HTTP 402 Payment Required with the error code PAYMENT_REQUIRED. The catalog and the schemas stay open without a key. https://findutils.com/api/#api-keys
- Reference page: https://findutils.com/mcp/ics-timezone-convert/
- Same tool on the other surface: https://findutils.com/api/ics-timezone-convert/

## Connect

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/ --header "Authorization: Bearer YOUR_API_KEY"
```

Claude Desktop (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "findutils": {
      "url": "https://mcp.findutils.com/",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
```

## Call the tool (verified example)

```bash
curl -X POST https://mcp.findutils.com/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "ics_timezone_convert",
      "arguments": {
        "input": "BEGIN:VCALENDAR\nVERSION:2.0\nBEGIN:VEVENT\nUID:a@example.com\nDTSTART;TZID=America/Los_Angeles:20260701T090000\nDTEND;TZID=America/Los_Angeles:20260701T100000\nSUMMARY:Team meeting\nEND:VEVENT\nEND:VCALENDAR\n",
        "mode": "convert",
        "target_tz": "America/New_York"
      }
    }
  }'
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `input` | string | yes | The .ics file contents. |
| `mode` | string (convert \| reanchor \| normalize) | no | convert (default): same moment, new zone. reanchor: same clock time, new zone. normalize: Windows and vendor zone names to IANA, times unchanged. Default: `"convert"`. |
| `target_tz` | string | no | The IANA zone to write, such as America/New_York, Europe/Istanbul or UTC. Required for convert and reanchor; ignored by normalize. A Windows ID is accepted and mapped. |
| `include_floating` | boolean | no | Also state floating times (no TZID, no Z) in target_tz, keeping their clock numbers. Default false: they stay floating. Default: `false`. |

Example arguments (verified):

```json
{
  "input": "BEGIN:VCALENDAR\nVERSION:2.0\nBEGIN:VEVENT\nUID:a@example.com\nDTSTART;TZID=America/Los_Angeles:20260701T090000\nDTEND;TZID=America/Los_Angeles:20260701T100000\nSUMMARY:Team meeting\nEND:VEVENT\nEND:VCALENDAR\n",
  "mode": "convert",
  "target_tz": "America/New_York"
}
```

## Also a REST endpoint

```bash
curl -X POST https://api.findutils.com/api/tools/ics-timezone-convert/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "BEGIN:VCALENDAR\nVERSION:2.0\nBEGIN:VEVENT\nUID:a@example.com\nDTSTART;TZID=America/Los_Angeles:20260701T090000\nDTEND;TZID=America/Los_Angeles:20260701T100000\nSUMMARY:Team meeting\nEND:VEVENT\nEND:VCALENDAR\n",
    "mode": "convert",
    "target_tz": "America/New_York"
  }'

# Parameter schema (no key needed)
curl https://api.findutils.com/api/tools/ics-timezone-convert
```

Full REST reference: https://findutils.com/api/ics-timezone-convert/ · OpenAPI 3.1 spec: https://findutils.com/api/openapi.json

---
Full catalog: POST https://mcp.findutils.com/ with method `tools/list` · https://findutils.com/mcp/ · https://findutils.com/llms.txt
