Calendar

A month or a whole year, with week numbers, ready to print.

Settings

Public holidays

No public holiday this month.

Click a day for its details. Outside a field, Page Up and Page Down go to the previous and next month (or year). With weeks starting on Sunday, the week number is that of the Monday of the row.

Transparency

The calendar is drawn in your browser, by the scripts listed below. Nothing leaves this page.

Enforced by your browser
This page's Content Security Policy allows a single destination, the site's audience measurement (connect-src https://stats.r-no.fr, see below), and forbids any form submission (form-action 'none'), so even a bug could not send what you type anywhere. You can read the policy at the top of the page source.
Audience measurement
Like every page of the site, this one counts its visit with Umami, installed on R-no’s own server (stats.r-no.fr). It receives the address of the page, without parameters or anchor, the site you came from (its domain only), your browser, system, language and screen size, and the country, region and city deduced from your IP address, which is not kept. It never receives what you type, nor the result of the tool. No cookie, nothing stored in your browser; if your browser asks not to be tracked (Do Not Track), nothing is measured. The data is erased after 25 months.
  • /commun/mesure.js: the filter applied before each sending, written for R-no Toolbox. 1.4 kB
    SHA-256 225eec74fd12623d82fc05ee7d222be629ce454d081c129e8d1e249ed37ee716
  • https://stats.r-no.fr/m.js: Umami’s tracker, open source (MIT), served by the measurement server. Its fingerprint is not shown here: it changes with each version of Umami, and you cannot check from your browser that it is the published code. For that part, you have to trust R-no.
What is stored
No cookie, and nothing in the address. What you type is never stored: it disappears when you reload or close the page. Your language is given by the address itself (/en/ or /fr/): nothing is stored to remember it. Like any website, the server records the download of the page and its files in its access logs (IP address, date and time, address requested, browser name). It never receives what you type.
Code that runs here
  • app.js: the calendar and its calculations, written for R-no Toolbox. Not minified, no third-party library. 32.5 kB
    SHA-256 ec4ce563fd9caece7c560df9f296e9b0ec5cbe0d906c93454cb841190009eca1
  • textes.js: the French messages of the tool, shown by its script (the rest of the French page is written into its HTML when the site is built). It only defines texts, with no logic. 11.4 kB
    SHA-256 a6682b1328b7d8eb07b29b04006c156127a814e3f2196e558eedf235a1a2bc1d
  • /commun/langue.js: the language helper, the same on every page of the site. It reads the language of the page and gives the tool its messages in that language. It stores nothing. 1.6 kB
    SHA-256 80f76f69773ef628d36d09bf8387cfedebda4529210d7120649b6f5603310631
Public holidays
Legal public holidays of France (Labour Code, article L3133-1, with Alsace-Moselle and the overseas departments), Belgium, Ireland, Italy, Luxembourg, the Netherlands, the United Kingdom (England and Wales, Scotland, Northern Ireland, with the one-off days proclaimed since 1995), the United States (federal holidays) and Canada (federal Labour Code and each province’s employment standards law). They are computed in the page for any year: fixed dates, “third Monday of January”, and days that follow Easter (Meeus, Jones and Butcher’s algorithm). The rules were checked in September 2026 against the laws and official sites; days created since 2000 only count from their first year (Juneteenth 2021, 4 October in Italy 2026…). A holiday falling on a weekend is only moved where the law fixes the replacement day (United Kingdom, United States, Canada Day, Quebec’s Fête nationale, Manitoba, Nova Scotia, Prince Edward Island, Newfoundland, Saskatchewan): it is then marked “substitute day”. Elsewhere, the law gives a day off chosen in the company, or pay, which cannot be known here. Nothing is downloaded: the rules are written in app.js.
The first day of the week
On opening, the page reads from your browser the usual first day of the week for your language (Monday in France, Sunday in the United States), when the browser gives it; otherwise Monday. It is read, never stored.
How it was checked
Every month from January 1900 to December 2100 was compared with GNU date: weekday of the 1st, number of days and ISO week of each row. The tests run again before each release.
Check it yourself
Download a script and compare its fingerprint with the one above:
curl -s https://r-no.fr/dates/calendar/app.js | shasum -a 256
Limits
Gregorian calendar, extended before 1582 as if it had always been in use (the actual switch happened in 1582 in France and 1752 in Britain), from year 1 to 9999. Public holidays: only the legal ones. Days off by custom or collective agreement are not counted: Good Friday and mid-Lent in the French West Indies, 21 July in Guadeloupe and Martinique, patron saints in Italy, the extra days in Newfoundland’s public service… In the Netherlands, 5 May is a holiday every year under the law, but a day off only if the collective agreement says so. Quebec: Good Friday is counted; the law lets the employer choose Easter Monday instead. From 2005 to 2007, Whit Monday was worked in France as the solidarity day, and is not counted. Before 2000, the history of the laws is not followed. “Today” comes from your device’s clock and time zone.