Skip to content

Build a calendar definition

Open a calendar and select Definition. Definition changes are drafts: the page shows Unsaved until you choose Save or Discard. Use Cmd/Ctrl+S to save.

Invalid or incomplete fields block saving and show errors near the affected section. If you navigate away with a draft, choose whether to discard it or keep editing.

The epoch label describes the calendar’s origin. The primary chain decides how ticks roll up into the units and spans used to format dates.

Calendars with secondary unit chains can be summarized by the current UI but are structurally read-only. This prevents the builder from losing a definition it cannot safely edit.

Ticks are the fixed base and cannot be removed. Add larger units above it, rename them, reorder them, or delete non-base units.

A larger unit can be:

  • Fixed: a factor multiplied by the previous unit.
  • Spans: an ordered list of named spans, each with its own length.

For a spans unit, add, remove, rename, and reorder its spans. Their lengths are expressed in the previous unit.

Deleting a unit can also remove references from the primary chain, overlays, and leap rules. Weave shows a confirmation before applying that cascade.

A leap rule selects a span and applies a positive or negative length delta when its predicate matches.

Predicates can express:

  • a congruence such as year mod 4 ≡ 0;
  • ALL conditions;
  • ANY conditions;
  • NOT around another condition.

Groups can be nested to the supported depth. Converting a populated group back to a simple congruence discards its children, so Weave asks for confirmation.

An overlay adds a repeating label cycle—such as weekdays—without changing unit lengths. Give it a name, choose its unit and offset, then add and reorder its cycle labels.

Overlays can be used by formatted output, the jump grid, and recurring calendar events. Save the definition before expecting the Converter or Events preview to use your latest changes.