iCal Feeds
MyCal publishes a live .ics feed per state. Subscribe once, and your calendar app (Google, Apple, Outlook) automatically picks up new holiday announcements on its next poll.
GET /feed/ical/{state}
| Path param | Type | Required |
|---|---|---|
state | string | ✓ canonical or alias |
| Query | Type | Default |
|---|---|---|
year | number | All available years |
Examples
https://mycal-api.huijun00100101.workers.dev/v1/feed/ical/selangorhttps://mycal-api.huijun00100101.workers.dev/v1/feed/ical/kl?year=2026https://mycal-api.huijun00100101.workers.dev/v1/feed/ical/kelantanResponse format
Standard RFC 5545 iCalendar with trilingual names in SUMMARY and DESCRIPTION:
BEGIN:VCALENDARVERSION:2.0PRODID:-//MyCal//Malaysia Calendar API//ENX-WR-CALNAME:Selangor Public HolidaysX-WR-TIMEZONE:Asia/Kuala_LumpurREFRESH-INTERVAL;VALUE=DURATION:PT6HX-PUBLISHED-TTL:PT6HBEGIN:VEVENTUID:2026-hari-raya-aidilfitri-1@mycalDTSTART;VALUE=DATE:20260321DTEND;VALUE=DATE:20260323SUMMARY:Hari Raya AidilfitriDESCRIPTION:Eid al-Fitr · 开斋节CATEGORIES:Islamic HolidaySTATUS:CONFIRMEDEND:VEVENT...END:VCALENDARX-WR-TIMEZONE is always Asia/Kuala_Lumpur (UTC+8). Holidays are date-only events (all-day), so timezone doesn’t affect display.
REFRESH-INTERVAL hints to calendar apps that they can poll every 6 hours. Most modern apps respect this; older Outlook clients poll daily regardless.
Setup guides
Or use the iCal demo to get a ready-to-click subscription link.