Documentación

feriados.io es el motor de calendario operativo para Latinoamérica — días hábiles, plazos y feriados para 11 países en un solo endpoint. Todos los endpoints retornan JSON y soportan CORS.

Base URL

https://api.feriados.io

Autenticación

Todos los planes requieren una API key, incluyendo el plan Free. Obtén la tuya gratis en feriados.io/register — sin tarjeta. Inclúyela en cada request:

Authorization: Bearer frd_tu_api_key

Límites de uso

Plan Requests / mes Identificación Endpoints
Free 1.000 Por API key holidays, is-business-day, next-holiday, batch, 1 calendario
Starter 25.000 Por API key Free + business-days/add|subtract|between, last-business-day, 3 calendarios
Team 100.000 Por API key Starter + iCal live (/calendar), 10 calendarios
Business Fair use Por API key Team + alertas legislativas, calendarios ilimitados, SLA 99.9%

Los headers X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset se incluyen en todas las respuestas.

Tu primer request

Desde cero hasta un response exitoso en menos de dos minutos.

  1. 1

    Obtén tu API key

    Registrate en feriados.io/register — sin tarjeta. Tu key tiene el prefijo frd_ y aparece en el dashboard.

  2. 2

    Haz el request

    curl -H "Authorization: Bearer frd_tu_api_key" \
         "https://api.feriados.io/v1/CL/is-business-day?date=2026-04-06"
  3. 3

    Interpreta la respuesta

    {
      "success": true,
      "data": {
        "date": "2026-04-06",
        "is_business_day": true,
        "day_of_week": "Monday",
        "is_holiday": false,
        "holiday": null
      },
      "meta": { "country": "CL" }
    }

    Si is_business_day es false, el campo holiday describe el feriado.

Todos los snippets completos en cURL, Node.js, Python, PHP y Go están en la sección Snippets.

Formato de respuesta

Todos los endpoints retornan la misma estructura base:

Éxito

{
  "success": true,
  "data": [ ... ],
  "meta": {
    "country": "CL",
    "total": 18
  }
}

Error

{
  "success": false,
  "error": {
    "code": "INVALID_YEAR",
    "message": "Year must be a number between 1900 and 2100.",
    "status": 400
  }
}

Errores frecuentes

Los errores más frecuentes durante la integración, con su causa y solución.

HTTP Código Causa Solución
401 UNAUTHORIZED API key ausente o con formato incorrecto Verificar que el header sea Authorization: Bearer frd_...
403 PLAN_UPGRADE_REQUIRED El endpoint requiere un plan superior al actual Ver la columna "Plan" en ¿Qué endpoint uso? o ver planes
429 RATE_LIMIT_EXCEEDED Cuota mensual agotada Esperar reset el 1ro del mes (00:00 UTC) o hacer upgrade. El header X-RateLimit-Reset indica la fecha exacta.
400 INVALID_COUNTRY Código de país no soportado Usar código ISO 3166-1 alpha-2 en mayúsculas (ej: CL, AR, CO). Ver lista completa.
400 INVALID_YEAR Año fuera del rango soportado El año debe estar entre 1900 y 2100.
422 BATCH_LIMIT_EXCEEDED El array dates supera el límite del plan Free permite hasta 31 fechas por batch. Starter, Team y Business hasta 366.
Todos los errores retornan el mismo envelope: {"success": false, "error": {"code": "...", "message": "...", "status": 4xx}}

¿Qué endpoint uso?

Guía rápida para identificar el endpoint correcto según tu caso de uso.

