ForHosting KIT · Dates & time

Roman Kalends/Nones/Ides

1 March 2020 is the Kalends of March in the Roman calendar, written Kalendis. Enter a modern date to see how it is named in classical Roman style, counted from the Kalends, Nones and Ides of its month. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Date
2020-03-01
You get
Conversion direction
gregorian_to_roman
Roman date form
kalendae
Day
1
Month
3

Convert Gregorian civil dates into classical Roman calendar notation (Kalends, Nones, Ides).

Three marker days in every month

The Romans did not number the days of a month from first to last as we do. Instead, each month had three fixed marker days. The Kalends was always the first day. The Nones came on the fifth, except in March, May, July and October, when it moved to the seventh. The Ides fell on the thirteenth, or on the fifteenth in those same four months. Every other day was described by how far it lay before the next of these markers. This converter takes a modern date and tells you which marker it is or which marker it leads up to.

Reading the result without slips

Roman counting was inclusive: both the day itself and the marker day were counted, so the number of days before a marker looks one higher than a modern subtraction would suggest. Days after the Ides are named after the Kalends of the next month, which means a late-March date is written in relation to April. Enter the date as year, month and day; an empty entry or one in the wrong format is rejected before any calculation. The result is worked out the same way every time, with nothing looked up online, so you get a reliable answer without a spreadsheet.

Edge cases and limits

Empty strings, wrong types, and contradictory ranges are rejected early. Civil dates without timezone are calendar dates. Embedded tables travel inside the capability folder with no network calls at runtime.

Review examples before integrating.

Daily work

Get a reliable answer without a spreadsheet.

What are the Kalends, Nones and Ides?

They are the three fixed marker days of every Roman month. The Kalends is the first day, the Nones falls on the fifth or seventh, and the Ides on the thirteenth or fifteenth.

In which months do the Nones and Ides fall later?

In March, May, July and October the Nones fall on the seventh and the Ides on the fifteenth. In every other month they fall on the fifth and the thirteenth.

How are the other days of the month named?

They are counted backwards to the next marker day, so a date is named as a number of days before the Nones, the Ides or the Kalends of the following month.

Can it turn a Roman date back into a modern one?

No. It works one way only, so you enter a modern date and get its Roman name. To go the other way, read the result as the number of days before the marker day it names.

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.

POSThttps://api.kit.forhosting.com/date/roman-date

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.

curl -X POST https://api.kit.forhosting.com/date/roman-date \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2020-03-01"}'
{
  "date": "2020-03-01"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "date.roman_date",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

How it works

Convert Gregorian civil dates into classical Roman calendar notation (Kalends, Nones, Ides). The calculation is fully deterministic and runs free in your browser with the same pure function as the API. Inputs are validated before arithmetic so bad types become clear invalid_input errors. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values.

Inputs and outputs

Optional fields use documented defaults. Required schema fields must be present and typed. Success payloads always include the primary output fields so UI bindings stay stable. Extremely large intermediates that overflow IEEE-754 become out-of-range errors rather than nulls. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values.

Edge cases and limits

Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values.

Automation

Same pure function in widget and API.

Teaching

Stable golden fixtures for demos.

Is it free?

Yes, tier A in the browser.

Network?

No network; parse on-device.

Invalid input?

invalid_input with a clear match.

Stable?

Deterministic goldens freeze the contract.

Author?

samurai.

Read the full KIT documentation →