{
  "id": "calcurse",
  "name": "calcurse",
  "homepage": "https://calcurse.org/",
  "description": "Text-based personal organizer",
  "executables": [
    "calcurse"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/calcurse/conf",
      "[configHome]/calcurse/keys",
      "[configHome]/calcurse/caldav/config",
      "~/.calcurse/conf",
      "~/.calcurse/keys",
      "~/.calcurse/caldav/config"
    ],
    "secret": [],
    "secret_paths": [
      {
        "file": [
          "[configHome]/calcurse/caldav/config",
          "~/.calcurse/caldav/config"
        ],
        "match": {
          "prefix": [
            "Password",
            "PasswordCommand",
            "ClientSecret"
          ]
        }
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Query or export calendar",
    "description": "Non-interactive calcurse queries: print a day's appointments, the next appointment, import or export data. Filter options and the interactive UI are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": true,
      "short_bundles": false
    },
    "source": [
      {
        "id": "help",
        "kind": "manual",
        "url": "https://manpages.debian.org/unstable/calcurse/calcurse.1.en.html",
        "revision": "2026-10-27",
        "evidence": "-a, --appointment\nPrint the appointments and events for the current day.\n-c file, --calendar file\n(also interactively) Specify the calendar file to\n-C dir, --confdir dir\n(also interactively) Specify the configuration\n-D dir, --datadir dir\n(also interactively) Specify the (data) directory\n-d date|num, --day date|num\nPrint appointments and events for the given date or given\n-i file, --import file\nImport the icalendar data contained in file.\n-l num, --limit num\nLimit the number of results printed to num.\n-n, --next\nPrint the first appointment within the next 24 hours.\n-x[format], --export[=format]\nExport user data in the specified format. Events,\n  appointments and todos are converted and echoed to stdout. Two formats are\n  available: ical and pcal. The default format is ical.\n"
      }
    ],
    "field": [
      {
        "id": "appointment",
        "label": "Today's appointments",
        "type": "boolean",
        "option": [
          "--appointment",
          "-a"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "day",
        "label": "Day (date or number of days)",
        "type": "string",
        "option": [
          "--day",
          "-d"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "next",
        "label": "Next appointment within 24h",
        "type": "boolean",
        "option": [
          "--next",
          "-n"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "limit",
        "label": "Limit results",
        "type": "integer",
        "option": [
          "--limit",
          "-l"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "import_file",
        "label": "Import iCalendar file",
        "type": "path",
        "path": {
          "kind": "file",
          "role": "input"
        },
        "option": [
          "--import",
          "-i"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "export",
        "label": "Export format",
        "type": "enum",
        "option": [
          "--export"
        ],
        "choices": [
          {
            "value": "ical",
            "label": "iCalendar"
          },
          {
            "value": "pcal",
            "label": "pcal"
          }
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "calendar",
        "label": "Calendar file",
        "type": "path",
        "path": {
          "kind": "file",
          "role": "input"
        },
        "option": [
          "--calendar",
          "-c"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "confdir",
        "label": "Configuration directory",
        "type": "path",
        "path": {
          "kind": "directory",
          "role": "input"
        },
        "option": [
          "--confdir",
          "-C"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "datadir",
        "label": "Data directory",
        "type": "path",
        "path": {
          "kind": "directory",
          "role": "input"
        },
        "option": [
          "--datadir",
          "-D"
        ],
        "sources": [
          "help"
        ]
      }
    ],
    "task": [
      {
        "id": "today",
        "label": "Print today's appointments",
        "set": {
          "appointment": [
            true
          ]
        },
        "lock": [
          "appointment"
        ],
        "fields": [
          "appointment",
          "limit"
        ],
        "required": []
      },
      {
        "id": "day",
        "label": "Print a given day",
        "fields": [
          "day",
          "limit"
        ],
        "required": [
          "day"
        ]
      },
      {
        "id": "export",
        "label": "Export data to stdout",
        "fields": [
          "export"
        ],
        "required": []
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "appointment",
          "day",
          "next",
          "limit",
          "import_file",
          "export"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "calendar",
          "confdir",
          "datadir"
        ]
      }
    ]
  }
}