Si necesitas… Endpoint Plan mínimo
Saber si hoy (o cualquier fecha) es día hábil /is-business-day Free
Verificar varias fechas a la vez (batch) /is-business-day/batch Free
Obtener el próximo feriado desde hoy /next-holiday Free
Listar todos los feriados del año /holidays/:year Free
Calcular fecha de vencimiento sumando N días hábiles /business-days/add Starter
Contar días hábiles entre dos fechas (SLA, contratos) /business-days/between Starter
Encontrar el último día hábil del mes /last-business-day Starter
Restar N días hábiles a una fecha /business-days/subtract Starter
Agregar días no laborables propios de tu empresa POST /calendars Starter
Aplicar tu calendario de empresa a cualquier cálculo de días hábiles ?calendar=slug Starter
Suscribir Google Calendar / Outlook a feriados en vivo /calendar (iCal live) Team
Encontrar el primer día hábil del mes /first-business-day Starter
Ver cuántas requests llevo consumidas este período /usage Free
Rotar o crear una nueva API key programáticamente POST /keys Free

Endpoints

GET /v1/countries

Retorna la lista de países soportados, su estado de disponibilidad y los endpoints disponibles para cada uno.

Ejemplo de respuesta

{
  "success": true,
  "data": [
    {
      "code": "CL",
      "name": "Chile",
      "status": "available",
      "years_covered": { "from": 2020, "to": 2030 },
      "endpoints": [
        "/v1/CL/holidays/{year}",
        "/v1/CL/holidays/{year}/{month}",
        "/v1/CL/is-business-day",
        "/v1/CL/next-holiday"
      ]
    }
  ],
  "meta": { "total": 11, "available": 11 }
}
GET /v1/{country}/holidays/{year}

Retorna todos los feriados del país indicado para el año indicado.

Cuándo usar este endpoint: mostrar un calendario, exportar a PDF, sincronizar con sistemas externos, auditorías.

Cuándo no usarlo: si necesitas calcular plazos, contar días hábiles entre fechas o determinar vencimientos, usa directamente /business-days/between o /business-days/add — manejan automáticamente puentes, feriados regionales y traslados de fecha, sin que tengas que descargar ni cachear el año completo.

Parámetros de ruta

ParámetroTipoDescripción
countrystringCódigo ISO 3166-1 alpha-2 (ej: CL, CO, PE)
yearnúmeroAño entre 1900 y 2100. Rango confiable: desde 2000 en general, desde 2006 para MX.
Precisión histórica: los resultados son confiables desde el año 2000 en general y desde 2006 para México (reforma de lunes flotantes). Para consultas anteriores a ese umbral, la respuesta incluye un campo meta.warning indicando que la legislación pudo haber diferido.

Ejemplo

GET /v1/UY/holidays/2026

{
  "success": true,
  "data": [
    { "date": "2026-01-01", "name": "Año Nuevo", "type": "national", "irrenunciable": true },
    { "date": "2026-01-06", "name": "Día de los Niños", "type": "national", "irrenunciable": false },
    ...
  ],
  "meta": { "country": "UY", "year": 2026, "total": 15 }
}

GET /v1/MX/holidays/2004

{
  "success": true,
  "data": [ ... ],
  "meta": {
    "country": "MX", "year": 2004, "total": 8,
    "warning": {
      "code": "HISTORICAL_ACCURACY",
      "message": "Holiday data for MX before 2006 may not reflect historical legislation. Results are calculated using current rules.",
      "reliable_from": 2006
    }
  }
}

Ver tabla completa: Chile 2026, Colombia, Perú, Uruguay y más países →

GET /v1/{country}/holidays/{year}/{month}

Retorna los feriados del país indicado para un mes específico.

Para contar días hábiles en un mes o encontrar el último día hábil, usa /business-days/between o /last-business-day — no requieren que construyas la lógica encima de la lista de feriados.

Parámetros de ruta

ParámetroTipoDescripción
countrystringCódigo ISO 3166-1 alpha-2
yearnúmeroAño entre 1900 y 2100. Rango confiable: desde 2000 (2006 para MX).
monthnúmeroMes entre 1 y 12

Ejemplo

GET /v1/PY/holidays/2026/5

{
  "success": true,
  "data": [
    { "date": "2026-05-01", "name": "Día de los Trabajadores", "type": "national" },
    { "date": "2026-05-14", "name": "Víspera de la Independencia Nacional", "type": "national" },
    { "date": "2026-05-15", "name": "Independencia Nacional", "type": "national" }
  ],
  "meta": { "country": "PY", "year": 2026, "month": 5, "total": 3 }
}
GET /v1/{country}/is-business-day

