{"openapi":"3.1.0","info":{"title":"iCalendar API","version":"1.0.0","description":"Build a valid RFC 5545 iCalendar (.ics) event from simple parameters — and get ready-to-use \"add to calendar\" links for Google, Outlook, Office 365 and Yahoo. Pass a title, start and end (ISO 8601 or unix timestamps, in UTC) — or a duration in minutes, or an all-day flag — plus optional location, description, URL, organizer, an RRULE recurrence (e.g. FREQ=WEEKLY) and a reminder (a VALARM N minutes before). The service returns the fully-formed .ics text with correct escaping and 75-octet line folding, a base64 data: URI you can drop straight into a download link, and the four calendar deep-links. A second endpoint parses raw .ics text back into structured JSON events. Everything is computed locally with no network calls, so it is fast and deterministic. Built for booking and scheduling flows, event pages, email \"add to calendar\" buttons, reminders and no-code automations. A calendar-event builder — distinct from date/time math (datetime), public-holiday data (holidays) and the Jewish calendar (hebcal). No upstream key, no cache.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/ical-api","description":"oanor gateway"}],"tags":[{"name":"iCalendar"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/event":{"get":{"operationId":"get_v1_event","tags":["iCalendar"],"summary":"Build an .ics event + calendar links","description":"","parameters":[{"name":"title","in":"query","required":true,"description":"Event title","schema":{"type":"string"},"example":"Team Meeting"},{"name":"start","in":"query","required":true,"description":"Start (ISO 8601 / unix)","schema":{"type":"string"},"example":"2026-07-01T10:00:00Z"},{"name":"end","in":"query","required":false,"description":"End (or use duration)","schema":{"type":"string"},"example":"2026-07-01T11:00:00Z"},{"name":"duration","in":"query","required":false,"description":"Minutes (if no end)","schema":{"type":"string"}},{"name":"location","in":"query","required":false,"description":"Location","schema":{"type":"string"}},{"name":"description","in":"query","required":false,"description":"Description","schema":{"type":"string"}},{"name":"rrule","in":"query","required":false,"description":"Recurrence (FREQ=WEEKLY…)","schema":{"type":"string"}},{"name":"reminder","in":"query","required":false,"description":"VALARM minutes before","schema":{"type":"string"}},{"name":"all_day","in":"query","required":false,"description":"true for date-only","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/parse":{"get":{"operationId":"get_v1_parse","tags":["iCalendar"],"summary":"Parse .ics into JSON events","description":"","parameters":[{"name":"ics","in":"query","required":true,"description":"Raw .ics text","schema":{"type":"string"},"example":"BEGIN:VCALENDAR\nVERSION:2.0\nBEGIN:VEVENT\nSUMMARY:Sample Event\nDTSTART:20260701T100000Z\nDTEND:20260701T110000Z\nLOCATION:Online\nEND:VEVENT\nEND:VCALENDAR"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec & calendar links","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2280,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":665,"monthly_call_quota":45000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2120,"monthly_call_quota":232000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5550,"monthly_call_quota":860000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/ical-api"}