# Підручник з &konsolekalendar;

## Вступ

&konsolekalendar; — це інтерфейс командного рядка для календарів. За його допомогою ви можете переглядати, вставляти, вилучати та змінювати записи подій календаря за допомогою командного рядка або мови для написання скриптів. Крім того, за допомогою &konsolekalendar; можна створити новий календар, експортувати календар до різноманітних інших форматів та імпортувати інший календар.

У базовому режимі роботи програми &konsolekalendar; показує список записів подій у вашому типовому календарі для поточної дати (з 7:00 до 17:00).

Основні можливості &konsolekalendar;:

- Перегляд записів календаря з початкової дати/часу до кінцевої дати/часу

- Вставка (додавання) записів календаря

- Вилучення записів календаря

- Зміна записів календаря

- Створення нового календаря

- Експорт записів календаря до файлів інших форматів

- Імпорт наявного календаря

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

У &konsolekalendar; немає повноцінної мови для виконання запитів до календаря користувача: метою авторів не було створення подібної можливості. Програма надає у ваше розпорядження базові параметри командного рядка для доступу до записів подій календаря, які належать до послідовного діапазону дат/часу.

## Можливості

З цієї глави ви дізнаєтеся про основні можливості &konsolekalendar; та про те, як керувати цими можливостями за допомогою параметрів командного рядка (слід пам’ятати, що у &konsolekalendar; немає графічного інтерфейсу користувача, програму призначено лише для роботи у командному рядку).

Ви дізнаєтеся про те, як вставляти, вилучати і змінювати записи подій календаря, а також про те, як експортувати записи подій до файлів у інших форматах. У цій главі також обговорюватимуться питання щодо створення та імпортування календарів.

### Перегляд записів подій

У типовому режимі або у режимі з використанням параметра `--view` &konsolekalendar; покаже вам список подій у певному діапазоні дат/часу.

Щоб переглянути сьогоднішні події (з 7:00 до 17:00), достатньо виконати команду:

    % konsolekalendar

У наступному прикладі ми переглянемо записи про події протягом тижня з 18 серпня до 22 серпня:

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

Показ наступного запису (записів) про події від поточного часу уперед:

    % konsolekalendar --next

Щоб переглянути всі записи про події протягом наступних 5 днів, виконайте команду:

    % konsolekalendar --show-next 5

### Вставка записів про події

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

Отримати список усіх календарів разом із їхніми ідентифікаторами:

    % konsolekalendar --list-calendars

У наступному прикладі до ресурсу календаря користувача із ідентифікатором 8 буде додано запис про подію, яка починається 2016-12-01 (1 грудня 2016 року) о 10:00 і завершується о 12:00, з резюме «Відвідання лікаря»:

    % konsolekalendar --add --calendar 8 --date 2016-12-03 --time 10:00 \
    --end-time 12:00 --summary "Відвідання лікаря"

У цьому прикладі до ресурсу календаря користувача із ідентифікатором 8 буде додано запис про день народження:

    % konsolekalendar --add --calendar 8 --date 2016-12-06 --summary "Мій день народження" \
    --description "Час для вечірки"

Приклад вставлення одного тижня відпустки до календаря із ідентифікатором 8:

    % konsolekalendar --add --calendar 12 --date 2017-08-01 \
    --end-date 2017-08-07 --summary "Відпустка" --description "І ніхто мене не знайде!"

### Вилучення записів

За допомогою &konsolekalendar; ви можете вилучати записи з файла календаря за допомогою аргументу параметра командного рядка `--delete`. Вказати записи календаря, які слід вилучити, можна за допомогою їх унікального рядкового ідентифікатора (UID), вказаного як аргумент параметра `--uid`. UID можна визначити з відомостей, отриманих під час перегляду події за допомогою параметрів `--view`, `--next` та `--show-next`.

Успішно вилучені записи про події негайно зникнуть з відомостей програм для роботи з календарями &kde; (наприклад, &korganizer;).

Після вилучення інформації з календаря її неможливо відновити! Іншими словами, якщо ви вилучили запис, ви не зможете скасувати вилучення. Запис уже не повернеш.

У наступному прикладі ми вилучимо запис з UID `&konsolekalendar;-1887551750.196`:

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

### Зміна записів

&konsolekalendar; підтримує зміну існуючих записів у файлі календаря або ресурсі, за допомогою аргументу параметра командного рядка `--change`. Записи календаря, які потрібно змінити, вказуються за допомогою їх унікального рядкового ідентифікатора (UID), вказаного як аргумент параметра `--uid`. UID можна визначити з відомостей, отриманих під час перегляду події за допомогою параметрів `--view`, `--next` та `--show-next`.

