# O Manual do &konsolekalendar;

## Introdução

O &konsolekalendar; é uma interface para a linha de comandos dos calendários do &kde;. Permite ver, inserir, remover ou modificar os eventos do calendário, através da linha de comandos ou de uma linguagem de programação. Para além disso, o &konsolekalendar; poderá criar um novo calendário, exportar um calendário para uma variedade de outros formatos e importar outro calendário.

No seu modo básico, o &konsolekalendar; mostra a lista de eventos no seu calendário por omissão para o dia actual (das 7:00 às 17:00).

Principais características do &konsolekalendar;:

- Ver entradas no calendário desde a data/hora inicial à data/hora final

- Inserir (adicionar) entradas no calendário

- Remover (apagar) entradas do calendário

- Modificar (alterar) entradas no calendário

- Criar um novo calendário

- Exportar entradas de calendário para outros formatos de ficheiro

- Importar um calendário existente

O &konsolekalendar; não é outra interface gráfica para os calendários do &kde; (como o &korganizer;). O &konsolekalendar; pretende destinar-se apenas a ser usado em situações em que uma interface gráfica não seja prática ou possível.

O &konsolekalendar; não oferece uma linguagem completa para efectuar pesquisas no calendário do utilizador: nem é essa a intenção dos autores criar sequer alguma funcionalidade dessas. São oferecidas as opções da linha de comandos primitivas para aceder aos eventos do calendário, dentro de um determinado intervalo consecutivo de datas/horas.

## Características

Neste capítulo você irá aprender um pouco mais sobre as funcionalidades principais do &konsolekalendar; e como as poderá controlar com os parâmetros da linha de comandos (lembre-se que o &konsolekalendar; não é nenhuma interface gráfica; é um programa apenas para a linha de comandos).

Você irá aprender a inserir, remover e modificar os eventos do calendário e a exportá-los para outros formatos de ficheiros. A criação e a importação dos calendários também será tratada neste capítulo.

### Ver Eventos

No seu modo por omissão, ou usando a opção `--view`, o &konsolekalendar; irá listar todos os eventos que ocorrem num determinado intervalo de datas/horas.

Para ver todos os eventos de hoje (das 7:00 às 17:00), execute simplesmente:

    % konsolekalendar

No próximo exemplo, vê-se todos os eventos na semana de Agosto 18-22:

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

Mostrar o(s) próximo(s) evento(s) no calendário da hora actual em frente:

    % konsolekalendar --next

Para ver todos os eventos nos próximos 5 dias execute:

    % konsolekalendar --show-next 5

### Inserir Eventos

O &konsolekalendar; poderá inserir eventos num calendário ou recurso de calendário com o argumento da linha de comandos `--add`. Os eventos que forem inseridos com sucesso serão apresentados imediatamente nas aplicações de calendarização do &kde; (como o &korganizer;).

Poderá obter uma lista de todos os calendários e dos seus ID's com:

    % konsolekalendar --list-calendars

No exemplo seguinte será introduzido um evento que começa a 01/12/2016 (1 de Dezembro de 2016) às 10:00 e a terminar às 12:00 com o resumo "Ida ao Médico" no recurso de calendário por omissão do utilizador, com o ID 8:

    % konsolekalendar --add --calendar 8 --date 2016-12-01 --time 10:00 \
    --end-time 12:00 --summary "Ida ao Médico"

Neste exemplo, um evento de aniversário é adicionado ao calendário por omissão do utilizador com o ID 8:

    % konsolekalendar --add --calendar 8 --date 2016-12-06 --summary "O Meu Aniversário" \
    --description "Grande Festa"

Aqui umas férias de uma semana são inseridas no calendário com o ID 8:

    % konsolekalendar --add --calendar 12 --date 2017-08-01 \
    --end-date 2017-08-07 --summary "Férias" --description "Ninguém me vai encontrar!"

### Remover Entradas

O &konsolekalendar; suporta a remoção de itens de um ficheiro ou recurso de calendário com o argumento da linha de comandos `--delete`. Os itens do calendário a ser removidos são identificados pelo seu identificador único em texto (UID) com a opção `--uid`. Os UIDs são obtidos através de uma primeira visualização do eventos com as opções `--view`, `--next` ou `--show-next`.

Os eventos apagados com sucesso são removidas imediatamente das aplicações de calendário do &kde; (por exemplo o &korganizer;).

Quando você remover algo do calendário, não poderá anular este passo! Por outras palavras, quando remover um dado item, você não poderá anular a remoção. Foi-se de vez.

