Calcurse: командный календарь и планировщик
Calcurse — текстовый (curses) календарь и планировщик для терминала. Он управляет событиями, задачами и уведомлениями. Подойдёт системным администраторам и пользователям, которые работают без графического интерфейса. В статье описаны установка, базовые сценарии работы, настройка уведомлений и советы по использованию в продакшене.
Введение
Управление задачами, событиями и встречами — ежедневная рутина большинства специалистов. Многие пользуются графическими приложениями, но часть пользователей работает на серверах или предпочитает командную строку. Для таких случаев есть текстовые утилиты с функционалом, похожим на GUI-Календарь. Calcurse — одна из таких программ.
Кратко: Calcurse — это curses-приложение для календаря и планирования. Оно хранит события и ToDo, умеет импорт/экспорт в iCalendar, поддерживает UTF-8 и настраиваемые уведомления.
Что такое Calcurse
Calcurse — текстовый календарь и планировщик событий с интерфейсом на основе библиотеки curses. Приложение помогает следить за встречами, дедлайнами и личными задачами. Основные возможности:
- Полный интерфейс командной строки для автоматизации и скриптов.
- Гибкая система уведомлений (любые команды, отправка почты и т. п.).
- Импорт/экспорт в iCalendar и pcal.
- Привязка заметок к элементам календаря и редактирование их через ваш редактор.
- Интернационализация: набор переводов интерфейса (английский, французский, немецкий, нидерландский, испанский, итальянский).
- Полная встроенная справка (man page).
- Поддержка UTF-8.
Важно: интерфейс текстовый — нет мыши и привычных GUI-виджетов, зато высокая скорость работы в терминале.
Установка
На Debian/Ubuntu-подобных системах установка простая:
sudo apt-get install calcurseАльтернативно можно скачать исходники с официального сайта и собрать вручную, если требуется специфическая конфигурация.
Запуск программы:
calcurseПримечание: в исходной статье примеры тестировали на Calcurse 3.1.4 под Ubuntu 14.04. Это полезная отправная точка, но в современных дистрибутивах версия может быть новее.
Интерфейс
Интерфейс делится на три области: Appointments (встречи), Calendar (календарь) и ToDo (задачи). Внизу экрана выводится список доступных команд для текущего контекста.

Пояснение: используйте клавиши навигации и сочетания, чтобы переключаться между областями и выполнять действия.
Как добавить встречу
Пошагово:
- Запустите calcurse.
- Нажмите Enter, чтобы показать основные опции (Help, Save, Quit и т. п.).
- Нажмите “o” для дополнительных команд.
- Выберите “Add Appt” или нажмите Ctrl+A.

После этого Calcurse последовательно спросит время начала, время окончания и описание встречи.
Запрос времени начала:

Запрос времени окончания:

Запрос описания:

После сохранения событие появится в области Appointments:

Как добавить задачу ToDo
- Нажмите Tab для перехода в секцию ToDo.
- Внизу появится набор команд, специфичных для задач.
- Нажмите “a”, чтобы добавить новую задачу.

Программа спросит название задачи и приоритет:


Готово — задача добавлена:

Настройка уведомлений
Calcurse имеет мощную систему уведомлений. Вы можете выполнять любую команду при срабатывании уведомления: отправлять почту, показывать уведомление в десктопе (через notify-send при наличии X) или запускать кастомные скрипты.
Порядок настройки:
- Перейдите в секцию Calendar (Tab).
- Нажимайте “o” пока не появится опция Config.

- Нажмите “C” для входа в меню конфигурации.

- Нажмите “N” для настройки уведомлений.

В списке параметров выберите нужный по номеру. Например, параметр номер 5 — notification.command — задаёт команду, которую Calcurse выполнит при срабатывании уведомления.

Пример: заменить команду на вызов отправки письма или локального уведомления. Я использовал команду, которая посылает e-mail с текстом уведомления. Вы можете указать любую подходящую для вас команду.