Indica si una fecha es día hábil, considerando fines de semana y feriados del país indicado. El parámetro region activa feriados subnacionales para CL y MX.

Query parameters

ParámetroRequeridoDescripción
date Fecha en formato YYYY-MM-DD
region No Código ISO 3166-2 (ej: CL-AP, MX-JAL). Sin este parámetro solo aplican feriados nacionales.

Regiones disponibles — Chile

CódigoRegiónFeriadoFecha
CL-AP Arica y Parinacota Asalto y Toma del Morro de Arica 7 jun
CL-NB Ñuble Día de la Región de Ñuble 20 ago
CL-MA Magallanes y Antártica Día de la Región de Magallanes 21 sep

Regiones disponibles — México

CódigoEstadoFeriados adicionalesAplica a
MX-JAL Jalisco 5 may · 2do lun jun · 28 sep · 12 oct · 2 nov Sector público estatal
MX-MEX Estado de México 2 mar · 5 may · 2 nov Sector público estatal
MX-VER Veracruz 5 may · 21 oct Sector público estatal
Los feriados estatales de México aplican únicamente a empleados del gobierno del estado y sus municipios — no al sector privado (LFT Art. 74 es la única fuente de feriados obligatorios para trabajadores privados). Fuente: Ley para los Servidores Públicos del Estado de Jalisco y sus Municipios, Art. 38.

Ejemplos

GET /v1/CL/is-business-day?date=2026-09-18

{
  "success": true,
  "data": { "date": "2026-09-18", "is_business_day": false, "day_of_week": "Friday", "region": null },
  "meta": { "country": "CL", "total": 1 }
}

GET /v1/CL/is-business-day?date=2026-06-07&region=CL-AP

{
  "success": true,
  "data": { "date": "2026-06-07", "is_business_day": false, "day_of_week": "Sunday", "region": "CL-AP" },
  "meta": { "country": "CL", "total": 1 }
}

GET /v1/MX/is-business-day?date=2026-05-05&region=MX-JAL

{
  "success": true,
  "data": { "date": "2026-05-05", "is_business_day": false, "day_of_week": "Tuesday", "region": "MX-JAL" },
  "meta": { "country": "MX", "total": 1 }
}

GET /v1/UY/is-business-day?date=2026-01-06

{
  "success": true,
  "data": { "date": "2026-01-06", "is_business_day": false, "day_of_week": "Tuesday", "region": null },
  "meta": { "country": "UY", "total": 1 }
}

Ver días hábiles por mes: Chile 2026, Colombia, Uruguay y más países →

POST /v1/{country}/is-business-day/batch

Verifica si múltiples fechas son días hábiles en una sola llamada. Ideal para validar rangos de fechas, generar calendarios internos o procesar lotes de vencimientos sin acumular N requests HTTP.

Límite de fechas por request: 31 fechas en Free · 366 fechas en Starter, Team y Business.
Cada fecha consume 1 unidad de quota, independientemente de cuántas fechas envíes en el batch.

Request body (JSON)

CampoRequeridoDescripción
dates Array de fechas en formato YYYY-MM-DD
calendar No Slug de un calendario personalizado para aplicar como overlay

Ejemplo

POST /v1/CL/is-business-day/batch
Content-Type: application/json

{
  "dates": ["2026-09-18", "2026-09-19", "2026-09-21"]
}

{
  "success": true,
  "data": [
    { "date": "2026-09-18", "is_business_day": false, "day_of_week": "Friday" },
    { "date": "2026-09-19", "is_business_day": false, "day_of_week": "Saturday" },
    { "date": "2026-09-21", "is_business_day": true,  "day_of_week": "Monday" }
  ],
  "meta": {
    "country": "CL",
    "total": 3,
    "business_days": 1,
    "non_business_days": 2,
    "requests_consumed": 3
  }
}
GET /v1/{country}/next-holiday

