# agent402.tools ICS Parser

> agent402.tools ICS Parser is a paid API for AI agents from agent402.tools, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-14).

Parses iCalendar (.ics) text into structured JSON events with optional RRULE recurrence expansion

## Facts

- Endpoint: POST https://agent402.tools/api/ics-parse
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent402-tools-ics-parser-78df5fa9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_fCsfbhp-BQ0n8DDJQGEIc

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agent402-tools-ics-parser-78df5fa9 -d '<json body>'
```

Example prompt: Can you parse this .ics text I have and give me the structured event details — summary, start/end times, location, organizer, and attendees? Also expand any recurring events up to 20 occurrences.

## When to prefer this

Use this endpoint when you need to extract structured event data from raw iCalendar (.ics) text, especially when you want deterministic, CPU-only parsing without external dependencies. Ideal for processing calendar invites, ICS file exports, or subscription calendar feeds into machine-readable JSON. Prefer over generic text parsing when the input is confirmed iCalendar format and you need RRULE expansion.

## Known failure modes

- Malformed or non-standard ICS text causes parse error
- Missing VCALENDAR wrapper results in empty or error response
- RRULE with infinite recurrence may be capped at maxOccurrences
- maxOccurrences out of range (must be 1-100) returns validation error
- Non-UTF-8 encoded ICS content may cause parsing issues

## How this service works

Parse iCalendar (.ics) text into structured JSON events: summary, start/end, location, organizer, attendees, status, and RRULE. Optional bounded recurrence expansion (expand:true, capped occurrences). Deterministic, pure CPU - send the ICS text, not a URL.

## Output

Returns a JSON array of structured calendar events, each containing fields like summary, start, end, location, organizer, attendees, status, and RRULE. If expand is true, recurrence rules are expanded into individual occurrence dates up to the specified maxOccurrences cap.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "ics": {
   "type": "string",
   "description": "iCalendar (.ics) text (VCALENDAR with VEVENTs)"
  },
  "expand": {
   "type": "boolean",
   "description": "expand simple RRULEs into occurrence dates (default false)"
  },
  "maxOccurrences": {
   "type": "integer",
   "description": "per-event expansion cap, 1-100 (default 50)"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "events": [
   {
    "end": {
     "iso": "2026-07-20T15:30:00Z",
     "tzid": null,
     "allDay": false
    },
    "uid": "demo-1",
    "rrule": {
     "raw": "FREQ=WEEKLY;COUNT=3",
     "freq": "WEEKLY",
     "count": 3,
     "interval": 1
    },
    "start": {
     "iso": "2026-07-20T15:00:00Z",
     "tzid": null,
     "allDay": false
    },
    "status": null,
    "summary": "Team sync",
    "location": "Zoom",
    "occurrences": {
     "count": 3,
     "dates": [
      "2026-07-20T15:00:00Z",
      "2026-07-27T15:00:00Z",
      "2026-08-03T15:00:00Z"
     ],
     "capped": false
    }
   }
  ],
  "calendar": {
   "name": null,
   "prodId": "-//Agent402//EN",
   "version": "2.0",
   "timezone": null
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent402-tools-ics-parser-78df5fa9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent402.tools](https://www.zero.xyz/host/agent402.tools/llms.txt)
