# Руководство &konsolekalendar;

## Введение

&konsolekalendar; — это интерфейс командной строки для работы с календарями &kde;. Он позволяет просматривать, создавать, удалять и изменять записи в календаре из командной строки или с помощью языка сценариев. Также &konsolekalendar; может экспортировать календарь &kde; в различные форматы и импортировать его.

В режиме работы по умолчанию &konsolekalendar; выводит список событий текущего дня (с 7:00 до 17:00)

Возможности &konsolekalendar;

- Показ записей календаря, начиная с указанной даты/времени и заканчивая указанной датой/временем

- Добавление записей в календарь

- Удаление записей

- Изменение записей

- Создание календаря

- Экспорт записей календаря в другие форматы

- Импорт существующего календаря &kde;

&konsolekalendar; это не очередной графический интерфейс для календаря &kde; (как, например, &korganizer;). &konsolekalendar; предназначен для тех случаев, когда графический интерфейс недоступен или нежелателен.

&konsolekalendar; не предоставляет полноценный язык для создания запросов к календарю, впрочем, это и не являлось целью авторов. Предоставляются лишь простейшие опции для доступа к календарю из командной строки в пределах заданных времени и даты.

## Дополнительные возможности

В этой главе вы узнаете о полезных функциях &konsolekalendar;, об опциях командной строки (помните, что &konsolekalendar; — это не графический интерфейс, а программа командной строки).

Вы также узнаете о добавлении, удалении и редактировании событий в календаре, а также о преобразовании их в другие форматы. Создание и импорт календарей &kde; также описан в этом разделе.

### Просмотр записей

В режиме работы по умолчанию, или при использовании ключа `--view` &konsolekalendar; выведет на экран все записи, соответствующие указанным времени и дате.

Для просмотра событий текущего дня (с 7:00 до 17:00), просто выполните:

    % konsolekalendar

В следующем примере мы увидим, все записи, для недели с 18 по 22 августа:

    % konsolekalendar --view --date 2003-08-18  --end-date 2003-08-22

Показать будущие события календаря:

    % konsolekalendar --next

Для просмотра событий следующих 5 дней выполните:

    % konsolekalendar --show-next 5

### Добавление событий

&konsolekalendar; может вносить новые события в календарь &kde; или ресурс календаря с помощью опции командной строки `--add`. Успешно добавленные события немедленно появляются в приложениях календаря &kde; (&korganizer;).

В следующем примере событие, начинающееся 2003-06-04 (4 июня 2003) в 10 часов и заканчивающееся в 12, с названием "Посещение врача" вставляется в календарь пользователя по умолчанию:

    % konsolekalendar --add --date 2003-06-04 --time 10:00 \
    --end-time 12:00 --summary "Посещение врача"

В этом примере мы добавим день рождения в ресурс календаря пользователя по умолчанию:

    % konsolekalendar --add --date 2003-06-06 --summary "Мой день рождения" \
    --description "Время праздника"

В этом примере в календарь пользователя вносится `выходной`:

    % konsolekalendar --add --file vacation.ics --date 2003-08-01 \
    --end-date 2003-08-07 --summary "Выходной" --description "Ни кто меня не нейдёт!"

### Удаление записей

&konsolekalendar; поддерживает удаление элементов из файла календаря или ресурса с помощью опции командной строки `--delete`. Элементы календаря для удаления указываются по их уникальному строковому идентификатору (UID) с помощью опции `--uid`. UID может быть найден при просмотре события с помощью опции `--view`.

События немедленно удаляются из приложений календаря &kde; (&korganizer;).

После того как вы удаляете что-либо из календаря, вы не сможете вернуть это! Другими словами, когда вы удаляете запись, вы не сможете восстановить её. Она удаляется навсегда.

Здесь мы удаляем элемент календаря с UID `&konsolekalendar;-1887551750.196`:

    % konsolekalendar --delete --uid &konsolekalendar;-1887551750.196

### Изменение записей

&konsolekalendar; поддерживает изменения существующих элементов в файле календаря или его ресурсе с помощью опции командной строки `--change`. Элементы календаря для изменения указываются их уникальным строковым идентификатором (UID) с помощью опции `--uid`. UID может быть найден при просмотре события с помощью опции `--view`.

Замена ведёт себя так же как и вставка: вы можете изменить дату и время начала события, дату и время окончания, название и описание. Изменённые события немедленно становятся доступными в приложениях календаря &kde; (&korganizer;).

Пример: Здесь мы изменяем название и описание элемента календаря с UID `&konsolekalendar;-1887551750.196`:

`%```konsolekalendar` `--change` `--uid `&konsolekalendar;-1887551750.196`` `--summary `"Проверить мою голову"`` `--description `"никогда не ходите к такому доктору!"```

### Создание нового файла календаря

&konsolekalendar; может использоваться для создания нового файла календаря &kde;. Поскольку вы не можете добавлять элементы в несуществующий календарь, вы сначала должны создать его с помощью опций командной строки `--create` и `--file`.

