Skip to content

Format Tokens

Format tokens are placeholders used in display format strings.


TokenDescription
YYear (541, 2026)
YYYear, 2-digit (26 from 2026)
YYYYYear, 4-digit (2026)
[yearName]Named year (e.g., “Year of the Dragon”). Empty if no name defined

TokenDescription
MMonth index (1, 6, 12)
MMMonth index, 2-digit (01, 06, 12)
MMMMonth short (Jan, Jun, Dec)
MMMMMonth full (January, December)
MoMonth ordinal (1st, 6th, 12th)

TokenDescription
DDay of month (1, 15, 31)
DDDay of month, 2-digit (01, 15, 31)
DoDay ordinal (1st, 15th, 31st)
DDDDay of year, 3-digit (001, 166, 365)

TokenDescription
EEEEWeekday full (Monday, Tuesday)
EEEWeekday short (Mon, Tue, Wed)
EEWeekday short (Mon, Tue, Wed)
EWeekday short (Mon, Tue, Wed)
EEEEEWeekday narrow (M, T, W)
eWeekday index (0, 1, 2, 3, 4, 5, 6)

TokenDescription
wWeek of year (1, 26, 52)
wwWeek of year, 2-digit (01, 26, 52)
WWeek of month (1, 2, 3, 4, 5)
[namedWeek]Named week name (e.g., “Week of the Wolf”)
[namedWeekAbbr]Named week abbreviation

TokenDescription
HHour 24h (0, 14, 23)
HHHour 24h, 2-digit (00, 14, 23)
hHour 12h (1, 2, 12)
hhHour 12h, 2-digit (01, 02, 12)
mMinute (0, 30, 59)
mmMinute, 2-digit (00, 30, 59)
sSecond (0, 30, 59)
ssSecond, 2-digit (00, 30, 59)
AMeridiem abbreviated uppercase (AM, PM)
aMeridiem abbreviated lowercase (am, pm)
[meridiemFull]Full meridiem label (e.g., “Ante Meridiem”, “Sunward”)

TokenDescription
GGGGEra full (Anno Domini)
GGGEra short (AD, BC)
GGEra short (AD, BC)
GEra short (AD, BC)
[yearInEra]Year within era (1, 541)
[era=N]Full name of the Nth matching era
[eraAbbr=N]Abbreviation of the Nth matching era
[yearInEra=N]Year within the Nth matching era
[yearInEraOrdinal]Year within era, ordinal (1st, 541st)
[yearInEraOrdinal=N]Ordinal year within the Nth matching era

TokenDescription
QQQQSeason full (Spring, Summer)
QQQSeason short (Spr, Sum, Aut, Win)
QQSeason index, 2-digit (01, 02, 03, 04)
QSeason index (1, 2, 3, 4)
zzzzClimate zone full (Temperate, Tropical)
zClimate zone short (Tmp, Tro)

TokenDescription
[moon]Moon phase name of the first moon (Full Moon, New Moon)
[moon=N]Moon phase name of a specific moon by index or name ([moon=1], [moon='Celene'])
[moonIcon]Moon phase icon of the first moon
[moonIcon=N]Moon phase icon of a specific moon by index or name ([moonIcon=0], [moonIcon='Luna'])
[ch]Canonical hour (Matins, Vespers)
[chAbbr]Canonical hour short (Mat, Ves)
[cycle]Cycle number (1, 2, 3)
[cycleName]Cycle name
[cycleRoman]Cycle roman numeral (I, II, III)
[cycle=N]Nth cycle number (0-indexed, for multiple cycles)
[cycleName=N]Nth cycle name (0-indexed)
[cycleRoman=N]Nth cycle roman numeral (0-indexed)
[approxTime]Approximate time (Dawn, Noon, Dusk)
[approxDate]Approximate date (Early Spring)

Combine tokens to create custom formats:

  • D MMM → 15 Jan
  • D MMMM, Y → 15 January, 2026
  • EEEE, D MMMM Y → Thursday, 15 January 2026
  • HH:mm → 14:30
  • h:mm A → 2:30 PM

Use square brackets [] to include literal text:

  • [Year of] YYYY → Year of 2026
  • [The] Do [of] MMMM → The 5th of January

Use the pipe | (shift + ) character inside bracket tokens to define a fallback when the primary value is empty:

  • [yearName|YYYY] → Shows the year name if defined, otherwise the 4-digit year
  • [namedWeek|w] → Shows the named week if defined, otherwise the week number
  • [era|] → Shows the era name if defined, otherwise nothing

[!NOTE] Custom tokens like [moon], [cycle], etc. use brackets but are recognized as tokens, not literals.


PresetDescription
offHide the element entirely
calendarDefaultUse the active calendar’s built-in format
customUser-defined format string
PresetDescription
approxDateApproximate date (e.g., “Midsummer”)
approxTimeApproximate time of day (e.g., “Afternoon”)
PresetFormatExample
dateShortD MMM5 Jan
dateMediumD MMMM5 January
dateLongD MMMM, Y5 January, 2026
dateFullEEEE, D MMMM YMonday, 5 January 2026
PresetFormatExample
dateUSMMMM D, YJanuary 5, 2026
dateUSFullEEEE, MMMM D, YMonday, January 5, 2026
dateISOYYYY-MM-DD2026-01-05
dateNumericUSMM/DD/YYYY01/05/2026
dateNumericEUDD/MM/YYYY05/01/2026
PresetFormatExample
ordinalDo of MMMM5th of January
ordinalLongDo of MMMM, Y5th of January, 2026
ordinalEraDo of MMMM, Y GGGG5th of January, 2026 Age of Heroes
ordinalFullEEEE, Do of MMMM, Y GGGGMonday, 5th of January, 2026 Age of Heroes
seasonDateQQQQ, Do of MMMMWinter, 5th of January
PresetFormatExample
time12h:mm A9:30 AM
time12Sech:mm:ss A9:30:45 AM
time24HH:mm09:30
time24SecHH:mm:ss09:30:45
PresetFormatExample
datetimeShort12D MMM, h:mm A5 Jan, 9:30 AM
datetimeShort24D MMM, HH:mm5 Jan, 09:30
datetime12D MMMM Y, h:mm A5 January 2026, 9:30 AM
datetime24D MMMM Y, HH:mm5 January 2026, 09:30

This same information is available in-app by clicking the Token Reference button on the Calendar Editor’s Display tab or the help icon (?) next to any Display Formats section in the Settings Panel. The Display tab also provides live preview feedback as you type format strings.