List all of a weekday in a month
Pick any date and a weekday to list every matching day in that month: the Mondays of March 2024 fall on the 4th, 11th, 18th and 25th. February 2024 even holds five Thursdays, the last on the 29th. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Date
- 2024-03-15
- Weekday
- monday
- Year
- 2,024
- Month
- 3
- Weekday index
- 1
- Dates
- 2024-03-04, 2024-03-11, 2024-03-18, 2024-03-25
Translating that request into concrete Gregorian dates requires knowing the weekday of the first of the month, how many full weeks fit before the month ends, and whether February stretches to twenty-nine days in a leap year. This tool accepts any valid ISO civil date and a weekday name or zero-based index, then returns every matching ISO date in that month in ascending order. The day part of the input only has to be a real calendar day; year and month define the window.
How every weekday date in a month is listed without a clock
Start with two pieces of intent: a Gregorian ISO civil date in the form four digits, hyphen, two digits, hyphen, two digits, and a target weekday expressed as an English name such as monday or as an integer from zero to six with Sunday equal to zero. The year and month of that date define the calendar month to scan; the day is still validated so impossible strings such as the thirty-first of April are rejected before any listing runs.
Confirm leap rules for February with the standard Gregorian test: a year is a leap year when it is divisible by four, except that century years are leap years only when they are also divisible by four hundred. That decides whether February has twenty-eight or twenty-nine days and therefore how many of each weekday can appear. From that first-of-month weekday, the day number of the first matching weekday is one plus the modular distance to the target.
Every later occurrence is exactly seven calendar days later, and the walk stops when the next candidate would leave the month length. Format each day as a four-two-two ISO string and return the ordered list together with the day-of-month integers and the occurrence count.
Where listing all weekday dates in a month earns its keep
Team calendars often need every Wednesday of a delivery month for standups or release trains, not only the second Wednesday used for an all-hands. Payroll and benefits systems materialize every Friday pay day in a month when generating stubs and bank cutoffs. Sports and school leagues publish weekly game or class dates as the full set of Saturdays or Mondays inside a season month.
Data engineers build dimension tables of weekday occurrences for analytics without pulling a full iCalendar library into a pure function path. Curriculum authors teaching modular arithmetic and Gregorian leap rules want one trusted oracle that returns four or five ISO dates and never invents a day in the next month.
If you later need only the third Monday, only the last Friday, the weekday of a single date, or how many Mondays fall in a whole year, treat those as separate search intents and landings rather than overloading this list-all-weekdays-in-month page.
What you can do with it
Recurring team meetings for a whole month
Turn “every Monday in March” into a concrete ISO list for calendar invites, CI freezes, and status reports without hand-counting weeks.
Payroll and Friday pay-day stubs
Materialize every Friday (or other pay weekday) inside a pay month for stubs, bank cutoffs, and finance dimension tables.
League schedules and classroom attendance
Publish weekly game or class dates as the full set of Saturdays or Wednesdays that fall inside a season or term month.
FAQ
What does list all of a weekday in a month mean?
It means every calendar date of a named weekday inside the month of your ISO date—for example every Monday of March 2024 is 2024-03-04, 2024-03-11, 2024-03-18, and 2024-03-25.
Does the day part of the input date matter?
Only for validation: the day must exist in that month. Year and month define which month is scanned; the listed dates are not limited to after your sample day.
How many dates will I get back?
Usually four, sometimes five. Months always contain four or five of each weekday; leap Februaries can hold five of some weekdays.
Does it handle leap years?
Yes. Gregorian leap rules apply, so February can have twenty-nine days and may contain five of some weekdays.
What does it cost?
The browser tool is free and runs locally.
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/list-weekday-dates-month \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-03-15","weekday":"monday"}'const res = await fetch("https://api.kit.forhosting.com/date/list-weekday-dates-month", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-03-15",
"weekday": "monday"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/list-weekday-dates-month",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-03-15",
"weekday": "monday"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/list-weekday-dates-month", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-03-15","weekday":"monday"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-03-15","weekday":"monday"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/list-weekday-dates-month", 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": "2024-03-15",
"weekday": "monday"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.list_weekday_dates_month",
"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
What you send and what you get back
Send two required fields: date as a valid ISO civil string YYYY-MM-DD, and weekday as an English name such as friday or as an integer from zero to six with Sunday equal to zero. Classic checks include every Monday of March two thousand twenty-four landing on the fourth, eleventh, eighteenth, and twenty-fifth; every Friday of February two thousand twenty-four landing on the second, ninth, sixteenth, and twenty-third; and every Thursday of February two thousand twenty-four including the twenty-ninth because that leap February has five Thursdays. Missing fields, malformed date strings, days that do not exist in that month, and unknown weekday tokens all fail with invalid_input and are not charged. On success the response echoes the normalized date, year, and month; the normalized weekday name and weekday_index; dates as the ascending array of ISO strings; days as the matching day-of-month integers; count as how many times that weekday appears; days_in_month; is_leap_year for the year; and a short formula string documenting the leap and Sakamoto rules. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where listing all weekday dates in a month earns its keep
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.