Зміна запису подібна до вставки: ви можете змінити дату і час початку події, її дату і час завершення, резюме, місце і опис. Успішно змінені записи про події негайно буде змінено у відомостях програм для роботи з календарями &kde; (наприклад, &korganizer;).

Приклад: щоб змінити резюме та опис запису календаря з UID `&konsolekalendar;-1887551750.196`, слід виконати команду:

`%```konsolekalendar` `--change` `--uid `&konsolekalendar;-1887551750.196`` `--summary `"Перевіряли чи не хворий на голову"`` `--description `"більше не піду до цього лікаря!"```

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

&konsolekalendar; можна скористатися для створення календарів на основі наявних файлів. Ви можете створити календар за допомогою параметра `--create` із аргументом, назвою файла. Файл має бути коректним файлом у форматі iCal або vCal.

Зауваження: ви не зможете скористатися параметром `--dry-run` для тестування того, чи може бути створено ресурс.

Зауваження: &konsolekalendar; потрібен файл для роботи, отже ніколи не вилучайте файл вручну.

Технічне зауваження: &konsolekalendar; за допомогою цієї команди створює ресурс Akonadi, що вказує на файл. Програма не запобігає створенню декількох ресурсів, що посилаються на один і той самий файл.

Створення календаря на основі наявного файла із назвою ``vacation.ics``:

    % konsolekalendar --create vacation.ics

Ресурс буде названо vacation з використанням `--list-calendars`

За допомогою &konsolekalendar; не можна вилучати ресурси Akonadi. Для цього вам доведеться скористатися &korganizer; або akonadiconsole.

### Експорт до інших форматів

&konsolekalendar; може експортувати календар до інших добре відомих форматів. Експорт є особливою формою перегляду. Типово, записи про події буде показано у форматі тексту &konsolekalendar;. Щоб змінити формат перегляду, скористайтеся аргументом параметра командного рядка `--export-type`.

Щоб переглянути список всіх форматів експорту, які підтримуються програмою, скористайтесь параметром `--export-list`, у вигляді команди:

    % konsolekalendar --export-list

### Формати експорту

У цьому розділі описано деякі (але не обов’язково всі) з підтримуваних форматів.

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

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

Текстовий формат запису &konsolekalendar; виглядає так:

    Дата:\t<Дата події>(дддд рррр-ММ-дд)
    [\t<Час початку події>(гг:хх) - <Час завершення події>(гг:хх)]
    Короткий підсумок:
    \t<Резюме події | "(резюме не вказано)">
    Місце події:
    \t<Місце події | "(місця не вказано)">
    Опис:
    \t<Опис події | "(опису події не вказано)">
    UID:
    \t<UID події>
    --------------------------------------------------

Output of ``konsolekalendar` `--next` `--export-type` `Text``:

    Дата:   Вівторок 2016-11-29
            08:00 - 09:00
    Короткий підсумок:
            Робоча нарада
    Місце проведення:
            Конференц-зал
    Опис:
            Зустріч з персоналом для обговорення проєкту.
    UID:
            &konsolekalendar;-1924621834.134
    --------------------------------------------------

#### Скорочений текстовий формат &konsolekalendar;

Скорочений текстовий формат — це компактніша згорнутіша версія рідного формату &konsolekalendar;.

Скорочений текстовий формат &konsolekalendar; виглядає так:

    [--------------------------------------------------]
    {<Дата події>(дддд рррр-ММ-дд)]
    [<Час початку події>(гг:хх) - <Час завершення події>(гг:хх) | "\t"]
    \t<Резюме події | \t>[, <Місце події>]
    \t\t<Опис події | "\t">

Output of ``konsolekalendar` `--next` `--export-type` `Short``:

    --------------------------------------------------
    Вівторок 2016-11-29
    08:00 - 09:00   Робоча нарада, Конференц-зал
                    Зустріч з персоналом для обговорення проєкту.

#### Формат значень, відокремлених комами (CSV)

У форматі значень, відокремлиних комами, значення запису події буде показано у тому ж порядку, що і у текстовому форматі &konsolekalendar;. Єдиною різницею є те, що всі відомості окремого запису буде подано у одного рядка зі значеннями, відокремленими комами. Отримані в результаті такого експорту файли, можна напряму імпортувати до програм електронних таблиць, зокрема &calligrasheets;, OpenOffice.org Calc і &Microsoft; Excel. Крім того, формат CSV є простим для наступної обробки скриптами.

Формат значень, відокремлених комами (CSV):

    "День тижня, День місяця, Рік","ГГ:ХХ","День тижня, День місяця, Рік","ГГ:ХХ","Резюме","Місце","Опис","UID"

