Groundhog Day date and weekday calculator by year
Enter a year and see which day of the week Groundhog Day lands on: 2 February 2026 is a Monday. The date never changes, only the weekday, so this settles planning questions for posts, classes and events. 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
- Month
- 2
- Day
- 2
- Date
- 2026-02-02
- ISO date
- 2026-02-02
Groundhog Day always occurs on February 2, but the weekday changes from year to year. This calculator accepts a Gregorian calendar year and returns the complete ISO date, the English weekday name, and useful numeric weekday values. Its result comes from fixed calendar arithmetic rather than the computer clock, a time zone, or an online service. That makes it suitable for a quick personal lookup as well as repeatable software, publishing, event planning, and historical calendar workflows.
Enter the year you want to check
Provide one whole Gregorian calendar year between 1 and 9999. The calculator fixes the month and day as February 2 because Groundhog Day has the same calendar date every year, then determines which weekday contains that date. For example, entering a year is enough; you do not need to supply a location, time, or time zone.
The result includes an ISO-formatted date with a four-digit year, the weekday written in English, an ISO weekday number where Monday is 1 and Sunday is 7, and a Sunday-origin number where Sunday is 0. Those explicit fields make the response easy to display or pass into another program. Text containing only digits is accepted by the underlying solver for compatibility with forms, while missing values, fractions, signs, words, and years outside the supported range are rejected.
The calculation answers the calendar question only. It does not predict what a groundhog will see, report weather, or claim whether winter will continue.
How the weekday is calculated deterministically
The weekday is computed with integer Gregorian calendar arithmetic equivalent to Sakamoto's algorithm. February uses a fixed month offset, and the selected year is adjusted because January and February are treated as part of the previous arithmetic year. The calculation then accounts for ordinary four-year leap cycles, removes century years that are not leap years, and restores centuries divisible by 400.
A final remainder produces a number from 0 through 6, which maps from Sunday through Saturday. The ISO weekday value is derived from the same remainder, so Monday becomes 1 and Sunday becomes 7.
Use the result in calendars, content, and automation
The response is designed to serve both people and software. A content editor can verify the weekday before publishing an annual Groundhog Day article. A school or museum can label an activity schedule without manually paging through a calendar.
An events application can use the ISO date as a stable key and the weekday name as display text, while analytical code can group results with either numeric weekday convention. Because the occasion always falls on February 2, the calculation is intentionally narrow and transparent: it does not add observance rules, substitute a weekday, or move the date when February 2 lands on a weekend. It also does not calculate regional festivals with similar names.
Validate and store the returned ISO date rather than reconstructing it from prose, and choose the ISO weekday field when interoperating with systems that follow the Monday-through-Sunday international numbering convention.
What you can do with it
Plan an annual event
Check which weekday February 2 falls on before choosing staffing, opening hours, or adjacent weekend activities.
Prepare seasonal content
Insert the correct date and weekday into an article, newsletter, classroom worksheet, or social media calendar.
Populate calendar software
Use the stable ISO date and numeric weekday fields in scheduling, reporting, or archival data pipelines.
FAQ
What date is Groundhog Day?
Groundhog Day is always February 2. The year determines the weekday returned by this calculator.
Does Groundhog Day move when it falls on a weekend?
No. This capability always returns February 2 and does not apply substitute-day or observed-holiday rules.
How is the weekday determined?
It uses deterministic proleptic Gregorian integer arithmetic, including the calendar's leap-year and century rules.
Does the calculator predict whether winter will last longer?
No. It only answers the calendar question: the date and the weekday of 2 February in the year you enter. It does not report what a groundhog sees or forecast the weather.
What do the two weekday numbers mean?
The ISO number counts Monday as 1 and Sunday as 7, while the second number starts the week on Sunday as 0. In 2026 the day is a Monday, so both numbers are 1.
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/groundhog-day \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2026}'const res = await fetch("https://api.kit.forhosting.com/date/groundhog-day", {
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/groundhog-day",
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/groundhog-day", 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/groundhog-day", 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.groundhog_day",
"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
Use the result in calendars, content, and automation
For automated use, each request represents one year and costs $0.002; the browser version can be used interactively without an API request.
Technical questions
Does the calculation use my time zone?
No. It uses calendar fields deterministically in UTC terms and never reads a local clock, time zone, or Date object.
What does an API request cost?
One year is one item and costs $0.002 per API request. The browser calculator is available for interactive use.