{"slug":"tanod-dev-v1-calendar-ics-build-aad3a4","title":"utilpeek (Tanod) iCalendar builder","host":"tanod.dev","method":"POST","resource":"https://tanod.dev/v1/calendar/ics-build","category":"other","description":"utilpeek (Tanod) iCalendar builder: JSON events to an RFC 5545 .ics file with time zones, recurrence and attendees. Use when an agent must hand a user a calendar invite: events as JSON in, a .ics file out.","price_listed":0.001,"price_asked":0.001,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":422,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:137","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"events":[{"attendees":["ana@example.com"],"duration":"PT30M","rrule":"FREQ=WEEKLY;BYDAY=MO;COUNT=4","start":"2026-11-02T09:00:00","summary":"Team sync","timezone":"Europe/Berlin"}]},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"properties":{"calendar_name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Calendar name (X-WR-CALNAME)."},"events":{"description":"1-50 events.","items":{"additionalProperties":false,"properties":{"all_day":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"All-day event. Implied when `start` is a plain date."},"attendees":{"anyOf":[{"items":{"anyOf":[{"additionalProperties":false,"properties":{"email":{"description":"Email address.","maxLength":320,"type":"string"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Display name (CN)."},"rsvp":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Attendees only: ask for a reply."}},"required":["email"],"type":"object"},{"type":"string"}]},"maxItems":100,"type":"array"},{"type":"null"}],"default":null,"description":"Emails or {email, name, rsvp}."},"description":{"anyOf":[{"maxLength":8000,"type":"string"},{"type":"null"}],"default":null},"duration":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 duration such as PT1H30M or P2D (instead of end)."},"end":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 end. All-day: the last day, inclusive. Send this or `duration`."},"location":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null},"organizer":{"anyOf":[{"additionalProperties":false,"properties":{"email":{"description":"Email address.","maxLength":320,"type":"string"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Display name (CN)."},"rsvp":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Attendees only: ask for a reply."}},"required":["email"],"type":"object"},{"type":"string"},{"type":"null"}],"default":null,"description":"Organizer email, or {email, name}."},"rrule":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"RFC 5545 recurrence rule, e.g. FREQ=WEEKLY;BYDAY=MO;COUNT=10."},"start":{"description":"ISO 8601 date (all-day) or datetime; an offset or Z is accepted. Without an offset it is read in `timezone`.","maxLength":40,"minLength":10,"type":"string"},"status":{"anyOf":[{"pattern":"^(?i:CONFIRMED|TENTATIVE|CANCELLED)$","type":"string"},{"type":"null"}],"default":null},"summary":{"description":"Event title.","maxLength":500,"minLength":1,"type":"string"},"timezone":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"IANA time zone, such as Europe/Berlin."},"uid":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Stable event id; derived from the content when omitted."},"url":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null}},"required":["summary","start"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"time_format":{"default":"tzid","description":"tzid (default): zoned times as TZID=...; utc: every timed value converted to UTC.","pattern":"^(tzid|utc)$","type":"string"},"timezone":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Default IANA time zone for events without one."}},"required":["events"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"properties":{"base64":{"type":"string"},"bytes":{"type":"integer"},"data_uri":{"type":"string"},"event_count":{"type":"integer"},"filename":{"type":"string"},"ics":{"type":"string"},"note":{"type":"string"},"time_format":{"type":"string"},"uids":{"items":{"type":"string"},"type":"array"}},"required":["ics","event_count","uids","bytes","base64","data_uri"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-10-10","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.001,"price_match":true,"latency_ms":422,"error":null}],"description_full":"utilpeek (Tanod) iCalendar builder: JSON events to an RFC 5545 .ics file with time zones, recurrence and attendees. Use when an agent must hand a user a calendar invite: events as JSON in, a .ics file out.","last_updated":"2026-10-10T07:59:22.44Z","schemes":["exact"]}