Day of the week calculator
25 July 2026 falls on a Saturday, ISO weekday 6. Enter any date to get the weekday's full name, its short label and its number, with Monday counted as 1 and Sunday as 7. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Date
- 2026-07-25
- Year
- 2,026
- Month
- 7
- Day
- 25
- Day of week
- 6
A day of the week calculator answers a simple question people ask every day: given a calendar date, which weekday is it? Paste an ISO date in year-month-day form, and this tool returns the full English weekday name, a short three-letter label, and the ISO weekday number where Monday is one and Sunday is seven.
What an ISO calendar date means and how weekdays are numbered
An ISO calendar date is written as four digits for the year, a hyphen, two digits for the month, another hyphen, and two digits for the day of the month—for example twenty twenty-six dash zero seven dash twenty-five. That form is unambiguous across locales that write month-first or day-first in everyday prose, which is why APIs and databases prefer it. The Gregorian calendar rules still apply underneath: months have fixed lengths except February, which has twenty-nine days only in leap years.
A leap year is every year divisible by four, except century years that are not divisible by four hundred. When someone asks for the day of the week, they usually want both a human name and a machine-friendly number. This capability follows the ISO weekday convention: Monday is one, Tuesday is two, continuing through Sunday as seven.
That ordering matches ISO week dates and many international business standards, and it differs from systems that treat Sunday as zero. The algorithm is Sakamoto’s method: a compact integer formula over year, month, and day that yields a Sunday-origin index, which is then mapped to the ISO number and to fixed English long and short name tables.
Practical tips, limits, and related searches
Always send a full calendar date, not a datetime with a time component or a trailing Z; this tool deliberately refuses extended ISO timestamps so callers cannot accidentally encode timezone-dependent midnights. When teaching or testing, keep a small known set: a mid-week weekday date, a weekend date, a leap-day success case such as a valid twenty-ninth of February, and a deliberate failure such as twenty twenty-three dash zero two dash twenty-nine.
Year bounds stop at nine thousand nine hundred ninety-nine to keep four-digit ISO strings well defined for this product surface. This landing targets people searching for a day of the week calculator, what day was a given date, or weekday name and number online; it is not a business-day counter, not a locale-aware date formatter, and not an age or interval calculator.
Prefer this capability when you already have one ISO date and only need the weekday; if you need localized month names or formatted strings for many locales, use a date formatting capability instead.
What you can do with it
Homework and exam date checks
Students enter a textbook ISO date and compare the printed weekday name and ISO number against a deterministic result before submitting calendar exercises.
Contract and event verification
Operations staff confirm that a signed agreement or meeting series lands on the expected weekday when only an ISO stamp is available.
FAQ
What date format do I need?
A single ISO calendar date as YYYY-MM-DD (for example 2026-07-25). Datetimes, ordinal dates, and week dates are not accepted.
What happens with an invalid date like 2023-02-29?
Invalid months, zero days, and non YYYY-MM-DD shapes are also rejected.
Is the day of the week calculator free?
The browser tool is free and runs locally.
Why is Monday 1 and Sunday 7?
That is the ISO convention, which matches ISO week dates and many international business standards. Some systems count Sunday as 0, so the result also gives the Sunday-first number from 0 to 6.
Can I add a time of day or a Z after the date?
No. Enter the calendar date only. A time or a trailing Z is refused on purpose, so a midnight that depends on a time zone can never shift the answer to 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/day-of-week \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/date/day-of-week", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/day-of-week",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/day-of-week", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/day-of-week", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"date": "2026-07-25"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.day_of_week",
"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.
Limits
year_min | 1 |
year_max | 9999 |
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
Invalid strings—wrong shape, impossible months, or a twenty-ninth of February outside a leap year—are rejected with a clear invalid_input error instead of a silent wrong answer.
How to call the API and what comes back
The value must match the exact pattern of four digits, hyphen, two digits, hyphen, two digits, and must represent a real Gregorian day in the inclusive year range from one through nine thousand nine hundred ninety-nine. Send a JSON body with one required string field named date, which may also be supplied under the aliases iso_date, value, or day. On success the response echoes the canonical date string, year, month, and day as numbers, sets day_of_week, day_number, and iso_weekday to the same ISO weekday integer from one through seven, sets day_name and day_name_short to English labels such as Saturday and Sat, sets weekday_0_sunday to the zero-through-six Sunday-origin index, sets leap_year to a boolean for the year, and includes a short message plus an ordered steps array that restates the parse and classification. Failed validation—missing field, non-string type, bad shape, out-of-range year, impossible month or day, or a non-leap twenty-ninth of February—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.
Practical tips, limits, and related searches
Prefer the primary field name date when you control the client; aliases exist for compatibility with forms that label the control iso_date or value. Round-trip checks are easy: recompute the weekday with another trusted Gregorian source and confirm that ISO Monday-through-Sunday numbering matches day_of_week. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately send bad dates.
Integration use cases
Fixture generation for date-aware tests
Engineering teams build known Monday-through-Sunday fixtures for schedulers and UI calendars without depending on the host clock or timezone.
Technical questions
How is the day number defined?
ISO weekday numbering: Monday = 1, Tuesday = 2, …, Sunday = 7. The response also includes weekday_0_sunday (0 = Sunday … 6 = Saturday).
Does the result depend on my timezone?
No. The solver uses pure Gregorian arithmetic and never reads the host clock or Date timezone, so browser and API agree.