Columbus Day date calculator
Columbus Day 2026 falls on Monday 12 October: the second Monday of October, a US federal holiday that many cities also call Indigenous Peoples' Day. Enter a year and get that Monday's date. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Year
- 2,026
- Date
- 2026-10-12
- Name
- Columbus Day
- Weekday
- Monday
Columbus Day is the United States federal holiday observed on the second Monday of October; many localities also label that Monday Indigenous Peoples' Day. Banks, schools, municipal services, and logistics planners need the civil date without scraping a holiday page each year.
Federal definition versus local naming
Federal law observes Columbus Day on the second Monday of October. Cities, states, and campuses increasingly use Indigenous Peoples' Day for the same Monday while some keep both names in public communications. This capability returns the federal Monday date and a stable English name Columbus Day so systems that key off the federal calendar stay consistent; presentation layers can relabel for local audiences.
The date moves between October 8 and October 14. Product teams building closure banners, trash-collection schedules, bond market hours, or school apps therefore need a pure function of year rather than a static table. Encoding the second-Monday rule avoids stale data and network failures when a third-party holiday feed is unavailable.
Keeping the federal Monday stable lets multi-state products share one date while local UI copy chooses the public name.
Integration tips and out-of-scope items
Use this when you need the US federal second-Monday-in-October date only. It does not decide whether a given city renames the holiday, does not list state bank holidays that diverge, and does not return a full multi-country holiday set. Pair it with MLK Day, Presidents' Day, and Juneteenth calculators for a compact domestic federal pack.
Logistics teams can mark delayed SLA days; HR can block leave requests; education apps can show closures on year pickers. Always confirm with legal or operations if your organization substitutes a different local day.
FAQ
What date is Columbus Day federally?
The second Monday of October under the US federal holiday rule.
Is this the same Monday as Indigenous Peoples' Day?
Many localities use that name for the same Monday; this capability returns the federal Monday date with the stable name Columbus Day.
Does it depend on my time zone?
No. It is pure civil calendar math and does not use the wall clock.
Why does the date of Columbus Day change every year?
Because the rule is the second Monday of October, not a fixed day. That Monday always lands between 8 and 14 October, so the date moves within that week from one year to the next.
Is Columbus Day a day off everywhere in the United States?
It is a federal holiday, but local practice varies: some cities rename it and some state bank holidays differ. The calculator gives only the federal Monday, so check with legal or operations if your organization uses another day.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/date/columbus-day-us \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2026}'const res = await fetch("https://api.kit.forhosting.com/date/columbus-day-us", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 2026
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/columbus-day-us",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 2026
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/columbus-day-us", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":2026}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":2026}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/columbus-day-us", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"year": 2026
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.columbus_day_us",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
This capability takes one year and returns the ISO date from the fixed weekday-of-month rule—deterministic, offline, and identical for the same year on every call. Use the free browser form for a quick answer, or the API at $0.002 per successful request when you embed federal holidays in product code.
Calculation, outputs, and error behavior
After validating year as an integer in the supported range, the solver finds the second Monday of October with UTC civil arithmetic and emits year, date as YYYY-MM-DD, name, and weekday Monday. There is no timezone conversion step: the holiday is a whole calendar date. Field names use the standard vocabulary (year, date) so free-web labels inherit reviewed translations after hydration. Optional fields that do not apply are omitted—never null—so the result schema stays clean for forms and goldens. Bad input (missing year, non-integer, out of range) raises invalid_input with a clear English message.
Integration tips and out-of-scope items
The free web renderer gets a simple year integer field and a primary date result without a raw JSON array editor.
Integration use cases
Technical questions
What format is the date?
ISO civil date YYYY-MM-DD.
What years can I pass?
Integers from 1900 to 2200 inclusive.