---
title: "Уведомления по временным окнам с UTC-условиями в Echobell"
description: "Используйте встроенные переменные времени UTC в Echobell, чтобы фильтровать уведомления по рабочим часам, выходным или окнам обслуживания. Внутри — готовые рецепты условий."
date: 2025-11-06
author: Nooc
authorAvatarLink: /images/avatars/nooc.webp
authorLink: https://nooc.me
tags:
  - Echobell
  - условия
  - UTC
  - оповещения по временным окнам
  - фильтрация уведомлений
---

# Уведомления по временным окнам с UTC-условиями в Echobell

Встроенные переменные времени UTC в Echobell позволяют ограничить уведомления определёнными временными окнами — рабочими часами, дежурными сменами, окнами обслуживания — прямо в условиях канала. Внешний слой фильтрации не нужен.

Что понадобится заранее: [Условия](/ru/docs/conditions), [Шаблоны](/ru/docs/template), [Webhook](/ru/docs/webhook), [Email-триггеры](/ru/docs/email-trigger).

## Доступные переменные UTC

Эти переменные доступны только для чтения, есть всегда и вычисляются в UTC:

- `timezone` (всегда «UTC»), `now`/`iso`, `epochMs`, `epochSeconds`
- `year`, `month` (1–12), `monthName`
- `dayOfMonth` (1–31)
- `dayOfWeek` (0–6, воскресенье = 0), `dayOfWeekName`
- `hour` (0–23), `minute` (0–59), `second` (0–59)
- `date` (YYYY-MM-DD), `time` (HH:mm:ss)

В [Условиях](/ru/docs/conditions) используйте их напрямую (без `{{ }}`). В [Шаблонах](/ru/docs/template) — с `{{ }}`.

## Рецепты условий

### Будни в рабочие часы

```
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
```

### Только выходные

```
dayOfWeek == 0 || dayOfWeek == 6
```

### Вне рабочих часов (ночи и выходные)

```
(hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6
```

### Окно обслуживания (по субботам 01:00–03:00)

```
dayOfWeek == 6 && hour >= 1 && hour < 3
```

### Первое число каждого месяца в начале часа

```
dayOfMonth == 1 && minute == 0
```

### Рабочие часы в конце квартала (март/июнь/сентябрь/декабрь)

```
(month == 3 || month == 6 || month == 9 || month == 12) && hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
```

## Сочетание времени с фильтрами по содержимому

Условия по времени комбинируются с переменными данных через стандартные операторы:

- Эскалация вне рабочих часов только при высокой критичности:
  ```
  ((hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6) && (severity == "high" || severity == "critical")
  ```
- Продакшен-окружение, только по будням:
  ```
  environment == "production" && dayOfWeek >= 1 && dayOfWeek <= 5
  ```

Условия — это обычные выражения, не оборачивайте их в `{{ }}`. См. [Условия → Поддерживаемые операторы](/ru/docs/conditions#supported-operators).

## Переменные времени в шаблонах

Те же переменные работают в шаблонах с `{{ }}` — это удобно для записей аудита и понятных человеку подтверждений:

```
Sent at {{date}} {{time}} {{sys.timezone}}
Today is {{sys.dayOfWeekName}}, {{sys.monthName}} {{dayOfMonth}}, {{year}}
Epoch: {{sys.epochSeconds}}
```

Комбинируйте с данными из [Webhook](/ru/docs/webhook) или [Email-триггеров](/ru/docs/email-trigger):

```
{{service}} {{status}} at {{time}} ({{sys.timezone}})
```

## Примечания

- Все системные переменные — в UTC. Если ваша команда распределена по часовым поясам, учитывайте смещение при выборе диапазонов часов.
- Начните с простого временного окна, а когда оно заработает, добавьте фильтры по содержимому.
- Оставьте в канале короткое описание логики условия (например, «Будни 09–17 UTC; вне этих часов — только высокая критичность»).

## Дальнейшие шаги

- Добавьте условие с временным окном в существующий канал: [Условия](/ru/docs/conditions)
- Настройте содержимое уведомлений с помощью переменных: [Шаблоны](/ru/docs/template)
- Создайте отдельные каналы для рабочих часов и для дежурных окон
- Для дежурных каналов выберите тип уведомления «Звонок», чтобы срочность вне рабочих часов доходила
