# Manuale di &konsolekalendar;

## Introduzione

&konsolekalendar; è un'interfaccia a riga di comando per i calendari. Permette di visualizzare, inserire, rimuovere o modificare gli eventi di calendario per mezzo della riga di comando o di un linguaggio di script. Inoltre, &konsolekalendar; può creare un nuovo calendario, esportare un calendario in una varietà di altri formati e importare altri calendari.

In modalità base, &konsolekalendar; mostra l'elenco di eventi del calendario predefinito per il giorno attuale (dalle 7:00 alle 17:00).

Funzionalità principali di &konsolekalendar;:

- Visualizza le voci di calendario da una data/ora di inizio ad una data/ora di fine

- Inserisci (aggiungi) voci al calendario

- Rimuovi (elimina) voci dal calendario

- Modifica (cambia) voci del calendario

- Crea un nuovo calendario

- Esportazione di voci del calendario verso altri formati di file

- Importare un calendario esistente

&konsolekalendar; non è un'altra interfaccia utente per un calendario di &kde; (ad es. &korganizer;) &konsolekalendar; è pensato per gli usi in cui un'interfaccia grafica non è pratica o non è possibile.

&konsolekalendar; non fornisce un linguaggio completo per le ricerche nel calendario dell'utente, e non è nemmeno nell'intenzione dell'autore la scrittura di tale funzionalità. Sono fornite delle primitive opzioni da riga di comando per l'accesso agli eventi del calendario in un intervallo di date o di ore consecutivi.

## Funzionalità