Retorna el próximo feriado a partir de una fecha. Si no se indica fecha, usa el día de hoy.

Query parameters

ParámetroRequeridoDescripción
from No Fecha de inicio en formato YYYY-MM-DD. Default: hoy.

Ejemplo

GET /v1/PY/next-holiday?from=2026-03-14

{
  "success": true,
  "data": { "date": "2026-04-02", "name": "Jueves Santo", "type": "national", "days_until": 19 },
  "meta": { "country": "PY", "from": "2026-03-14", "total": 1 }
}

Ver próximos feriados: Chile, Colombia, Paraguay y más países →

GET /v1/{country}/calendar/{year} iCal

Retorna un archivo iCalendar (.ics) con todos los feriados del año. Compatible con Google Calendar, Apple Calendar, Outlook, Notion Calendar y cualquier app que soporte RFC 5545.

Ejemplo de contenido

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Feriados API//feriados.io//ES
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Feriados Chile 2026
BEGIN:VEVENT
UID:20260101-cl-año-nuevo@feriados.io
DTSTART;VALUE=DATE:20260101
SUMMARY:Año Nuevo
END:VEVENT
...
END:VCALENDAR
GET /v1/{country}/calendar iCal Team / Business

URL de suscripción permanente. Siempre devuelve los feriados del año en curso. Requiere plan Team o Business.

El plan Free recibe un error 403 PLAN_UPGRADE_REQUIRED. Usa /calendar/{year} para descarga manual sin costo.

Lógica operativa

Endpoints que resuelven cálculos de calendario operativo directamente en la API — sin que tengas que implementarlos en tu código.

Disponible en planes Starter, Team y Business
GET /v1/:country/business-days/add

Suma N días hábiles a una fecha. Útil para calcular fechas de entrega, vencimientos o deadlines reales.

ParámetroTipoDescripción
datestringFecha de inicio en formato YYYY-MM-DD
daysnúmeroCantidad de días hábiles a sumar (1–365)
GET /v1/CL/business-days/add?date=2026-09-18&days=5

{
  "success": true,
  "data": { "result_date": "2026-09-25" },
  "meta": { "country": "CL", "start_date": "2026-09-18", "business_days_added": 5 }
}
GET /v1/:country/business-days/subtract

Resta N días hábiles a una fecha. Útil para calcular fechas límite hacia atrás desde un vencimiento.

ParámetroTipoDescripción
datestringFecha de referencia en formato YYYY-MM-DD
daysnúmeroCantidad de días hábiles a restar (1–365)
GET /v1/CO/business-days/subtract?date=2026-12-31&days=3

{
  "success": true,
  "data": { "result_date": "2026-12-28" },
  "meta": { "country": "CO", "start_date": "2026-12-31", "business_days_subtracted": 3 }
}
GET /v1/:country/business-days/between

Cuenta los días hábiles entre dos fechas, ambas inclusive. Útil para SLAs, cálculo de plazos contractuales o reportes de productividad. La respuesta incluye el desglose completo de días para que no necesites calcularlo tú.

ParámetroTipoDescripción
fromstringFecha de inicio en formato YYYY-MM-DD
tostringFecha de término en formato YYYY-MM-DD (máx. 365 días desde from)
calendarstringSlug de calendario personalizado — descuenta además tus días no laborables de empresa
GET /v1/CL/business-days/between?from=2026-01-01&to=2026-01-31&calendar=mi-empresa

{
  "success": true,
  "data": {
    "business_days": 17,
    "total_calendar_days": 31,
    "holidays": 2,
    "custom_non_working": 2,
    "weekends": 10
  },
  "meta": {
    "country": "CL",
    "from": "2026-01-01",
    "to": "2026-01-31",
    "calendar": "mi-empresa",
    "quota_units_consumed": 31
  }
}
GET /v1/:country/last-business-day

Retorna el último día hábil del mes de la fecha indicada. Útil para cierres contables, cortes de facturación y liquidaciones.