Aqui apagamos um item no calendário com o UID `&konsolekalendar;-1887551750.196`:

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

### Modificar Itens

O &konsolekalendar; suporta a modificação de itens existentes de um ficheiro ou recurso de calendário com o argumento da linha de comandos `--change`. Os itens do calendário a ser modificados são identificados pelo seu identificador único em texto (UID) com a opção `--uid`. Os UIDs são obtidos através de uma primeira visualização do eventos com as opções `--view`, `--next` ou `--show-next`.

A alteração funciona da mesma forma que a inserção: você poderá alterar a data de início e de fim, o resumo, a localização e a descrição. Os eventos que forem alterados com sucesso serão mostrados imediatamente com essas modificações nas aplicações de calendarização do &kde; (como o &korganizer;).

Exemplo: Aqui mudamos o sumário e a descrição de uma entrada de calendário com o UID `&konsolekalendar;-1887551750.196`:

`%```konsolekalendar` `--change` `--uid `&konsolekalendar;-1887551750.196`` `--summary `"Examinar a minha cabeça"`` `--description `"não voltar aquele médico!"```

### Criar um Novo Ficheiro de Calendário

O &konsolekalendar; pode ser usado para criar novos calendários a partir dos ficheiros existentes. Poderá criar o calendário com a opção `--create` com o nome do ficheiro como argumento. O ficheiro deverá ser um ficheiro válido do iCal ou vCal.

Nota: Não poderá usar a opção `--dry-run` para testar se é possível criar o recurso.

Nota: o &konsolekalendar; precisa do ficheiro para funcionar; como tal, nunca apague o ficheiro manualmente.

Nota técnica: o &konsolekalendar; cria com este comando um novo recurso do Akonadi que aponta para este ficheiro. Não o impede de criar vários recursos a apontar para o mesmo ficheiro.

Criar um novo calendário a partir de um ficheiro existente chamado ``férias.ics``:

    % konsolekalendar --create férias.ics

O recurso chamar-se-á ferias com o `--list-calendars`

Não é possível apagar um recurso do Akonadi com o &konsolekalendar;; terá de usar o &korganizer; ou o akonadiconsole.

### Exportar para Outros Formatos

O &konsolekalendar; poderá exportar um calendário do &kde; para outros formatos conhecidos. A exportação é uma forma especial de visualização. Por omissão, os eventos são visualizados no formato de texto do &konsolekalendar;. Para alterar o formato de visualização, use o argumento da linha de comandos `--export-type`.

Para ver uma lista de todos os formatos de exportação suportados, utilize a opção `--export-list`, desta forma:

    % konsolekalendar --export-list

### Formatos de Exportação

Alguns, mas não necessariamente todos, dos formato suportados são descritos nesta secção.

#### Formato de Texto do &konsolekalendar;

O Formato de Texto do &konsolekalendar; é o formato nativo do &konsolekalendar; e está desenhado para ser confortável de ler e ser analisado por outros programas.

O Formato de Texto do &konsolekalendar; é:

    Data:\t<Data da Ocorrência>(dddd aaaa-MM-dd)
    [\t<Hora de Início da Ocorrência>(hh:mm) - <Hora de Fim da Ocorrência>(hh:mm)]
    Sumário:
    \t<Sumário da Ocorrência | "(sem sumário disponível)">
    Localização:
    \t<Localização da Ocorrência | "(sem localização disponível)">
    Descrição:
    \t<Descrição da Ocorrência | "(sem descrição disponível)">
    UID:
    \t<UID da Ocorrência>
    --------------------------------------------------

Resultado do ``konsolekalendar` `--next` `--export-type` `Text``:

    Data:   Terça-feira 2016-11-29
            08:00 - 09:00
    Sumário:
            Reunião do Pessoal
    Local:
            Sala de Conferências
    Descrição:
            Reunião com todo o pessoal para discutir o projecto.
    UID:
            &konsolekalendar;-1924621834.134
    --------------------------------------------------

#### Formato Textual Abreviado do &konsolekalendar;

O Formato de Texto Abreviado oferece uma versão mais compacta e menos descritiva do formato nativo do &konsolekalendar;.

O Formato de Texto Abreviado do &konsolekalendar; é:

    [--------------------------------------------------]
    {<Data da Ocorrência>(dddd aaaa-MM-dd)]
    [<Hora de Início da Ocorrência>(hh:mm) - <Hora de Fim da Ocorrência>(hh:mm) | "\t"]
    \t<Sumário da Ocorrência | \t>[, <Localização da Ocorrência>]
    \t\t<Descrição da Ocorrência | "\t">

