Seollal & Chuseok Dates API
by KunStudio · free to evaluate · no API key on origin

Seollal & Chuseok Dates API

Korea's two biggest holidays move every year because they are set on the lunar calendar: Seollal (설날) is the 1st day of the 1st lunar month, and Chuseok (추석) is the 15th day of the 8th lunar month. Hard-coding their solar dates means breaking your app each year — instead, compute them from the lunar calendar for whatever year you need.

Seollal and Chuseok are defined on the lunar calendar, so each has a fixed lunar date but a shifting solar (Gregorian) date. To get the solar date for a target year, convert the holiday's lunar date with /v1/lunar/lunar-to-solar: Seollal is lunar month 1 day 1, and Chuseok is lunar month 8 day 15. The day returned is the holiday itself; the statutory public holiday spans the day before and after as well (the three-day 연휴). For the official statutory list including those surrounding days and substitute holidays (대체공휴일), use the Korean Public Holidays API.

Solar and lunar date conversion schematic A solar (Gregorian) date converts to a Korean lunar date and the gapja (sexagenary) pillars, and back again. The leap-month (윤달) flag is carried in both directions so a round trip is lossless. SOLAR (Gregorian) 2026-02-17 an ordinary calendar date /v1/lunar/solar-to-lunar /v1/lunar/lunar-to-solar KOREAN LUNAR + 간지 lunar 2026 / 01 / 01 leap_month: false (윤달) 병오년 · 경인월 · 임술일 丙午年 · gapja pillars The leap-month (윤달) bit travels both ways, so a solar → lunar → solar round trip is lossless. Range 1391–2050.
Seollal = lunar 1/1, Chuseok = lunar 8/15. The lunar date is fixed; lunar-to-solar resolves the shifting Gregorian date for any year you ask about.

Endpoints

GET /v1/lunar/lunar-to-solar?date=2027-01-01&leap=false Seollal (설날) — solar date of lunar month 1, day 1 for a target year.
GET /v1/lunar/lunar-to-solar?date=2027-08-15&leap=false Chuseok (추석) — solar date of lunar month 8, day 15 for a target year.

Example request & response

# When is Seollal (Korean Lunar New Year) in 2027? -> lunar month 1, day 1
curl "https://korea-calendar-api.kunstudio.workers.dev/v1/lunar/lunar-to-solar?date=2027-01-01&leap=false"

# When is Chuseok (Korean Thanksgiving) in 2027? -> lunar month 8, day 15
curl "https://korea-calendar-api.kunstudio.workers.dev/v1/lunar/lunar-to-solar?date=2027-08-15&leap=false"
// Seollal 2027 (Korean Lunar New Year)
{
  "lunar": { "year": 2027, "month": 1, "day": 1, "leap_month": false },
  "solar": "2027-02-07"
}

// Chuseok 2027 (Korean Thanksgiving)
{
  "lunar": { "year": 2027, "month": 8, "day": 15, "leap_month": false },
  "solar": "2027-09-15"
}

No API key is needed on the origin to try this — it is rate-limited for fair evaluation. See the OpenAPI spec for the full schema.

Good to know

Related

Building a Korean fortune (사주/saju) app? Pair this with the KunStudio Saju API for a full four-pillars reading over REST.