ParámetroTipoDescripción
datestringCualquier fecha del mes a consultar (YYYY-MM-DD)
GET /v1/UY/last-business-day?date=2026-01-15

{
  "success": true,
  "data": { "last_business_day": "2026-01-30" },
  "meta": { "country": "UY", "month": "2026-01" }
}
GET /v1/:country/first-business-day Starter

Retorna el primer día hábil del mes de la fecha indicada. Complemento de /last-business-day. Útil para nóminas, apertura de períodos contables y programación de pagos de inicio de mes.

ParámetroTipoDescripción
datestringCualquier fecha del mes a consultar (YYYY-MM-DD)
GET /v1/CO/first-business-day?date=2026-03-15

{
  "success": true,
  "data": { "first_business_day": "2026-03-02" },
  "meta": { "country": "CO", "month": "2026-03" }
}

Calendarios personalizados

Crea calendarios propios para agregar días no laborables específicos de tu empresa o sector — cierres de planta, ferias, vacaciones colectivas — y aplícalos sobre cualquier endpoint de días hábiles mediante el parámetro ?calendar=slug.

Plan Calendarios Fechas futuras por calendario
Free 1 10
Starter 3 Ilimitadas
Team 10 Ilimitadas
Business Ilimitados Ilimitadas
POST /v1/calendars

Crea un nuevo calendario personalizado. El slug debe ser único para tu cuenta y solo puede contener letras, números y guiones.

Campo (body JSON)RequeridoDescripción
nameNombre descriptivo del calendario
slugIdentificador único (ej: planta-norte)
curl -X POST https://api.feriados.io/v1/calendars \
  -H "Authorization: Bearer frd_tu_key" \
  -H "Content-Type: application/json" \
  -d '{"name":"Planta Norte","slug":"planta-norte"}'

{
  "success": true,
  "data": {
    "id": "01HZ...",
    "name": "Planta Norte",
    "slug": "planta-norte",
    "created_at": "2026-04-04T12:00:00.000Z"
  }
}
GET /v1/calendars

Lista todos los calendarios asociados a tu API key.

curl https://api.feriados.io/v1/calendars \
  -H "Authorization: Bearer frd_tu_key"

{
  "success": true,
  "data": [
    { "id": "01HZ...", "name": "Planta Norte", "slug": "planta-norte", "date_count": 3 }
  ],
  "meta": { "total": 1 }
}
GET /v1/calendars/:slug

Retorna los metadatos de un calendario específico junto con el conteo de fechas registradas.

curl https://api.feriados.io/v1/calendars/planta-norte \
  -H "Authorization: Bearer frd_tu_key"

{
  "success": true,
  "data": { "id": "01HZ...", "name": "Planta Norte", "slug": "planta-norte", "date_count": 3 }
}
DELETE /v1/calendars/:slug

Elimina el calendario y todas sus fechas. Acción irreversible.

curl -X DELETE https://api.feriados.io/v1/calendars/planta-norte \
  -H "Authorization: Bearer frd_tu_key"

{ "success": true }
POST /v1/calendars/:slug/dates

Agrega una o más fechas no laborables al calendario. Se pueden enviar hasta 100 fechas por request. El plan Free solo permite registrar fechas presentes o futuras, con un máximo de 10 fechas futuras activas.

Campo (body JSON)RequeridoDescripción
datesArray de objetos con date (YYYY-MM-DD) y name opcional
curl -X POST https://api.feriados.io/v1/calendars/planta-norte/dates \
  -H "Authorization: Bearer frd_tu_key" \
  -H "Content-Type: application/json" \
  -d '{
    "dates": [
      { "date": "2026-07-15", "name": "Mantención anual" },
      { "date": "2026-12-26", "name": "Cierre de año" }
    ]
  }'

{
  "success": true,
  "data": { "added": 2, "skipped": 0 }
}
GET /v1/calendars/:slug/dates

Lista todas las fechas registradas en el calendario.