Resultado do ``konsolekalendar` `--next` `--export-type` `Short``:

    --------------------------------------------------
    Terça-feira 2016-11-29
    08:00 - 09:00   Reunião com o Pessoal, Sala de conferência
                    Reunião com todo o pessoal para discutir o projecto.

#### Formato "Comma-Separated Values" (CSV)

O Formato de Valores Separados por Vírgulas ('Comma-Separated Value' ou CSV) mostra os valores dos eventos pela mesma ordem que o formato de Texto do &konsolekalendar;. A única diferença é que toda a informação fica na mesma linha, com cada campo separado por uma vírgula. Os ficheiros exportados poderão ser importados directamente nos programas das folhas de cálculo como o &kspread;, o Calc do OpenOffice.org e o &Microsoft; Excel. Do mesmo modo, o formato CSV é fácil de processar por outros programas.

O Formato de Valores Separados por Vírgulas (CSV) é:

    "Dia-da-Semana, Dia-do-Mês, Ano","HH:MM","Dia-da-Semana, Dia-do-Mês, Ano","HH:MM","Resumo","Localização","Descrição","UID"

Resultado do ``konsolekalendar` `--next` `--export-type` `CSV``:

    "Terça, 29 de Novembro de 2016","08:00","Terça, 29 de Novembro de 2016","09:00","Reunião de Pessoal","Sala de Conferências","Encontro na sala grande de conferências \
    com o pessoal todo.","&konsolekalendar;-1924621834.134"

#### Formato &HTML;

O formato de exportação em &HTML; irá produzir um ficheiro &HTML; válido que poderá ser publicado na WWW. Este formato de exportação não é adequado para o processamento por programas posteriores, mas é bastante bom para publicar calendários para uma visualização mais simples.

#### Formato HTMLmonth

Este formato produz um ficheiro &HTML; que mostra todos os compromissos nos meses indicados pelo intervalo de datas. Este formato de exportação não é adequado para o processamento por programas posteriores, mas é bastante bom para publicar calendários para uma visualização mais simples.

### Importar Calendários

O &konsolekalendar; poderá importar um ficheiro de calendário iCal ou vCal para um calendário. Todos os eventos do calendário a serem importados serão introduzidos, ignorando os eventos idênticos que já façam parte do calendário.

Para importar o ficheiro de calendário `férias.ics` para o calendário com o ID `8` execute:

    % konsolekalendar --import férias.ics --calendar 8

## Argumentos da Linha de Comandos

&konsolekalendar; pode receber as seguintes opções:

Opção | Descrição
Opções genéricas:
`--help, --help-all` | Mostra ajuda acerca das opções do programa.
`--author` | Mostra informações acerca do autor do programa.
`-v, --version` | Mostra informações da versão do programa.
`--license` | Mostra informações da licença do programa.
Opções:
`--verbose` | Imprime mensagens úteis durante a execução.
`--dry-run` | Imprime o que teria sido feito, mas sem executar nada. Não altera nenhuns ficheiros, nem insere, remove, modifica o conteúdo de qualquer ficheiro, ou mesmo cria quaisquer ficheiros novos.
`--allow-gui` | Permitir os recursos que possam necessitar de uma interface interactiva. Na operação geral, só os recursos que nunca irão necessitar de uma interface de utilizador é que serão usados (como os calendários em ficheiros).
Tipos de incidência (estas opções podem ser combinadas):
`--event` | Funcionar apenas para Eventos (por omissão).
`--todo` | Funcionar apenas para Itens Por-Fazer. (Não implementado)
`--journal` | Funcionar apenas para Diários. (Não implementado)
Modos Principais de Operação:
`--view` | Imprime eventos de calendário no formato de exportação indicado.
`--add` | Inserir um evento no calendário.
`--change` | Modificar um evento actual do calendário.
`--delete` | Remover um evento existente do calendário.
`--create` `nome-ficheiro` | Cria um novo ficheiro de calendário a partir de um ficheiro existente.
`--import` `ficheiro-a-importar` | Importar este calendário para o calendário principal.
`--list-calendars` | Ver todos os calendários disponíveis.
Modificadores de operação:
`--all` | Ver todas as entradas no calendário.
`--next` | Ver a próxima actividade no calendário.
`--show-next` `dias` | A começar na data indicada, irá mostrar as actividades dos próximos 'n' dias.
`--uid` `UID` | Vê, modifica ou altera o evento com este identificador de texto único.
`--date` `data` | Começa no dia indicado por [AAAA-MM-DD]. A data por omissão é a de hoje.
`--time` `hora` | Começa a esta hora [HH:MM]. A hora por omissão de visualização é as 07:00. Para adicionar ou alterar um evento 'flutuante', use as opções `--time float` ou `--end-time float`.
`--end-date` `data-final` | Termina neste dia, identificado por [AAAA-MM-DD]. O valor por omissão é definido pelo `--date`.
`--end-time` `hora-final` | Termina nesta hora [HH:MM]. O valor por omissão para a visualização é as 17:00. Para adicionar ou alterar um evento 'flutuante', use as opções `--time float` ou `--end-time float`.
`--epoch-start` `tempo-época` | Iniciar neste momento [segundos depois da época].
`--epoch-end` `tempo-época` | Acabar neste momento [segundos depois da época].
`--summary` `sumário` | Adiciona o sumário ao evento (funciona com adicionar e modificar).
`--description` `descrição` | Adiciona a descrição ao evento (funciona com adicionar e modificar).
`--location` `localização` | Adiciona a localização ao evento (funciona com adicionar e modificar).
`--calendar` `id` | Indica um calendário a utilizar. Se não for indicado nada, então será usado o seu recurso do &korganizer; por omissão.
Opções de exportação:
`--export-type` `tipo-de-exportação` | O tipo do ficheiro de exportação. O tipo de exportação por omissão é o Texto
`--export-file` `ficheiro-de-exportação` | Exporta para um ficheiro. Por omissão, o resultado é enviado para o 'standard output'.
`--export-list` | Imprime a lista de formatos de exportação suportados e sair.

## Perguntas e Respostas

Que ficheiros de configuração é que o &konsolekalendar; utiliza?

Nenhum.

Qual é o nome das aplicações do &konsolekalendar;?

O nome da aplicação do &konsolekalendar; é konsolekalendar.

Qual é o formato das datas?

O &konsolekalendar; irá rejeitar as datas indicadas na linha de comandos, a menos que sejam indicadas de acordo com a norma ISO 8601, nomeadamente o seguinte formato: AAAA-MM-DD, onde o AAAA representa um ano com quatro algarismos (como o 2003), o MM representa um mês com dois algarismos (01,02,..,12) e o DD representa um dia com dois algarismos (01,02,...,31).

O &konsolekalendar; exporta sempre datas de acordo com o formato ISO 8601.

Qual é o formato das horas?

O &konsolekalendar; irá rejeitar as datas indicadas na linha de comandos, a menos que sejam indicadas de acordo com a norma ISO 8601, nomeadamente o seguinte formato: HH:MM:SS, onde o HH representa uma hora com dois algarismos (01,02,...,24), o MM representa os minutos com dois algarismos (01,02,..,60) e o SS representa os segundos com dois algarismos (01,02,...,60).

O &konsolekalendar; exporta sempre horas de acordo com o formato ISO 8601.

Será que o &konsolekalendar; irá inserir um evento novo que seja idêntico a algum já exista no calendário?

Não. Veja a próxima pergunta.

Como é que o &konsolekalendar; determina se um evento a idêntico a outro que já exista no calendário?

O &konsolekalendar; verifica a data/hora de início e fim, bem como o sumário, comparando-os com todos os eventos do calendário. Se ocorrer uma correspondência de eventos com os três valores para um determinado par de eventos, estes são idênticos.

Será que um evento não-flutuante poderá passar para flutuante?

Sim. Utilize a opção `--time float` com `--change`.

Porque é que os UIDs dos eventos são impressos na maioria dos formatos de exportação?

Porque você precisa de indicar os UIDs para remover ou alterar eventos. Se você não quiser ver os UIDs dos eventos, então use o formato de exportação abreviado (`--export-type short`).

Como é que posso adicionar a minha dúvida a esta FAQ?

Envie as suas perguntas para winter@kde.org.

## Créditos e Licença

&konsolekalendar; Programa com 'copyright' 2002-2007:

- Tuukka Pasanen illuusio@mailcity.com

- Allen Winter winter@kde.org

Documentação copyright 2003:

- Allen Winter winter@kde.org

- Tuukka Pasanen illuusio@mailcity.com

Tradução de José Nuno Pires zepires@gmail.com

&underFDL; &underGPL;
&documentation.index;