Text Enrichers
Calendaria provides inline enrichers for journals, chat, items, and anywhere Foundry renders rich text.
You write an enricher with the cal. prefix and a type. Most types take optional parameters, a custom label, or a cross-calendar query.
[[cal.<type>]] → basic[[cal.<type> <params>]] → with parameters[[cal.<type>]]{Custom Label} → custom display label[[cal.<type> cal=<id>]] → cross-calendar queryInserting enrichers from the editor
Section titled “Inserting enrichers from the editor”You do not have to type enricher markup by hand. Any rich-text editor that uses ProseMirror, such as journal pages and note content, has an insert menu with a Calendaria group.
The Calendaria group splits its entries into submenus by category: Date & Time, Time Math, Calendar, Sun & Daylight, Moon, Weather, Notes, Composite, and Actions. Within each submenu the entries are sorted alphabetically by their label. Picking an entry drops its [[cal.<type>]] markup at the cursor.
Action enrichers that need arguments insert with placeholder values you replace. For example, Jump to Date inserts [[cal.jumptodate [DAY] [MONTH] [YEAR]]], and you fill in the day, month, and year.
Date and time
Section titled “Date and time”Display a date. Click to navigate the calendar to that date.
[[cal.date]] → 5 Shadowmoon, 1499[[cal.date 15 Mirtul 1492]] → 15 Mirtul, 1492[[cal.date 15 5 1492]] → 15 Mirtul, 1492[[cal.date format=dateFull]] → Mercday, 5 Shadowmoon 1499[[cal.date approx=true]] → Late Winter[[cal.date time=true]] → 5 Shadowmoon 1499, 14:30[[cal.date format="{the }Do{ day of }MMMM"]] → the 5th day of Shadowmoon| Parameter | Type | Description |
|---|---|---|
| positional | day month year | Specific date (month name or index). Omit for current date |
format | string | Format preset or token string |
approx | boolean | Approximate date description |
time | boolean | Include time |
Custom format strings inside enrichers must use
{...}for literal text, not[...]. The[[...]]enricher delimiters collide with[literal], so{literal}is the enricher-safe form. Both forms work identically in the settings Display Format editor.
Display the current time.
[[cal.time]] → 14:30[[cal.time 12h=true]] → 2:30 PM[[cal.time approx=true]] → Afternoon| Parameter | Type | Description |
|---|---|---|
12h | boolean | 12-hour format |
approx | boolean | Approximate time of day |
weekday
Section titled “weekday”[[cal.weekday]] → Mercdayseason
Section titled “season”[[cal.season]] → Spring[[cal.era]] → Second Age[[cal.cycle]] → Temporisfestival
Section titled “festival”Click to open the festival note if one exists.
[[cal.festival]] → Midsummerrestday
Section titled “restday”[[cal.restday]] → Work DayTime math
Section titled “Time math”countdown
Section titled “countdown”Days until a target date. Click to navigate to the target.
[[cal.countdown 1 Mirtul 1500]] → in 45 days[[cal.countdown 1 6 1500]] → in 45 dayscountup / elapsed
Section titled “countup / elapsed”Days since a target date, or days until when to= points to a future date. Click to navigate to the target. The tooltip shows days until a future static target and days since otherwise.
[[cal.countup 1 Mirtul 1490]] → 730 days[[cal.countup 1 Mirtul 1490 relative=true]] → in 2 years[[cal.countup 1 Mirtul 1490 relative=true simple=true]] → 2[[cal.countup 1 Mirtul 1490 to="1 Mirtul 1492"]] → 730 days[[cal.countup 1 Mirtul 1490 to="1 Mirtul 1492" relative=true simple=true]] → 2[[cal.countup 1 Mirtul 1490 to="event"]] → 730 days (resolves to the host calendar note's start date)[[cal.countup 1 Mirtul 1490 to="High Harvestide"]] → 730 days (resolves to a calendar note matched by name)[[cal.elapsed 1 Mirtul 1490]] → 730 days| Parameter | Type | Description |
|---|---|---|
relative | boolean | Human-readable relative text (years/months/weeks) |
simple | boolean | Return only the numeric count (e.g. 42 not 42 years ago) |
to | string | End date (to="1 Mirtul 1492"), to="event" for the host note’s start date, or a note name (to="High Harvestide") |
between
Section titled “between”Distance between two dates.
[[cal.between 1 1 1490 to 1 6 1490]] → 150 days[[cal.between 1 1 1490 to 1 6 1490 unit=months]] → 5 months| Parameter | Type | Description |
|---|---|---|
unit | string | months for month count |
timeuntil
Section titled “timeuntil”Time until a target event.
[[cal.timeuntil sunrise]] → 3h 20m[[cal.timeuntil sunset]] → 8h 15m[[cal.timeuntil midnight]] → 9h 30m[[cal.timeuntil midday]] → 2h 10m[[cal.timeuntil sunset hours=true]] → 8h 15m| Parameter | Type | Description |
|---|---|---|
hours | boolean | Compact “Xh Ym” format |
Targets: sunrise, sunset, midnight, midday
datemath
Section titled “datemath”Date arithmetic from the current date. Click to navigate to the result.
[[cal.datemath +30d]] → 6 Thawmoon, 1500[[cal.datemath +2m -5d]] → 1 Shadowmoon, 1499[[cal.datemath +1y]] → 5 Shadowmoon, 1500Units: d (days), m (months), y (years)
Calendar
Section titled “Calendar”calname
Section titled “calname”[[cal.calname]] → Forgotten Realms[[cal.month]] → Shadowmoon[[cal.year]] → 1499dayofyear
Section titled “dayofyear”[[cal.dayofyear]] → 287yearprogress
Section titled “yearprogress”Renders a progress bar.
[[cal.yearprogress]] → [========--] 79%leapyear
Section titled “leapyear”[[cal.leapyear]] → Not a Leap Yearintercalary
Section titled “intercalary”[[cal.intercalary]] → Standarddaysinyear
Section titled “daysinyear”[[cal.daysinyear]] → 365Sun and daylight
Section titled “Sun and daylight”sunrise / sunset
Section titled “sunrise / sunset”[[cal.sunrise]] → 06:30[[cal.sunset]] → 18:45daylight
Section titled “daylight”[[cal.daylight]] → 12.3hisdaytime
Section titled “isdaytime”[[cal.isdaytime]] → Daytimedayprogress / nightprogress
Section titled “dayprogress / nightprogress”[[cal.dayprogress]] → 65%[[cal.nightprogress]] → 23%untilsunrise / untilsunset
Section titled “untilsunrise / untilsunset”[[cal.untilsunrise]] → 5h 30m[[cal.untilsunset]] → 2h 15mDisplay moon phase info.
[[cal.moon]] → Waxing Crescent (with icon)[[cal.moon 1]] → Full Moon (second moon)[[cal.moon icon=true]] → (icon only)[[cal.moon position=true]] → 45%[[cal.moon cycleday=true]] → 12[[cal.moon isfull=true]] → Not Full Moon| Parameter | Type | Description |
|---|---|---|
| positional | number | Moon index (0-based) |
icon | boolean | Icon only |
position | boolean | Cycle position % |
cycleday | boolean | Day in cycle |
isfull | boolean | Full moon check |
[[cal.moons]] → Selune: Full Moon, Tears: Waningnextfullmoon
Section titled “nextfullmoon”Click the date mode to navigate to that date.
[[cal.nextfullmoon]] → 22 Shadowmoon, 1499[[cal.nextfullmoon countdown]] → in 8 days[[cal.nextfullmoon 1]] → 15 Thawmoon, 1499convergence
Section titled “convergence”Click to navigate. Requires two or more moons.
[[cal.convergence]] → 15 Thawmoon, 1501Eclipse
Section titled “Eclipse”eclipse
Section titled “eclipse”Current eclipse status for a moon. Requires eclipses enabled in the Calendar Editor moon settings.
[[cal.eclipse]] → Total Solar Eclipse[[cal.eclipse 1]] → Partial Lunar Eclipse| Parameter | Type | Description |
|---|---|---|
| positional | number | Moon index (0-based) |
Eclipse types: Total Solar, Partial Solar, Annular Solar, Total Lunar, Partial Lunar, Penumbral Lunar. Returns “No Eclipse” when none is occurring.
nexteclipse
Section titled “nexteclipse”Date of the next eclipse. Click the date mode to navigate to that date.
[[cal.nexteclipse]] → 22 Shadowmoon, 1499[[cal.nexteclipse countdown]] → in 12 days[[cal.nexteclipse 1]] → 8 Thawmoon, 1500[[cal.nexteclipse 1 countdown]] → in 45 days| Parameter | Type | Description |
|---|---|---|
| positional | number | Moon index (0-based) |
| positional | string | countdown for relative days |
Weather
Section titled “Weather”weather
Section titled “weather”[[cal.weather]] → Clear Skies (with icon)temperature
Section titled “temperature”[[cal.temperature]] → 72F[[cal.wind]] → Moderate SSEprecipitation
Section titled “precipitation”[[cal.precipitation]] → Noneweathericon
Section titled “weathericon”[[cal.weathericon]] → (icon only)[[cal.zone]] → Temperateforecast
Section titled “forecast”Render a weather forecast block.
[[cal.forecast]] → 3-day forecast (default)[[cal.forecast 5]] → 5-day forecast| Parameter | Type | Description |
|---|---|---|
| positional | number | Days to forecast (default 3) |
Click to open the note.
[[cal.event The Council Meeting]] → The Council Meeting[[cal.notes]] → Council Meeting, Dragon Attack[[cal.notes 15 5 1492]] → Session Recap[[cal.notes count=true]] → 3 notes[[cal.notes count=true scope=month]] → 12 notes| Parameter | Type | Description |
|---|---|---|
count | boolean | Show count instead of names |
scope | string | month for monthly count |
Click the date mode to open the note.
[[cal.next Council Meeting]] → 22 Mirtul, 1492[[cal.next Council Meeting countdown]] → in 7 dayscategory
Section titled “category”Uses the category’s icon.
[[cal.category Holidays]] → Midsummer, Shieldmeetchronicle
Section titled “chronicle”Click to open the Chronicle View locked to the date range. Infinite scroll is disabled at the boundaries and the Today button is hidden.
[[cal.chronicle 1 10 1492 to 31 10 1492]] → 1 Shadowmoon, 1492 - 31 Shadowmoon, 1492[[cal.chronicle 1 1 1500 to 14 1 1500]]{The Founding Week} → The Founding Week| Parameter | Type | Description |
|---|---|---|
cal | string | Calendar ID to scope notes/weather to (optional) |
categories | string | Comma-separated preset IDs applied as a one-shot Chronicle category filter; does not modify the persisted user filter (optional) |
Composite
Section titled “Composite”summary
Section titled “summary”Click to navigate to today.
[[cal.summary]] → 5 Shadowmoon, 1499 · Clear · Waxingalmanac
Section titled “almanac”[[cal.almanac]] → (multi-line block)format
Section titled “format”See Format Tokens.
[[cal.format EEEE, Do MMMM Y]] → Mercday, 5th Shadowmoon 1499compare
Section titled “compare”Click to navigate to the target.
[[cal.compare 1 1 1490]] → in 9 years (3285 days)Click to navigate to the result.
[[cal.peek +7d]] → 12 Shadowmoon, 1499[[cal.peek +1m]] → 5 Thawmoon, 1499Actions
Section titled “Actions”Clickable buttons that alter the calendar. Time actions are gated by canChangeDateTime and weather actions by canChangeWeather.
advancetotime
Section titled “advancetotime”Advance the clock to the next HH:MM.
[[cal.advancetotime 06:30]] → advance forward to 06:30[[cal.advancetotime 06:30 direction=nearest]] → snap to the closer side of midnight| Parameter | Type | Description |
|---|---|---|
| positional | string | Target HH:MM |
direction | string | nearest to snap to the closer side of midnight |
advanceinterval
Section titled “advanceinterval”Advance time by a composite delta.
[[cal.advanceinterval hour=2 minute=30]] → +2h 30m[[cal.advanceinterval day=1 hour=6]] → +1d 6h| Unit | Suffix |
|---|---|
second | s |
round | r |
minute | m |
hour | h |
day | d |
week | w |
month | mo |
season | sea |
year | y |
advancetopreset
Section titled “advancetopreset”Advance to the next named time-of-day.
[[cal.advancetopreset sunrise]][[cal.advancetopreset sunset]]Targets: sunrise, midday, noon, sunset, midnight.
settime
Section titled “settime”Snap the clock to HH:MM on the current date without changing the day.
[[cal.settime 06:00]]jumptodate
Section titled “jumptodate”Move the world clock to the given date, preserving the current time of day.
[[cal.jumptodate 15 Mirtul 1492]][[cal.jumptodate 15 5 1492]]toggleclock
Section titled “toggleclock”Toggle the real-time TimeClock on/off.
[[cal.toggleclock]]setweather
Section titled “setweather”Apply a weather preset id.
[[cal.setweather clear]][[cal.setweather rain temperature=12 period=morning]][[cal.setweather snow allPeriods=true]]| Parameter | Type | Description |
|---|---|---|
| positional | string | Preset id |
temperature | number | Override temperature |
period | string | Intraday period to apply to |
zoneId | string | Climate zone id |
allPeriods | boolean | Apply to all intraday periods |
Cross-calendar
Section titled “Cross-calendar”Any enricher accepts cal=<id> to query a non-active calendar.
[[cal.date cal=harptos]] → 15 Mirtul, 1492[[cal.moon cal=krynn]] → Full Moon[[cal.season cal=gregorian]] → WinterThis is read-only. Click navigation still targets the active calendar.