Appearance
Calendar settings reference
Configure @mes/aps-calendar@0.6.0 through separate calendar.* Settings records. See record fields and creation examples. The Calendar panel guide explains object selection and data requests.
Locale, timezone and hourly labels
The component reads these options inside settings, so the full MES names start with calendar.settings.. Top-level calendar.locale or calendar.workingHours do not configure these options.
| Settings name | Type / API code | Default | Effect |
|---|---|---|---|
calendar.settings.locale | String / 0 | ru-RU | Date/time language and conventions |
calendar.settings.timezone | String / 0 | Browser IANA timezone, then UTC | Package time formatting and timezone-aware day boundaries |
calendar.settings.workingHours.startFrom | String / 0 | 00:00 | First hourly label |
calendar.settings.workingHours.endTo | String / 0 | 25:00 | Upper bound, not included in the hourly labels; 25:00 makes 24:00 the last label |
calendar.settings.inheritText | String / 0 | Унаследовано от: | Text accompanying an inherited status/template source name |
Locale accepts a valid BCP-47 tag. Timezone accepts a valid IANA name, such as Europe/Moscow. The panel resolves an absent/invalid timezone to the browser zone, then UTC. It does not rewrite normalized API instants. Use HH:mm strings for startFrom and endTo, with the end after the start. Calendar does not validate the format or range of these values from Settings.
workingHours generates hourly labels and grid lines in day/week views. It does not filter the Calendar API request or change the calculation of status positions, which remains relative to the full day. This option does not create a working-time viewport; custom labels can therefore differ from the time coordinates used to position statuses.
Time and date formats
Set individual properties, not one JSON string for the whole format object:
| Object | Component defaults | Where used |
|---|---|---|
calendar.settings.timeFormat | hour: "2-digit", minute: "2-digit" | Time labels |
calendar.settings.dateFormat | year: "numeric", month/day/hour/minute: "2-digit"; second omitted | Date/time labels |
calendar.settings.weekFormat | year: "numeric", month: "short", day: "2-digit" | Separate day, month and year labels |
Examples of leaf records:
name | dataType | value |
|---|---|---|
calendar.settings.timeFormat.hour | 0 | 2-digit |
calendar.settings.timeFormat.minute | 0 | 2-digit |
calendar.settings.timeFormat.hour12 | 4 | false |
calendar.settings.dateFormat.month | 0 | long |
calendar.settings.weekFormat.month | 0 | long |
timeFormat and dateFormat use Intl.DateTimeFormat options. Use the appropriate string, Boolean or numeric record type for each option. weekFormat reads only day, month, and year; other properties have no effect there. Set the zone through calendar.settings.timezone, which the formatter applies over an option object's own timeZone.
Initial view and date
| Settings name | Type / API code | Default | Values |
|---|---|---|---|
calendar.calendarType | Integer / 1 | 1 — week | 0 month, 1 week, 2 day |
calendar.calendarDate | Date/time / 3 | Current date when the package is loaded | Valid ISO date/time string, such as 2026-10-13T00:00:00.000Z |
These set the initial view. After the user navigates, the panel remembers view/date for the browser session and reapplies them when another object is selected. Saved session values win over Settings on those remounts. Reload the page to start from the Settings values again.
Example: Moscow time and hourly labels from 08:00
Create three scalar global records through POST /settings:
json
[
{
"scope": "global", "name": "calendar.settings.timezone",
"description": "Calendar timezone", "dataType": 0,
"isArray": false, "overridable": true, "value": "Europe/Moscow"
},
{
"scope": "global", "name": "calendar.settings.workingHours.startFrom",
"description": "First hourly label", "dataType": 0,
"isArray": false, "overridable": true, "value": "08:00"
},
{
"scope": "global", "name": "calendar.settings.workingHours.endTo",
"description": "Hourly label upper bound", "dataType": 0,
"isArray": false, "overridable": true, "value": "18:00"
}
]If a record exists, edit it instead of creating a duplicate. Reload the Calendar application, select an object, and open the day view. The hourly labels run from 08:00 through 17:00: the upper bound 18:00 is excluded. Time formatting uses Moscow time. These records do not change the daily request range or reposition statuses into an 08:00–18:00 working window. A personal override takes precedence over its global record; see Settings scopes.
Values owned by the application or widget
uuididentifies the selected object; the panel supplies it.calendarWeekis a date pair recalculated fromcalendarDateon mount. Do not configure it separately.calendarTemplateis the generated calendar grid, not a Settings array. Assignments/statuses/templates come through the Calendar API.- Settings changes do not select an object or supply calendar data.
- The current graph loader handles scalar leaves, not arrays or JSON object strings. JavaScript in a value is not executed.
The timezone option does not guarantee browser-independent arithmetic in every package path. See Calendar limitations.