id = "carl"
name = "carl"
homepage = "https://codeberg.org/birger/carl"
description = "Calendar for the command-line."
executables = ["carl"]
[dotfiles]
paths = [
"[configHome]/.carl/config.toml",
"[configHome]/.carl/*.theme",
]
secret = []
[commands]
format = 1
label = "Show calendar"
description = "Print a calendar for the current month, a year or a given date. Themes and ical files are set in the config file, not here."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true }
[[commands.source]]
id = "readme"
kind = "manual"
url = "https://codeberg.org/birger/carl"
revision = "2026-10-27"
evidence = """
- **-1**, **--one**: Display single month output. (This is the default.)
- **-3**, **--three**: Display prev/current/next month output.
- **-n**, **--months NUMBER**: Display current and following months.
- **-s**, **--sunday**: Display Sunday as the first day of the week.
- **-m**, **--monday**: Display Monday as the first day of the week.
- **-j**, **--julian**: Display Julian dates (days one-based, numbered from January 1).
- **-y**, **--year**: Display a calendar for the current year.
- **-a**, **--agenda**: Display agenda (a listing of all the events that occur in the the displayed calendar timespan) below the calendar
- **YYYY**: Display the current date from the given year
- **MM YYYYY**: Display the given month in the given year
- **DD MM YYYY**: Display the given date
"""
[[commands.field]]
id = "three"
label = "Three months"
description = "Previous, current and next month."
type = "boolean"
option = ["--three", "-3"]
sources = ["readme"]
[[commands.field]]
id = "months"
label = "Number of months"
type = "integer"
option = ["--months", "-n"]
sources = ["readme"]
[[commands.field]]
id = "year_view"
label = "Whole current year"
type = "boolean"
option = ["--year", "-y"]
sources = ["readme"]
[[commands.field]]
id = "sunday"
label = "Sunday first"
type = "boolean"
option = ["--sunday", "-s"]
sources = ["readme"]
[[commands.field]]
id = "monday"
label = "Monday first"
type = "boolean"
option = ["--monday", "-m"]
sources = ["readme"]
[[commands.field]]
id = "julian"
label = "Julian dates"
type = "boolean"
option = ["--julian", "-j"]
sources = ["readme"]
[[commands.field]]
id = "agenda"
label = "Show agenda"
type = "boolean"
option = ["--agenda", "-a"]
sources = ["readme"]
[[commands.field]]
id = "date"
label = "Date"
description = "YYYY, MM YYYY or DD MM YYYY, as separate words. Leave empty for today."
type = "string"
position = 0
multiple = true
sources = ["readme"]
[[commands.task]]
id = "three-months"
label = "Three-month view"
fields = ["three", "monday", "agenda"]
required = ["three"]
set = { three = [true] }
[[commands.task]]
id = "year"
label = "Year calendar"
fields = ["year_view", "monday", "julian"]
required = ["year_view"]
set = { year_view = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["date", "three", "months", "year_view", "agenda"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["sunday", "monday", "julian"]