{"id":50731824,"url":"https://github.com/1mesles1/dcal","last_synced_at":"2026-06-10T09:30:40.699Z","repository":{"id":359474690,"uuid":"1246232698","full_name":"1mesles1/dcal","owner":"1mesles1","description":"CLI calendar utility written in Rust","archived":false,"fork":false,"pushed_at":"2026-06-08T02:57:40.000Z","size":140,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T04:24:13.758Z","etag":null,"topics":["cal","calendar","cli","linux","rust","todo","tui"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/1mesles1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-22T02:12:23.000Z","updated_at":"2026-06-08T02:57:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/1mesles1/dcal","commit_stats":null,"previous_names":["1mesles1/dcal"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/1mesles1/dcal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1mesles1%2Fdcal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1mesles1%2Fdcal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1mesles1%2Fdcal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1mesles1%2Fdcal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1mesles1","download_url":"https://codeload.github.com/1mesles1/dcal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1mesles1%2Fdcal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34146870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cal","calendar","cli","linux","rust","todo","tui"],"created_at":"2026-06-10T09:30:39.937Z","updated_at":"2026-06-10T09:30:40.681Z","avatar_url":"https://github.com/1mesles1.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dcal (v0.8.0)\n\nA 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.\n\n## Screenshots\n[\u003cimg src=\"screenshots/01.png\" width=\"400\"\u003e](screenshots/01.png) [\u003cimg src=\"screenshots/04.png\" width=\"400\"\u003e](screenshots/04.png)\n[\u003cimg src=\"screenshots/03.png\" width=\"400\"\u003e](screenshots/03.png) [\u003cimg src=\"screenshots/02.png\" width=\"400\"\u003e](screenshots/02.png)\n\n[Читать на русском языке](#русский)\n\n---\n\n## Features\n* **Zero Dependencies:** Compiles into a single independent binary.\n* **Auto-Localization:** Automatically detects system locale (supports Russian and English; defaults to English).\n* **Flexible Grids:** Displays multiple months horizontally, perfectly aligned.\n* **Custom Months Range:** View from 1 to 12 months ahead or look up any specific year.\n* **Beautiful Borders:** Optional clean box borders around month blocks.\n* **Week Counts:** Displays total ISO-8601 week count for full-year views.\n* **Interactive TUI Mode:** Smoothly navigate through months or years using arrow keys.\n* **Todo/Events Integration:** Automatically highlights dates with events in green and lists descriptions directly below the calendar grid.\n\n## Installation on Arch Linux\n\n### Manual Build\nEnsure you have `cargo` installed:\n```bash\nsudo pacman -S rust\n```\nClone the repository and build the release version:\n```bash\ngit clone https://github.com/1mesles1/dcal\ncd dcal\ncargo build --release\nsudo cp target/release/dcal /usr/local/bin/\n```\n\n### Using PKGBUILD\nYou can build a native Arch package manually using the provided `PKGBUILD`:\n```bash\ngit clone https://github.com/1mesles1/dcal\ncd dcal\nmakepkg -si\n```\n\n## Usage \u0026 Flags\n* `dcal` — Display current month (auto-localized).\n* `dcal -3` — Display 3 months horizontally starting from current.\n* `dcal -c` — Display 3 months with the current month strictly in the center.\n* `dcal -g` — Display the full current year (aligned in a clean 4x3 grid).\n* `dcal -x2021` — Display the specified year fully (e.g., year 2021).\n* `dcal -b` — Draw a clean border around month blocks (can be combined with other flags like `-gb` or `-cb`).\n* `dcal -m` — Start the week on Sunday instead of Monday.\n* `dcal -e` / `dcal -r` — Force English or Russian output regardless of system locale (the leftmost flag takes priority).\n* `dcal -v` / `dcal -h` — Show version or help message.\n* `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!*\n* `dcal -w` — Display ISO-8601 week numbers on the left side of the calendar grid.\n* `dcal -d` — **Events Mode**. Highlights days with events in green and lists descriptions below the grid for the rendered period.\n  * Data file path: `~/.config/dcal/events.txt` (automatically created on first launch).\n  * Format inside the file: `DD.MM.YYYY - event description` (e.g., `23.05.2026 - Clean room`).\n* `dcal -l` — List all existing events from the database chronologically and exit.\n* `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.\n\n---\n\n\u003ca name=\"русский\"\u003e\u003c/a\u003e\n# dcal (Русский)\n\nСовременная, быстрая и полностью независимая консольная утилита-календарь, написанная на Rust. Создана как замена классическим командам `cal`/`ncal` с поддержкой автоматической локализации, выравниванием сеток, интерактивным листанием, красивыми рамками в терминале и интеграцией с файлом планов.\n\n## Особенности\n* **Ноль зависимостей:** Компилируется в один независимый бинарный файл.\n* **Авто-локализация:** Автоматически определяет язык системы (поддерживает русский и английский, по умолчанию английский).\n* **Выравнивание в ширину:** Выводит несколько месяцев горизонтально в ряд с идеальной геометрией.\n* **Гибкие диапазоны:** Позволяет смотреть от 1 до 12 месяцев вперед или выводить конкретный год целиком.\n* **Красивые рамки:** Опциональная отрисовка аккуратных псевдографических границ вокруг месяцев.\n* **Подсчет недель:** Отображает общее количество недель в году по стандарту ISO-8601 при выводе за год.\n* **Интерактивный режим:** Плавное листание месяцев или лет с помощью стрелок клавиатуры в реальном времени.\n* **Интеграция с планами/задачами:** Подсвечивает зелёным цветом дни с запланированными делами и выводит список описаний под календарной сеткой.\n* `dcal -v` / `dcal -h` — Показать версию или справку.\n* `dcal -i` — Интерактивный режим (листание месяцев стрелками, выход на Q или Esc).\n* `dcal -w` — Отобразить порядковые номера недель года по стандарту ISO-8601 слева от календарной сетки.\n* `dcal -d` — **Режим событий**. Выделяет зеленым цветом дни с событиями и отображает описания событий под сеткой за отображаемый период.\n* `dcal -l` — Быстрый вывод всех существующих в базе напоминаний в хронологическом порядке.\n* `dcal -a` — Запуск интерактивного **Менеджера задач**. Открывает внутреннюю консоль управления: `[l]` показать записи, `[a]` добавить запись с валидацией дат, `[d]` удаление по номерам с автообновлением списка, `[q]` выход.\n\n## Работа с файлом задач (`-d`)\nФайл создаётся автоматически при первом запуске программы по пути: `~/.config/dcal/events.txt`.\nВы можете открыть его в любом текстовом редакторе и добавлять задачи в строгом формате:\n```text\n23.05.2026 - Убраться по дому\n25.05.2026 - Важная встреча\n```\n\n## Установка на Arch Linux\n\n### Ручная сборка\nУбедитесь, что в системе установлен `cargo`:\n```bash\nsudo pacman -S rust\n```\nСклонируйте репозиторий и соберите релизную версию:\n```bash\ngit clone https://github.com/1mesles1/dcal\ncd dcal\ncargo build --release\nsudo cp target/release/dcal /usr/local/bin/\n```\n\n### Сборка через PKGBUILD\nВы можете собрать нативный пакет для Arch Linux, используя готовый `PKGBUILD`:\n```bash\ngit clone https://github.com/1mesles1/dcal\ncd dcal\nmakepkg -si\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1mesles1%2Fdcal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1mesles1%2Fdcal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1mesles1%2Fdcal/lists"}