Виведення команди ``konsolekalendar` `--next` `--export-type` `CSV``:

    "Вівторок, 29 листопада, 2016","08:00","Вівторок, 29 листопада, 2016","09:00","Робоча нарада","Конференц-зала","Нарада у великій конференц- \
    залі із усім персоналом.","&konsolekalendar;-1924621834.134"

### Імпорт календарів

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

Щоб імпортувати файл календаря `vacation.ics` до календаря із ідентифікатором `8` віддайте таку команду:

    % konsolekalendar --import vacation.ics --calendar 8

## Параметри командного рядка

&konsolekalendar; підтримує такі параметри:

Параметр | Опис
Загальні параметри:
`--help, --help-all` | Показує довідку з параметрів програми.
`--author` | Показує відомості про авторів програми.
`-v, --version` | Показує відомості щодо версії програми.
`--license` | Показує інформацію про ліцензування програми.
Параметри:
`--verbose` | Виводить корисні повідомлення під час виконання програми.
`--dry-run` | Виводить інформацію про те, що має бути зроблено, але при цьому програма не виконує жодних дій. Жодного файла не буде змінено, не буде виконано вставки, зміни вилучення будь-якого з існуючих файлів, а також не буде створено жодного нового файла.
`--allow-gui` | Дозволити ресурси, яким для роботи може знадобитися інтерактивний інтерфейс користувача. За звичайних операцій буде використано лише ресурси, яким ніколи не потрібно буде втручання користувача (наприклад, календарі у файлах).
Типи подій (ці параметри можуть бути поєднані):
`--event` | Тільки для подій (типовий).
`--todo` | Працювати лише із записами завдань. (Ще не реалізовано)
`--journal` | Працювати лише із записами журналів. (Ще не реалізовано)
Головні режими роботи:
`--view` | Вивести події календаря у вказаному експортному форматі.
`--add` | Додає подію до календаря.
`--change` | Змінює існуючу подію з календаря.
`--delete` | Вилучає існуючу подію з календаря.
`--create` `назва_файла` | Створити календар з наявного файла.
`--import` `імпортований-файл` | Імпортувати вказаний календар до основного календаря.
`--list-calendars` | Показати список доступних календарів.
Модифікатори дій:
`--all` | Переглянути всі записи календаря.
`--next` | Переглянути наступну подію з календаря.
`--show-next` `кількість_днів` | Показати записи про події протягом вказаної кількості днів від поточного дня.
`--uid` `UID` | Переглянути, вилучити або змінити запис про подію з цим унікальним рядковим ідентифікатором (UID).
`--date` `дата` | Почати з вказаного дня [РРРР-ММ-ДД]. Типовою датою є поточний день
`--time` `час` | Почати з вказаного часу [ГГ:ХХ]. Типовим часом перегляду є 07:00. Щоб додати або змінити рухомий запис про подію, скористайтеся параметрами `--time float` та `--end-time float`.
`--end-date` `дата-завершення` | Завершити у цей день [РРРР-ММ-ДД]. Типове значення, встановлюється параметром `--date`.
`--end-time` `час-завершення` | Завершити у цей час [ГГ:ХХ]. Типовим часом завершення перегляду є 17:00. Щоб додати або змінити рухомий запис про подію, скористайтеся параметрами `--time float` та `--end-time float`.
`--epoch-start` `час-епохи` | Почати з вказаного часу [у секундах епохи].
`--epoch-end` `час-епохи` | Завершити у цей час [у секундах епохи].
`--summary` `резюме` | Додати резюме події (працює з add і change).
`--description` `опис` | Додати опис події (працює з add і change).
`--location` `місце` | Додати місце події (працює з add і change).
`--calendar` `ідентифікатор` | Вказує, який календар слід використовувати. Якщо не вказано іншого, буде використано ваш типовий ресурс &korganizer;.
Параметри експорту:
`--export-type` `тип-експорту` | Експортувати до файла вказаного типу. Типовим типом файлів для експорту є «Text»
`--export-file` `файл-експорту` | Експортувати до файла. Типово, виведену інформацію буде записано до стандартного виводу інформації.
`--export-list` | Вивести список типів для експорту і завершити роботу програми.

## Запитання і відповіді

Які файли налаштувань використовує &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 подій, скористайтеся типом експорту short (`--export-type short`).

Як додати своє питання до цих ЧаП?

Надсилайте ваші запитання за адресою електронної пошти 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

Переклад українською: Юрій Чорноіван yurchor@ukr.net

&underFDL; &underGPL;
&documentation.index;