The date comes first. A calendar layout changes where information is shown; it should not quietly change the day an event belongs to.

Gregorian dates without time-zone conversion

MonthSprig supports Gregorian years 1900–2100. Calendar calculations use year, month and day values rather than treating every date as a midnight timestamp to convert between time zones. A date entered as March 8 remains March 8 when the grid is arranged.

Leap years follow Gregorian rules. The supported examples include 1900 as a common year, 2000 as a leap year and 2028 as a leap year. Invalid dates are errors to correct, not values to roll automatically into another month.

The grid follows the selected week start

Monday-first and Sunday-first layouts place the same dates in different columns and can use different numbers of rows. November 2026 needs six rows with Monday first and five with Sunday first. The layout must retain every date exactly once in either arrangement.

An academic calendar keeps a sequence of twelve months from the selected first month. A week contains seven consecutive dates, and a quarter contains its three calendar months. These ranges do not assert school terms, opening hours or a particular week-numbering convention.

Event dates and labels have different roles

A single-day event belongs to one actual date. A spanning event includes the final date entered in the editor. A time label is display text; it does not create a timed appointment, a time-zone conversion or a reminder.

Weekly, monthly and yearly rules repeat the chosen date pattern. A monthly day-31 rule skips shorter months. A yearly February 29 rule skips non-leap years. The system does not silently shift either event to the last day of a month.

Holiday records keep their source and limits

The optional U.S. federal collection records actual and observed dates separately, with source, review date and coverage. The reviewed holiday years are 2026–2028. Source entries are separate from user-added events.

A displayed date can belong to a different year from its holiday label: the standard observed date for New Year’s Day 2028 is December 31, 2027. A calendar extending into 2029 keeps a coverage warning until those holiday records have been separately reviewed.

Output formats serve different purposes

PDF and PNG describe the arranged page; event CSV and ICS describe event information. JSON preserves the editable project. A dark interface does not imply a dark print background, and printing excludes navigation and advertisement areas.

ICS all-day events use DATE values and an exclusive DTEND. The editor’s March 29–31 event therefore ends at 20270401 in the file, covering the same three days. CSV fields need correct quoting and safe treatment of formula-like user text; imported content is data, not executable instructions.

Check the result in its intended use

Use the complete preview to inspect dates, long labels, spans and the final page. Open an actual downloaded file before relying on it. A paper setting describes the intended physical page, while a PNG’s dimensions describe pixels. The receiving viewer and printer can add their own scaling.

The guides explain these checks so the calendar’s limits remain understandable. This methodology is a description of rules and intended behavior, not a substitute for the source of an important deadline or an assertion that an external calendar service will display every import identically.

Sources and further reading