A modern, fast, and standalone CLI calendar utility written in Rust. It serves as a drop-in or enhanced replacement for the classic cal/ncal commands, featuring auto-localization, grid alignment, customizable month ranges, interactive navigation, and todo/event integration.
- Zero Dependencies: Compiles into a single independent binary.
- Auto-Localization: Automatically detects system locale (supports Russian and English; defaults to English).
- Flexible Grids: Displays multiple months horizontally, perfectly aligned.
- Custom Months Range: View from 1 to 12 months ahead or look up any specific year.
- Beautiful Borders: Optional clean box borders around month blocks.
- Week Counts: Displays total ISO-8601 week count for full-year views.
- Interactive TUI Mode: Smoothly navigate through months or years using arrow keys.
- Todo/Events Integration: Automatically highlights dates with events in green and lists descriptions directly below the calendar grid.
Ensure you have cargo installed:
sudo pacman -S rustClone the repository and build the release version:
git clone https://github.com/1mesles1/dcal
cd dcal
cargo build --release
sudo cp target/release/dcal /usr/local/bin/You can build a native Arch package manually using the provided PKGBUILD:
git clone https://github.com/1mesles1/dcal
cd dcal
makepkg -sidcal— Display current month (auto-localized).dcal -3— Display 3 months horizontally starting from current.dcal -c— Display 3 months with the current month strictly in the center.dcal -g— Display the full current year (aligned in a clean 4x3 grid).dcal -x2021— Display the specified year fully (e.g., year 2021).dcal -b— Draw a clean border around month blocks (can be combined with other flags like-gbor-cb).dcal -m— Start the week on Sunday instead of Monday.dcal -e/dcal -r— Force English or Russian output regardless of system locale (the leftmost flag takes priority).dcal -v/dcal -h— Show version or help message.dcal -i— Interactive Mode. Navigate months with Left/Right/Up/Down Arrow Keys. Press Q or Esc to exit. Tip: If combined with year mode (-gi), Arrow Keys will skip an entire year!dcal -w— Display ISO-8601 week numbers on the left side of the calendar grid.dcal -d— Events Mode. Highlights days with events in green and lists descriptions below the grid for the rendered period.- Data file path:
~/.config/dcal/events.txt(automatically created on first launch). - Format inside the file:
DD.MM.YYYY - event description(e.g.,23.05.2026 - Clean room).
- Data file path:
dcal -l— List all existing events from the database chronologically and exit.dcal -a— Launch the built-in Interactive Event Manager Console. Features its own command menu:[l]list events,[a]add event with date validation,[d]recursively delete events by index, and[q]return to shell.
Современная, быстрая и полностью независимая консольная утилита-календарь, написанная на Rust. Создана как замена классическим командам cal/ncal с поддержкой автоматической локализации, выравниванием сеток, интерактивным листанием, красивыми рамками в терминале и интеграцией с файлом планов.
- Ноль зависимостей: Компилируется в один независимый бинарный файл.
- Авто-локализация: Автоматически определяет язык системы (поддерживает русский и английский, по умолчанию английский).
- Выравнивание в ширину: Выводит несколько месяцев горизонтально в ряд с идеальной геометрией.
- Гибкие диапазоны: Позволяет смотреть от 1 до 12 месяцев вперед или выводить конкретный год целиком.
- Красивые рамки: Опциональная отрисовка аккуратных псевдографических границ вокруг месяцев.
- Подсчет недель: Отображает общее количество недель в году по стандарту ISO-8601 при выводе за год.
- Интерактивный режим: Плавное листание месяцев или лет с помощью стрелок клавиатуры в реальном времени.
- Интеграция с планами/задачами: Подсвечивает зелёным цветом дни с запланированными делами и выводит список описаний под календарной сеткой.
dcal -v/dcal -h— Показать версию или справку.dcal -i— Интерактивный режим (листание месяцев стрелками, выход на Q или Esc).dcal -w— Отобразить порядковые номера недель года по стандарту ISO-8601 слева от календарной сетки.dcal -d— Режим событий. Выделяет зеленым цветом дни с событиями и отображает описания событий под сеткой за отображаемый период.dcal -l— Быстрый вывод всех существующих в базе напоминаний в хронологическом порядке.dcal -a— Запуск интерактивного Менеджера задач. Открывает внутреннюю консоль управления:[l]показать записи,[a]добавить запись с валидацией дат,[d]удаление по номерам с автообновлением списка,[q]выход.
Файл создаётся автоматически при первом запуске программы по пути: ~/.config/dcal/events.txt.
Вы можете открыть его в любом текстовом редакторе и добавлять задачи в строгом формате:
23.05.2026 - Убраться по дому
25.05.2026 - Важная встреча
Убедитесь, что в системе установлен cargo:
sudo pacman -S rustСклонируйте репозиторий и соберите релизную версию:
git clone https://github.com/1mesles1/dcal
cd dcal
cargo build --release
sudo cp target/release/dcal /usr/local/bin/Вы можете собрать нативный пакет для Arch Linux, используя готовый PKGBUILD:
git clone https://github.com/1mesles1/dcal
cd dcal
makepkg -si