In questo capitolo imparerai le funzioni principali di &konsolekalendar; e come controllarle con i parametri da riga di comando (ricorda che &konsolekalendar; non ha un'interfaccia grafica; è un programma usabile solo da riga di comando).

Si imparerà a inserire, eliminare e cambiare gli eventi del calendario, e a esportarli in altri formati di file. La creazione e l'importazione dei calendari sarà inoltre descritta in questo capitolo.

### Visualizzazione degli eventi

Nella modalità predefinita, od se usi l'opzione `--view`, &konsolekalendar; elencherà tutti gli eventi all'interno di un intervallo di date o di ore specificate.

Per vedere tutti gli eventi di oggi (dalle 7:00 alle 17:00), basta eseguire:

    % konsolekalendar

Nel prossimo esempio, vedremo tutti gli eventi per la settimana del 18-22 agosto:

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

Mostra il prossimo evento (o i prossimi eventi) dall'ora attuale in avanti:

    % konsolekalendar --next

Per vedere tutti gli eventi dei prossimi cinque giorni usa:

    % konsolekalendar --show-next 5

### Inserimento degli eventi

&konsolekalendar; può inserire eventi in un calendario o in una risorsa calendario con l'argomento della riga di comando `--add`. Gli eventi inseriti correttamente saranno mostrati immediatamente dalle applicazioni di calendario di &kde; (come &korganizer;).

Si ottiene un elenco di tutti i calendari e il rispettivo ID utilizzando:

    % konsolekalendar --list-calendars

Nel prossimo esempio, un evento che inizia il 2016-12-01 (1 dicembre 2016) alle 10:00 e che termina alle 12:00, con il riassunto "Visita medica" sarà inserito nella risorsa di calendario dell'utente con ID 8:

    % konsolekalendar --add --calendar 8 --date 2016-12-03 --time 10:00 \
    --end-time 12:00 --summary "Visita medica"

In questo esempio, viene aggiunto un evento di compleanno nella risorsa di calendario dell'utente con ID 8:

    % konsolekalendar --add --calendar 8 --date 2016-12-06 --summary "Mio compleanno" \
    --description "Festa"

Qui una vacanza di una settimana è inserita in un calendario con ID 8:

    % konsolekalendar --add --calendar 12 --date 2017-08-01 \
    --end-date 2017-08-07 --summary "Vacanza" --description "Non mi troverà mai nessuno!"

### Eliminazione di voci

&konsolekalendar; supporta la rimozione delle voci da un file di calendario o da una risorsa con l'argomento da riga di comando `--delete`. Le voci del calendario da eliminare sono specificati esattamente con il loro UID (stringa di identificazione univoca) utilizzando l'opzione `--uid`. Gli UID si possono ricavare a prima vista esaminando l'evento, attraverso l'uso delle opzioni `--view`, `--next` o `--show-next`.

Gli eventi eliminati correttamente saranno rimossi immediatamente anche dalle applicazioni di calendario di &kde; (come ad esempio &korganizer;).

Una volta che elimini qualcosa dal calendario, non c'è modo di recuperarla! In altre parole, una volta eliminata una voce non puoi annullare l'eliminazione. La voce se n'è andata per sempre.

Ecco come cancellare una voce dal calendario con l'UID `&konsolekalendar;-1887551750.196`:

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

### Modifica delle voci

&konsolekalendar; supporta la modifica di voci esistenti in un file o in una risorsa utilizzando l'argomento da riga di comando `--change`. Le voci del calendario da modificare sono specificate esattamente con la stringa di identificazione univoca (UID) utilizzando l'opzione `--uid`. Gli UID si possono ricavare a prima vista esaminando l'evento, con le opzioni `--view`, `--next` o `--show-next`.

Le modifiche si comportano come l'inserimento: puoi cambiare la data e l'ora di inizio di un evento, il riassunto, il luogo e la descrizione. Gli eventi modificati con successo saranno immediatamente mostrati modificati dalle applicazioni di calendario di &kde; (&korganizer;).

Esempio: ora cambiamo il riassunto e la descrizione di una voce del calendario con l'UID `&konsolekalendar;-1887551750.196`:

`%```konsolekalendar` `--change` `--uid `&konsolekalendar;-1887551750.196`` `--summary `"Devo farmi vedere la testa"`` `--description `"non devo più andare dal dottore!"```

### Creazione di un nuovo file di calendario

&konsolekalendar; può essere utilizzato per creare nuovi calendari da file esistenti. È possibile creare il calendario utilizzando l'opzione `--create` con il nome del file come argomento. Il file deve essere un file valido iCal o vCal.

Nota: non è possibile utilizzare l'opzione `--dry-run` per provare se la risorsa può essere creata.

Nota: &konsolekalendar; richiede il file per funzionare, per cui non di deve eliminare mai il file a mano.

Nota tecnica a margine: &konsolekalendar; crea con questo comando una nuova risorsa Akonadi che punta a questo file. Non impedisce di creare più risorse che puntano allo stesso file.

Create un nuovo calendario da un file esistente chiamato ``vacanza.ics``:

    % konsolekalendar --create vacation.ics

La risorsa sarà chiamata vacanza utilizzando `--list-calendars`

Non è possibile eliminare una risorsa Akonadi con &konsolekalendar;, è necessario utilizzare &korganizer; o akonadiconsole.

### Esportazione verso altri formati

&konsolekalendar; può esportare un calendario in altri formati conosciuti. L'esportazione è una forma particolare di visualizzazione. Normalmente, gli eventi sono mostrati nel formato testuale di &konsolekalendar;. Per cambiare la visualizzazione, utilizzare l'argomento della riga di comando `--export-type`.

Per vedere l'elenco di tutti i formati di esportazione disponibili, usa l'opzione `--export-list` così:

    % konsolekalendar --export-list

### Formati di esportazione

Alcuni, ma non necessariamente tutti, i formati disponibili sono descritti in questa sezione.

#### Formato testuale di &konsolekalendar;

Il formato testuale di &konsolekalendar; è il formato nativo di &konsolekalendar; ed è pensato per essere di facile lettura e interpretazione da parte di eventuali script successivi.

Il formato testuale di &konsolekalendar; è:

    Date:\t<Data dell'occorrenza>(dddd yyyy-MM-dd)
    [\t<Ora d'inizio dell'occorrenza>(hh:mm) - <Ora di fine dell'occorrenza>(hh:mm)]
    Summary:
    \t<Riassunto | "(no summary available)">
    Location:
    \t<Luogo dell'occorrenza | "(no location available)">
    Description:
    \t<Descrizione dell'occorrenza | "(no description available)">
    UID:
    \t<UID dell'occorrenza>
    --------------------------------------------------

Risultato di ``konsolekalendar` `--next` `--export-type` `Text``:

    Data:   Martedì 29/11/2016
            08:00 - 09:00
    Riepilogo:
            Incontro del gruppo di lavoro
    Luogo:
            Sala conferenze
    Descrizione:
            Incontro con tutto il gruppo per discutere il progetto.
    UID:
            &konsolekalendar;--1924621834.134
    --------------------------------------------------

#### Formato testuale breve di &konsolekalendar;

Il formato testuale breve fornisce una versione più compatta e meno prolissa del formato nativo di &konsolekalendar;.

Il formato testuale breve di &konsolekalendar; è:

    [--------------------------------------------------]
    {<Data occorrenza>(dddd yyyy-MM-dd)]
    [<Ora di inizio occorrenza>(hh:mm) - <Ora di fine occorrenza>(hh:mm) | "\t"]
    \t<Riassunto occorrenza | \t>[, <Luogo occorrenza>]
    \t\t<Descrizione occorrenza | "\t">

Risultato di ``konsolekalendar` `--next` `--export-type` `Short``:

    --------------------------------------------------
    Martedì 2003-11-01
    08:00 - 09:00   Incontro del gruppo di lavoro, Sala conferenze
                    Incontro con tutto il gruppo per discutere il progetto.

#### Formato CSV (Valori separati da virgole)

Il formato CSV visualizza i valori degli eventi nello stesso ordine del formato testuale di &konsolekalendar;. L'unica differenza è che tutte le informazioni sono sulla stessa riga, con tutti i campi separati da virgole. I file esportati risultanti possono essere importati direttamente in programmi di foglio di calcolo come &calligrasheets;, LibreOffice.org Calc e &Microsoft; Excel. Inoltre il formato CSV è facile da interpretare da script aggiuntivi.

Il formato CSV (Valori separati da virgole) è:

    "Giorno della settimana, Giorno del mese, Anno","HH:MM","Giorno della settimana, Giorno del mese, Anno","HH:MM","Riepilogo","Luogo","Descrizione","UID"

Risultato di ``konsolekalendar` `--next` `--export-type` `CSV``:

    "Martedì, 29 novembre 2016","08:00","Martedì, 29 novembre 2016","09:00",Incontro del gruppo di lavoro","Sala conferenze","Incontro nella sala conferenze grande \
    con tutto il gruppo di lavoro".,"&konsolekalendar;-1924621834.134"

### Importare calendari

&konsolekalendar; può importare un file di calendario iCal o vCal in un calendario. Tutti gli eventi del calendario da cui viene importato saranno inseriti, esclusi gli eventi identici, che sono già parte del calendario.

Per importare un file di calendario `vacanza.ics` nel calendario con ID `8` eseguire:

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

## Argomenti di linea di comando

&konsolekalendar; gestisce le seguenti opzioni:

Opzione | Descrizione
Opzioni generiche:
`--help, --help-all` | Mostra un messaggio di aiuto sulle opzioni del programma.
`--author` | Mostra le informazioni sugli autori del programma.
`-v, --version` | Mostra delle informazioni sulla versione del programma.
`--license` | Mostra le informazioni sulla licenza d'uso del programma.
Opzioni:
`--verbose` | Stampa messaggi di aiuto sull'esecuzione.
`--dry-run` | Stampa che cosa sarebbe stato fatto, ma senza eseguire. Non cambia nessun file; non inserisce né rimuove o modifica file esistenti, e non crea nuovi file.
`--allow-gui` | Permette l'uso di risorse che possono richiedere un'interfaccia utente interattiva. Nelle normali operazioni, sono usate solo le risorse che non richiedono mai un'interfaccia utente (come i calendari basati su file).
Tipi di occorrenza (queste opzioni possono essere combinate):
`--event` | Opera solo su Eventi. (Predefinito)
`--todo` | Opera solo su Cose da fare. (Non implementata)
`--journal` | Opera solo su Diari. (Non implementata)
Modalità principali di operazione:
`--view` | Stampa gli eventi del calendario nel formato di esportazione specificato.
`--add` | Aggiunge un evento al calendario.
`--change` | Modifica un evento esistente nel calendario.
`--delete` | Rimuove un evento esistente del calendario.
`--date` `nomefile` | Crea un nuovo calendario da un file esistente.
`--import` `file-da-importare` | Importa questo calendario nel calendario principale.
`--list-calendars` | Elenca i calendari disponibili.
Modificatori dell'operazione:
`--all` | Mostra tutte le voci del calendario.
`--next` | Mostra l'attività successiva nel calendario.
`--show-next` `giorni` | Iniziando dalla data specificata mostra i prossimi n giorni di attività.
`--uid` `UID` | Mostra, elimina o cambia l'evento con questa stringa di identificazione univoca.
`--date` `data` | Inizia da questo giorno [[AAAA-MM-GG]]. Il giorno predefinito è oggi
`--time` `ora` | Inizia da quest'ora [[HH:MM]]. L'ora predefinita per l'inizio è 07:00. Per aggiungere o eliminare un evento fluttuante, usa una delle opzioni `--time float` o `--end-time float`.
`--end-date` `data-di-fine` | Termina in questo giorno [AAAA-MM-GG]. Il valore predefinito è impostato con `--date`.
`--end-time` `ora-di-fine` | Termina a quest'ora [HH:MM]. L'ora di fine predefinita per la visione è 17:00. Per aggiungere o eliminare un evento fluttuante, usa una delle opzioni `--time float` o `--end-time float`.
`--epoch-start` `ora-epoca` | Inizia da quest'ora [secondi dall'inizio dell'epoca UNIX].
`--epoch-end` `ora-epoca` | Termina a quest'ora [secondi dall'inizio dell'epoca UNIX].
`--summary` `riassunto` | Aggiunge un riassunto all'evento (funziona con --add e --change).
`--description` `descrizione` | Aggiunge una descrizione all'evento (funziona con --add e --change).
`--location` `posizione` | Aggiunge un luogo all'evento (funziona con --add e --change).
`--calendar` `id` | Specifica il calendario da utilizzare. Se non specificato verrà usata la risorsa di &korganizer; predefinita.
Opzioni di esportazione:
`--export-type` `tipo-di-esportazione` | Tipo di file da esportare. In mancanza dell'opzione, viene usato il tipo Testo
`--export-file` `file-da-esportare` | File da usare per l'esportazione. Se non specificato, l'output è scritto sull'output standard.
`--export-list` | Stampa l'elenco dei tipi di esportazione supportati ed esce.

## Domande e risposte

Quali file di configurazione usa &konsolekalendar;?

Nessuno.

Qual è il nome dell'applicazione di &konsolekalendar;?

Il nome dell'applicazione di &konsolekalendar; è konsolekalendar.

Qual è il formato di specifica della data?

&konsolekalendar; rifiuta le date specificate sulla riga di comando a meno che non siano specificate secondo gli standard ISO 8601, cioè: AAAA-MM-GG, dove AAAA rappresenta l'anno specificato con quattro cifre (come 2003) MM rappresenta il mese specificato con due cifre (01, 02, ..., 12) ed GG rappresenta il giorno specificato con due cifre (01, 02, ..., 31).

&konsolekalendar; esporta sempre le date secondo il formato ISO 8601.

Qual è il formato di specifica dell'ora?

&konsolekalendar; rifiuta l'ora specificata sulla riga di comando a meno che non sia specificata secondo gli standard ISO 8601, cioè: HH:MM:SS, dove HH rappresenta l'ora specificata con due cifre (01, 02, ..., 24) MM rappresenta i minuti specificati con due cifre (00, 01, ..., 59) ed SS rappresenta i secondi (00, 01, ..., 59).

&konsolekalendar; esporta sempre le ore secondo il formato ISO 8601.

&konsolekalendar; può inserire un nuovo evento identico ad uno già presente nel calendario?

No. Vedi la prossima domanda.

Come fa &konsolekalendar; a determinare che un evento è identico ad uno già presente nel calendario?

&konsolekalendar; confronta la data ed ora di inizio specificata, l'ora e la data di fine, ed il riassunto con tutti gli eventi del calendario. Una corrispondenza fra gli eventi si determina quando tutti e tre questi valori corrispondono con un evento esistente.

È possibile cambiare un evento non-fluttuante in un evento fluttuante?

Sì Usa l'opzione `--time float` con `--change`.

Come mai gli UID degli eventi vengono stampati in quasi tutti i formati di esportazione?

Perché è necessario specificare l'UID per eliminare o cambiare un evento. Se non vuoi vedere l'UID degli eventi usa il tipo di esportazione breve (`--export-type short`).

Posso far aggiungere domande alla FAQ?

Invia le tue domande (in inglese) a illuusio@lycos.com.

## Riconoscimenti e licenza

Il programma &konsolekalendar; è copyright 2002-2007:

- Tuukka Pasanen illuusio@mailcity.com

- Allen Winter winter@kde.org

Questa documentazione è copyright 2003:

- Allen Winter winter@kde.org

- Tuukka Pasanen illuusio@mailcity.com

Traduzione: Vincenzo Reale smart2128vr@gmail.com

Traduzione: Luciano Montanaro mikelima@cirulla.net

&underFDL; &underGPL;
&documentation.index;