Создать файл календаря с именем ``/data/share/calendars/vacation.ics``:

    % konsolekalendar --create --file /data/share/calendars/vacation.ics

### Экспорт в другие форматы

&konsolekalendar; может экспортировать календарь &kde; в широко распространённые форматы. Экспорт является специальной формой просмотра. По умолчанию, события показываются в формате текста &konsolekalendar;. Для изменения формата просмотра используйте опцию командной строки`--export-type`.

Чтобы увидеть список всех поддерживаемых форматов экспорта, используйте опцию `--export-list`

    % konsolekalendar --export-list

### Форматы экспорта

Некоторые (но не все) поддерживаемые форматы экспорта описаны в этом разделе.

#### Формат текста &konsolekalendar;

Формат текста &konsolekalendar; является родным форматом &konsolekalendar;. Он разработан для удобной обработки в сценариях.

Текстовый формат &konsolekalendar; это:

    Date:\t<Дата>(dddd yyyy-MM-dd)
    [\t<Время начала>(hh:mm) - <Время окончания>(hh:mm)]
    Summary:
    \t<Название | "(без названия)">
    Location:
    \t<Место  | "(нет места)">
    Description:
    \t<Описание| "(нет описания)">
    UID:
    \t<UID>
    --------------------------------------------------

Например:

    Date:   Tuesday 2003-11-01
            08:00 - 09:00
    Summary:
            Общая встреча
    Location:
            Конференц зал
    Description:
            Встреча со всеми участниками проекта для его обсуждения.
    UID:
            &konsolekalendar;-1128954167.1013
    --------------------------------------------------

#### Краткий текстовый формат &konsolekalendar;

Краткий текстовый формат более компактен чем формат &konsolekalendar; по умолчанию.

Короткий текстовый формат &konsolekalendar; это:

    [--------------------------------------------------]
    {<Дата>(dddd yyyy-MM-dd)]
    [<Время начала>(hh:mm) - <Время окончания>(hh:mm) | "\t"]
    \t<Краткое описание | \t>[, <Место>]
    \t\t<Описание | "\t">

Например:

    --------------------------------------------------
    Tuesday 2003-11-01
    08:00 - 09:00   Общая встреча, Конференц зал
                    Встреча со всеми участниками проекта для его обсуждения.

#### Формат значений, разделённых запятыми (CSV)

Формат значений, разделённых запятыми, показывает значения событий в том же порядке, что формат текста &konsolekalendar;. Единственное отличие состоит в том, что вся информация помещается в одну строку в виде полей, которые разделены запятыми. Экспортированные файлы могут быть импортированы непосредственно в программы электронных таблиц типа &kspread;, OpenOffice.org Calc и &Microsoft; Excel. Формат CSV также прост для обработки в сценариях.

Формат значений, разделённых запятыми (CSV) это:

    YYYY-MM-DD,HH:MM,YYYY-MM-DD,HH:MM,Summary,Location,Description,UID

Например:

    2003-11-01,08:00,2003-11-01,09:00,Общая встреча,Встреча со всеми \
    участниками проекта &konsolekalendar; в конференц зале.,-1128954167.1013

#### Формат &HTML;

Формат экспорта HTML создаёт корректный файл HTML, который может быть опубликован в WWW. Этот формат экспорта не подходит для последующего синтаксического анализа в сценариях, но очень удобен для публикации календарей и лёгкого их просмотра.

TODO: Вставить сюда снимок экрана

#### Формат HTMLmonth

Этот формат создаёт файл HTML, в котором содержатся все собрания по месяцам в заданном диапазоне дат. Этот формат экспорта не подходит для последующего синтаксического анализа в сценариях, но очень удобен для публикации календарей и лёгкого их просмотра.

TODO: Вставить сюда снимок экрана

### Импорт календарей

&konsolekalendar; может импортировать в календарь &kde; файлы форматов iCal и vCal. Все события импортируемого календаря будут вставлены, включая идентичные события. В следующей версии &konsolekalendar; идентичные события вставляться не будут.

Для импорта файла календаря``another.ics`` в календарь``current.ics`` выполните:

    % konsolekalendar --import another.ics --file current.ics

## Опции командной строки

&konsolekalendar; поддерживает следующие опции командной строки:

Опция | Описание
`--help, --help-all` | Показать справку о опциях программы.
`--author` | Показать информацию об авторе программы.
`-v, --version` | Показать информацию о версии программы.
`--license` | Показать информацию о лицензии.
`--verbose` | Показать подробные отладочные сообщения.
`--dry-run` | Показывает, что могло бы быть сделано, не изменяя записи, не добавляя и не удаляя их из календаря. Не изменяются и не создаются новые файлы.
`--allow-gui` | Разрешить использование ресурсов, использующих интерактивный интерфейс пользователя. Обычно используются только ресурсы, которые никогда не требуют участия пользователя (например, календари, хранящиеся в файлах).
`--file` `calendar-file` | Указывает файл календаря, который будет использоваться. Если не указан, будет использоваться ваш ресурс &korganizer; по умолчанию.
Некоторые режимы операций:
`--view` | Вывести события календаря в указанном формате.
`--add` | Добавить событие в календарь.
`--change` | Изменить в календаре существующее событие.
`--delete` | Удалить из календаря существующее событие.
`--create` | Создать новый файл календаря, если он не существует.
`--import` `import-file` | Импорт указанного календаря в основной календарь.
Модификаторы операций
`--all` | Показать все записи календаря.
`--next` | Показать следующее событие календаря.
`--show-next` `days` | Показать следующее количество дней начиная с указанного.
`--uid` `UID` | Показать, удалить или изменить событие с указанным идентификатором.
`--date` `date` | Начать с указанного дня (ГГГГ-ММ-ДД). По умолчанию - сегодня.
`--time` `time` | Начать с этого времени (ЧЧ:ММ). По умолчанию 7:00. Для создания или изменения неточного события, используйте опции `--time float` или `--end-time float`.
`--end-date` `end-date` | Закончить указанной датой (ГГГГ-ММ-ДД). По умолчанию устанавливается `--date`.
`--end-time` `end-time` | Закончить указанным временем(ЧЧ:ММ). По умолчанию - 17:00 Для создания или изменения неточного события, используйте опции `--time float` или `--end-time float`.
`--epoch-start` `epoch-time` | Начать с указанного времени [секунды с начала эпохи].
`--epoch-end` `epoch-time` | Закончить на указанном времени [секунды с начала эпохи].
`--summary` `summary` | Добавить название к событию (работает с add и change).
`--description` `description` | Добавить описание к событию (работает с add и change).
`--location` `место` | Добавить место события (работает с add и change).
Опции экспорта:
`--export-type` `export-type` | Тип файла для экспорта. По умолчанию тип "Текст".
`--export-file` `export-file` | Экспорт в файл. По умолчанию осуществляется на стандартный вывод.
`--export-list` | Вывести доступные форматы для экспортирования.

## Вопросы и ответы

&reporting.bugs; &updating.documentation;

Какие файлы настроек использует &konsolekalendar;?

Никаких.

Какие имена у приложения &konsolekalendar;?

Название приложения &konsolekalendar; - это konsolekalendar.

Какова спецификация формата даты?

&konsolekalendar; отклоняет даты, указанные в командной строке, если они даны не в соответствии со стандартом ISO 8601 (а именно ГГГГ-ММ-ДД). ГГГГ — четырёхразрядный год (типа 2003), ММ — двухразрядный месяц (01,02,..,12), и ДД — двухразрядный день (01,02,...,31).

&konsolekalendar; всегда экспортирует даты в соответствии с форматом ISO 8601.

Какова спецификация формата времени?

&konsolekalendar; отклоняет время, указанное в командной строке, если оно дано не в соответствии со стандартом ISO 8601 (а именно ЧЧ:ММ:СС). ЧЧ — двухразрядный час (01,02,...,24), ММ — двухразрядные минуты (01,02,..,60), и СС — двухразрядные секунды (01,02,...,60).

&konsolekalendar; всегда экспортирует время в соответствии с форматом ISO 8601.

Будет ли &konsolekalendar; вставлять новое событие, идентичное существующему в календарю?

Нет. Смотрите следующий вопрос.

Как &konsolekalendar; определяет идентичность события с хранящимся в календаре?

&konsolekalendar; проверяет дату и время начала и окончания, и название всех событий в календаре. Соответствие происходит тогда, когда все три значения совпадают с соответствующими значениями существующего события.

Как точные события изменить на не точные?

Да. Используйте параметр `--time float` совместно с`--change`.

Почему UID событий выводятся в большинстве форматов экспорта?

Поскольку для удаления и изменения событий вы должны указать их UID. Если вы не хотите видеть UID события, используйте краткий формат экспорта (`--export-type short`).

Как я могу добавить вопрос в этот FAQ?

Пошлите его по адресу winter@kde.org.

## Авторские права и лицензия

&konsolekalendar; Авторские права на программу 2002-2007:

- Tuukka Pasanen illuusio@mailcity.com

- Allen Winter winter@kde.org

Авторские права на документацию 2003:

- Allen Winter winter@kde.org

- Tuukka Pasanen illuusio@mailcity.com

Перевод на русский язык: Олег Баталовolegbatalov@mail.ru

&underFDL; &underGPL;

## Установка

### Как получить &konsolekalendar;

&install.intro.documentation;

&konsolekalendar; поставляется с &kde;4 и недоступен отдельно.

### Системные требования

Для &konsolekalendar; необходимы установленные стандартные библиотеки &kde; (пакеты `kdelibs` и `kdepimlibs`). Для компиляции из исходных текстов необходимы пакеты для разработчиков &Qt; и `kdelibs` и `kdepimlibs`.

Вы можете найти список изменений в файле `ChangeLog`.

### Настройка

Никакой настройки &konsolekalendar; не требуется.

&documentation.index;