curl https://api.feriados.io/v1/calendars/planta-norte/dates \
  -H "Authorization: Bearer frd_tu_key"

{
  "success": true,
  "data": [
    { "date": "2026-07-15", "name": "Mantención anual" },
    { "date": "2026-12-26", "name": "Cierre de año" }
  ],
  "meta": { "total": 2 }
}
DELETE /v1/calendars/:slug/dates/:date

Elimina una fecha específica del calendario.

curl -X DELETE https://api.feriados.io/v1/calendars/planta-norte/dates/2026-07-15 \
  -H "Authorization: Bearer frd_tu_key"

{ "success": true }
PUT /v1/calendars/:slug/dates/:date

Actualiza el nombre de una fecha existente en el calendario sin necesidad de borrarla y recrearla.

CampoTipoDescripción
namestringNuevo nombre para la fecha (requerido)
curl -X PUT https://api.feriados.io/v1/calendars/planta-norte/dates/2026-07-15 \
  -H "Authorization: Bearer frd_tu_key" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Mantención anual — turno A" }'

{
  "success": true,
  "data": { "date": "2026-07-15", "name": "Mantención anual — turno A" }
}
OVERLAY ?calendar=slug

Agrega el parámetro calendar a cualquier endpoint de días hábiles para que las fechas de tu calendario sean tratadas como no laborables, además de los feriados oficiales del país.

Funciona en: /is-business-day, /business-days/add, /business-days/subtract, /business-days/between, /last-business-day.

# Verificar si una fecha es hábil considerando también la mantención
GET /v1/CL/is-business-day?date=2026-07-15&calendar=planta-norte

{
  "success": true,
  "data": { "date": "2026-07-15", "is_business_day": false, "day_of_week": "Wednesday", "region": null },
  "meta": { "country": "CL", "calendar": "planta-norte", "total": 1 }
}

# Calcular 5 días hábiles a partir del cierre de planta
GET /v1/CL/business-days/add?date=2026-07-15&days=5&calendar=planta-norte

{
  "success": true,
  "data": { "result_date": "2026-07-23" },
  "meta": { "country": "CL", "calendar": "planta-norte", "start_date": "2026-07-15", "business_days_added": 5 }
}

Account

GET /v1/usage

Retorna el consumo de requests del período de facturación actual: total usado, límite del plan y fecha de reset. Útil para monitorear cuota sin depender de los headers de respuesta.

curl https://api.feriados.io/v1/usage \
  -H "Authorization: Bearer frd_tu_key"

{
  "success": true,
  "data": {
    "plan": "starter",
    "requests_used": 1240,
    "requests_limit": 50000,
    "reset_at": "2026-05-01T00:00:00.000Z"
  }
}
POST /v1/keys

Crea una nueva API key para la cuenta autenticada. Permite rotar keys programáticamente sin acceder al dashboard. La key anterior sigue válida hasta que la revoques con POST /v1/keys/revoke.

La nueva key se devuelve solo una vez en la respuesta. Guárdala de inmediato — no hay forma de recuperarla después.
curl -X POST https://api.feriados.io/v1/keys \
  -H "Authorization: Bearer frd_tu_key_actual"

{
  "success": true,
  "data": {
    "key": "frd_nueva_key_xxxxxxxxxxxxxxxxxx",
    "created_at": "2026-04-18T10:00:00.000Z"
  }
}

Probar la API

Ejecuta cualquier endpoint directamente desde aquí y mira la respuesta real.

Snippets por lenguaje

Listos para copiar. Todos los ejemplos usan el endpoint más común: verificar si una fecha es día hábil.

# ¿Es día hábil?
curl -H "Authorization: Bearer frd_tu_key" \
     "https://api.feriados.io/v1/CL/is-business-day?date=2026-04-03"

# Próximo feriado en Uruguay
curl -H "Authorization: Bearer frd_tu_key" \
     "https://api.feriados.io/v1/UY/next-holiday"