Совет: тестируйте команду вручную в терминале перед установкой её как notification.command.
Практические советы и приёмы
- Бэкап данных: файлы конфигурации и хранилище Calcurse обычно лежат в ~/.calcurse. Копируйте их перед изменениями.
- Редактор заметок: Calcurse использует переменную окружения EDITOR. Установите prefered editor (vim, nano, code — если доступен).
- Автоматизация: используйте calcurse -a/-e и другие CLI-флаги в скриптах для импорта/экспорта и массовых изменений.
- Импорт/экспорт: используйте iCalendar для синхронизации с другими календарями.
Ключевые сочетания (минимальный шпаргалка):
- Enter — показать опции.
- o — дополнительные команды.
- Ctrl+A — добавить встречу (в контексте Appointments).
- Tab — переключение между секциями.
- a — добавить ToDo (в секции ToDo).
- C — войти в конфиг.
- N — настройки уведомлений.
Ограничения и когда Calcurse не подойдёт
Calcurse отлично работает в терминале, но он не универсален. Сценарии, где лучше выбрать другое решение:
- Нужна плотная синхронизация с облачными календарями (Google Calendar) «из коробки». Calcurse требует промежуточных инструментов для синхронизации.
- Требуются визуальные представления, связанные с пространственными данными или сложными напоминаниями с GUI-уведомлениями без дополнительных компонентов.
- Многопользовательские корпоративные календари с общей базой и правами доступа — лучше использовать серверные решения (CalDAV / Exchange).
Альтернативы
Если Calcurse вам не подходит, рассмотрите:
- Taskwarrior — мощный CLI-менеджер задач с богатой логикой приоритетов и зависимостей.
- khal / vdirsyncer — для синхронизации iCalendar и работы в терминале; хорошо для интеграции с CalDAV.
- Mutt + remind + notmuch — гибкие наборы для почты и напоминаний в терминале.
- Графические календарные приложения (GNOME Calendar, Thunderbird/Lightning, Google Calendar) — если нужен GUI и облачная синхронизация.
Ментальные модели и сценарии использования
- «Серверный пользователь»: вы работаете на машине без GUI. Calcurse — быстрый инструмент для личных задач и напоминаний.
- «Автоматизатор»: Calcurse внедряют в цепочки скриптов, он генерирует события и уведомления для cron-джобов.
- «Минималист»: предпочитаете текст и клавиатуру — Calcurse даёт минимальную, но полную функциональность.
Выбор зависит от двух факторов: нужен ли вам GUI/облачная синхронизация и насколько важна автоматизация через shell.
Мини‑чек‑лист для внедрения в рабочий процесс (роль‑ориентированный)
Для системного администратора:
- Установить calcurse и проверить версию.
- Подготовить бэкап ~/.calcurse.
- Настроить notification.command на отправку почты или вызов скрипта.
- Прописать в crontab регулярный экспорт (если нужно резервирование).
Для пользователя, работающего локально:
- Настроить EDITOR для заметок.
- Импортировать старые события через iCalendar.
- Прописать горячие клавиши и изучить базовые сочетания.
Для команды, желающей интегрировать с внешними календарями:
- Использовать vdirsyncer/khal для синхронизации CalDAV.
- Тестировать конфликтные сценарии при массовых изменениях.
Чек‑лист приёма (Критерии приёмки)
- События создаются и отображаются корректно в Appointments.
- ToDo создаются, приоритеты сохраняются и отражаются.
- Уведомления запускают заданную команду и доставляют информацию (например, e‑mail или локальное уведомление).
- Импорт/экспорт iCalendar работает без ошибок для базовых событий.
- Настройки сохраняются между сессиями (проверить перезапуск).
Шпаргалка команд и шаблонов
Примеры запуска и автоматизации:
- Запустить Calcurse в терминале:
calcurse- Экспорт событий в iCal:
calcurse --export > mycalendar.ics- Импорт iCal:
calcurse --import mycalendar.ics- Пример команды уведомления (запустить пользовательский скрипт):
/path/to/notify-script.sh "%s"Где “%s” — место для подставляемого сообщения от Calcurse.
Пример простого скрипта отправки почты (требуется настроенная утилита sendmail/postfix):
#!/bin/sh
SUBJECT="Напоминание Calcurse"
TO="you@example.com"
BODY="$1"
echo "$BODY" | mail -s "$SUBJECT" "$TO"Тестируйте скрипт вручную, прежде чем указывать его в notification.command.
Факто‑бокс
- Интерфейс: текстовый (curses).
- Поддержка форматов: iCalendar, pcal.
- Локализации: несколько языков, UTF-8.
- Автоматизация: полная CLI‑поддержка.
- Тестовая конфигурация в статье: Calcurse 3.1.4 на Ubuntu 14.04.
Когда Calcurse не сработает: примеры
- Нужен двунаправленный live‑sync с Google Calendar и мобильными напоминаниями — потребуются дополнительные мосты и сервисы.
- Требуются права и роли в общем календаре организации — Calcurse сам по себе не предоставляет централизованного сервера с правами.
- Требуется интуитивно понятный GUI для менее технических пользователей.
Быстрый порядок действий для начала работы (мини‑методика)
- Установите calcurse через пакетный менеджер.
- Настройте EDITOR и notification.command.
- Добавьте пару тестовых событий и задач.
- Проверьте уведомления вручную.
- Настройте автоматический экспорт/бэкап (crontab).
Заключение
Calcurse требует небольшого обучения, но быстро окупает это удобством в терминальной работе. Он лёгок, настраиваем и прекрасно подходит для тех, кто автоматизирует рабочие процессы через shell и скрипты. Если ваши потребности ограничены личными планами и напоминаниями в терминале — Calcurse стоит попробовать.
Важно
Если вы планируете интеграцию с облачными сервисами или совместную работу в команде, протестируйте поток синхронизации заранее.
Спасибо за чтение. Использовали ли вы Calcurse или другой инструмент в терминале? Поделитесь опытом в комментариях.
Дополнительно: диаграмма выбора (Mermaid)
flowchart TD
A[Нужен календарь?] --> B{Требуется GUI}
B -- Да --> C[Используйте графический календарь]
B -- Нет --> D{Нужно облачное sync}
D -- Да --> E[Рассмотрите khal + vdirsyncer]
D -- Нет --> F[Calcurse]
C --> G[Google Calendar / Thunderbird]
E --> G
F --> H[Хорошо для серверов и автоматизации]Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента