# `FrappeUIPhx.Calendar`
[🔗](https://github.com/moacirbishopcamata/frappe_ui_phx/blob/v0.3.1/lib/frappe_ui_phx/calendar.ex#L1)

Aritmética de calendário pura usada pelo DatePicker (semana começando no domingo).

# `first_of_month`

```elixir
@spec first_of_month(Date.t()) :: Date.t()
```

Primeiro dia do mês de `date`.

# `format`

```elixir
@spec format(Date.t()) :: String.t()
```

`dd/mm/aaaa`.

# `label`

```elixir
@spec label(Date.t()) :: String.t()
```

"Março 2026".

# `months`

Nomes dos meses (pt-BR).

# `shift_month`

```elixir
@spec shift_month(Date.t(), integer()) :: Date.t()
```

Desloca `date` em `delta` meses, sempre devolvendo o dia 1.

# `to_date`

```elixir
@spec to_date(term()) :: Date.t() | nil
```

Converte texto ISO (`2026-03-09`), `Date` ou nil em `Date | nil` (inválido vira nil).

# `weekdays`

Iniciais dos dias da semana, domingo primeiro.

# `weeks`

```elixir
@spec weeks(Date.t()) :: [[Date.t()]]
```

Seis semanas de sete dias (42 datas) que cobrem o mês de `date`.

# `within?`

```elixir
@spec within?(Date.t(), Date.t() | nil, Date.t() | nil) :: boolean()
```

A data está dentro de `min..max` (limites opcionais, inclusivos)?

---

*Consult [api-reference.md](api-reference.md) for complete listing*
