Questo plugin permette di gestire i task sparsi per le varie note in Obsidian potendoli raggruppare con delle query dinamiche. Questo plugin permette di effettuare delle query sulle checklist che hanno un determinato tag (chiamato global filter) o, se tale tag è vuoto, tutte le checklist nel vault. La sintassi markdown per i task è elenco puntato con parentesi quadre separate da spazio: - [ ] #task take out the trash. Per creare un task con la modale basta evidenziare il testo del task e premere ctrl + alt + t.

I comandi obsidian task utilizzano la sintassi:

    ```tasks
    [comando]
    ```

Per il toggle del task posso usare ctrl + enter se sono in edit mode, in preview invece basta il click.

Priorità

Ogni task può avere una priorità che viene identificata tramite una delle seguenti emoji:

  • ⏫ alta priorità
  • 🔼 Priorità media
  • 🔽 Bassa priorità Lo scopo è ovviamente permette di filtrare i task in base alle priorità.

Date

Ho tre possibilità:

  • 📅 Due: task che hanno una data entro la quale devono essere completati. Per farlo è necessario aggiungere l’emoji 📅 seguita dalla data nel formato YYYY-MM-DD. Esempio: - [ ] #task take out the trash 📅 2021-04-09. La maggior parte dei task utilizzeranno al massimo la due date.;
  • ⏳ Scheduled: task che hanno delle date in cui hai pianificato che dovranno essere fatti. Per farlo è necessario aggiungere l’emoji ⏳ seguita dalla data nel formato YYYY-MM-DD. Tipicamente possono avere delle date schedulate per un task che siano, ovviamente, inferiori alla due date. Esempio: - [ ] #task take out the trash ⏳ 2021-04-09.
  • 🛫 Start: Può capitare che è impossibile iniziare un task prima di una certa data o che non voglio vedere un task prima di una certa data. Per farlo è necessario aggiungere l’emoji 🛫 seguita dalla data nel formato YYYY-MM-DD.

Task ripetuti

E’ possibile creare dei task ricorrenti che si ripetono ogni tot giorni. Per fare questo è necessario usare l’emoji 🔁 seguita dalla parola chiave every e da una keyword. Per esempio 🔁 every weekday fa ripetere il task tutti i giorni della settimana dal lunedì a venerdì. Quando un task ricorrente viene marcato come completato viene creato un task ulteriore con la nuova data sopra il task completato. Per esempio se ho il seguente task:

- [ ] #task take out the trash 🔁 every Sunday 📅 2021-04-25

Quando viene completato viene creato un nuovo task sopra nel seguente modo:

-   [ ] take out the trash 🔁 every Sunday 📅 2021-05-02
-   [x] take out the trash 🔁 every Sunday 📅 2021-04-25 ✅ 2021-04-24

Assumiamo che un task sia da lanciare ogni settimana ma io salto una settimana dal completarlo. Una volta fatto il task successivo quando viene creato? Di default viene creato una settimana dopo l’originale, indipendentemente da quando il task è stato completato. Se invece vogliamo che il nuovo task sia creato una settimana dopo la data di completamento devo aggiungere la keyword when done. In questo esempio il nuovo task è creato una settimana dopo il primo.

- [ ] #task sweep the floors 🔁 every week ⏳ 2021-02-13
- [x] sweep the floors 🔁 every week ⏳ 2021-02-06 ✅ 2022-02-13

In questo esempio invece una settimana dopo la data di completamento.

- [ ] #task sweep the floors 🔁 every week when done ⏳ 2022-02-20
- [x] sweep the floors 🔁 every week when done ⏳ 2021-02-06 ✅ 2022-02-13

Esempi:

  • 🔁 every 3 days
  • 🔁 every 10 days when done
  • 🔁 every weekday (tutti i giorni da lunedì a venerdì)
  • 🔁 every week on Sunday
  • 🔁 every 2 weeks
  • 🔁 every 3 weeks on Friday
  • 🔁 every 2 months
  • 🔁 every month on the 1st
  • 🔁 every month on the last
  • 🔁 every 6 months on the 2nd Wednesday
  • 🔁 every January on the 15th
  • 🔁 every February on the last
  • 🔁 every April and December on the 1st and 24th ( ogni primo aprile e 24 dicembre)
  • 🔁 every year

Query

Le query sono formate da n righe con i filtri in AND (l’AND è sottointeso). Per aggiungere altri operatori come NOT, AND, OR, AND NOT, OR NOT li devi aggiungere sulla stessa riga raggruppati tra parentesi.

```tasks
not done
(due after yesterday) AND (due before in two weeks)
(tags include #inbox) OR (path includes Inbox) OR (heading includes Inbox)
```

Filtraggio per date

Per filtrare le date posso prendere questi esempi:

  • 2021-05-25
  • yesterday
  • today
  • tomorrow
  • next monday
  • last friday
  • 14 days ago
  • in two weeks

Done date

  • done
  • not done
  • no done date
  • has done date
  • done (before|after|on) <date>

Due date

  • no due date
  • has due date
  • due (before|after|on) <date>

Scheduled date

  • no scheduled date
  • has scheduled date
  • scheduled (before|after|on) <date>

Start date

  • no start date
  • has start date
  • starts (before|after|on) <date>

Happens (Due or Scheduled or Start)

  • happens before tomorrow: tutti i task che sono schedulati, partono o devono essere fatti entro domani.

Description

Permette di matchare la stringa del task.

  • description (includes|does not include) <string>
  • description (regex matches|regex does not match) /<JavaScript-style Regex>/

Priorità

  • priority is (above|below)? (low|none|medium|high)

Status

  • done
  • not done

Tags

  • tags (include|do not include) <tag>
  • tags (regex matches|regex does not match) /<JavaScript-style Regex>/

Nome file

  • filename (includes|does not include) <filename>

Ordinamento

L’ordinamento di default viene effettuato secondo un criterio di “urgenza” calcolato dal plugin. Per modificare tale ordinamento è possibile utilizzare la keyword sort by. Esempi:

  • status
  • priority
  • due
  • path

Esempio: Task da fare nei prossimi 7 giorni

Voglio tutti i task che dovranno essere eseguiti entro i prossimi 7 giorni (può essere utile in un template di un weekly plan). P.s. per testare una query conviene creare delle “suite di test” con dei task fittizzi per capire costa sto matchando o no. Quindi voglio i task con due date (quindi keyword due) e prima di una certa data, quindi before in . Conseguentemente il filtro corretto è:

```tasks
not done
due before in 7 days
```

Notifiche

E’ possibile far arrivare le notifiche quando bisogna fare un task utilizzando obsidian-reminder. Una volta installato controllare che ci sia abilitata l’opzione “enabled the tasks plugin format”. Il plugin si basa sulla reminder date che deve essere messa sempre immediatamente prima della due date.

- [ ] #task #task task name ⏰ YYYY-MM-DD HH:mm 📅 YYYY-MM-DD ⏫ 🔁 every week 🛫 YYYY-MM-DD ⏳ YYYY-MM-DD