# Todos los feriados de Paraguay 2026
curl -H "Authorization: Bearer frd_tu_key" \
     "https://api.feriados.io/v1/PY/holidays/2026"

Casos de uso

Patrones comunes listos para adaptar.

No ejecutar un job en feriado

Útil para crons de cobro, liquidaciones, notificaciones o cualquier proceso que no deba correr en feriados.

// Node.js
async function runIfBusinessDay(country, job) {
  const today = new Date().toISOString().slice(0, 10);
  const res   = await fetch(
    `https://api.feriados.io/v1/${country}/is-business-day?date=${today}`,
    { headers: { Authorization: `Bearer ${process.env.FERIADOS_API_KEY}` } }
  );
  const { data } = await res.json();
  if (data.is_business_day) {
    await job();
  } else {
    console.log(`Skipping — ${data.day_of_week} no hábil en ${country}`);
  }
}

await runIfBusinessDay("CL", procesarPagos);
await runIfBusinessDay("UY", enviarLiquidaciones);

Calcular fecha de vencimiento o despacho

Encontrar el próximo día hábil a partir de una fecha dada.

// Node.js — próximo día hábil a partir de una fecha
async function nextBusinessDay(fromDate, country = "CL") {
  let date = new Date(fromDate + "T00:00:00");

  for (let i = 0; i < 10; i++) {
    const dateStr = date.toISOString().slice(0, 10);
    const res     = await fetch(
      `https://api.feriados.io/v1/${country}/is-business-day?date=${dateStr}`,
      { headers: { Authorization: `Bearer ${process.env.FERIADOS_API_KEY}` } }
    );
    const { data } = await res.json();
    if (data.is_business_day) return dateStr;
    date.setDate(date.getDate() + 1);
  }
}

const vencimiento = await nextBusinessDay("2026-09-18", "CL");
// → "2026-09-21" (Monday, because Sept 18 is Fiestas Patrias)

Mostrar fecha de entrega estimada

Calcular cuándo llegará un pedido considerando feriados y fines de semana.

# Python — N días hábiles a partir de hoy
import requests
from datetime import date, timedelta

def add_business_days(start: date, days: int, country: str = "CL") -> date:
    current = start
    added   = 0
    while added < days:
        current += timedelta(days=1)
        r = requests.get(
            f"https://api.feriados.io/v1/{country}/is-business-day",
            params={"date": current.isoformat()},
            headers={"Authorization": f"Bearer {API_KEY}"},
        )
        if r.json()["data"]["is_business_day"]:
            added += 1
    return current

# Entrega en 3 días hábiles desde hoy
entrega = add_business_days(date.today(), 3, "CL")
print(f"Fecha estimada de entrega: {entrega}")

Integraciones de calendario

Los endpoints de calendario retornan un archivo iCalendar estándar compatible con cualquier aplicación.

Google Calendar

  1. Abre Google Calendar → panel izquierdo → Otros calendarios+
  2. Selecciona "Desde URL"
  3. Pega la URL y haz clic en Añadir calendario
# Free — año fijo
https://api.feriados.io/v1/CL/calendar/2026
# Team / Business — URL permanente (auth via header Authorization: Bearer frd_tu_key)
https://api.feriados.io/v1/CL/calendar

Apple Calendar

  1. macOS: menú Archivo → Nueva suscripción de calendario…
  2. iPhone/iPad: Calendarios → Añadir calendario → Añadir calendario con suscripción
  3. Pega la URL y confirma

Outlook / Microsoft 365

  1. Abre Outlook Calendar → Añadir calendario
  2. Selecciona "Suscribirse desde la web"
  3. Pega la URL y asigna un nombre al calendario

Países disponibles

CL Chile Disponible
UY Uruguay Disponible
PY Paraguay Disponible
CO Colombia Disponible
PE Perú Disponible
BO Bolivia Disponible
EC Ecuador Disponible
CR Costa Rica Disponible
PA Panamá Disponible
AR Argentina Disponible
MX México Disponible

¿Necesitas integrar feriados en tu app?

Empezar gratis →