{"id":26136326,"url":"https://github.com/b1rger/carl","last_synced_at":"2025-04-05T10:10:49.292Z","repository":{"id":167291357,"uuid":"437244149","full_name":"b1rger/carl","owner":"b1rger","description":" carl is a calendar for the commandline. It tries to mimic the various cal(1) implementations out there, but also adds enhanced features like colors and ical support.","archived":false,"fork":false,"pushed_at":"2025-03-23T18:51:03.000Z","size":250,"stargazers_count":53,"open_issues_count":12,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-23T19:30:55.927Z","etag":null,"topics":["cal","calendar","cli","date","ical","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/b1rger.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSES/CC0-1.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-11T09:52:49.000Z","updated_at":"2025-03-23T00:41:32.000Z","dependencies_parsed_at":"2023-12-05T12:31:52.339Z","dependency_job_id":"b5089548-a804-4c37-96e3-15577f72aefe","html_url":"https://github.com/b1rger/carl","commit_stats":null,"previous_names":["b1rger/carl"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1rger%2Fcarl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1rger%2Fcarl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1rger%2Fcarl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1rger%2Fcarl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b1rger","download_url":"https://codeload.github.com/b1rger/carl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318745,"owners_count":20919484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cal","calendar","cli","date","ical","rust"],"created_at":"2025-03-11T00:57:15.068Z","updated_at":"2025-04-05T10:10:49.273Z","avatar_url":"https://github.com/b1rger.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-FileCopyrightText: 2021-2023 Birger Schacht \u003cbirger@rantanplan.org\u003e\nSPDX-License-Identifier: MIT\n--\u003e\n\u003cdiv align=\"center\" markdown=\"1\"\u003e\n\n![carl](https://raw.githubusercontent.com/b1rger/carl/main/data/logo.svg)\n\n`carl` is a calendar for the commandline. It tries to mimic the various\n`cal(1)` implementations out there, but also adds enhanced features like colors\nand ical support.\n\n**If you find any bugs or have ideas for additional features, please don't hesitate to create a bug report or a feature request [on codeberg](https://codeberg.org/birger/carl/issues/new) or [github](https://github.com/b1rger/carl/issues/new).**\n\n---\n\n\u003ctable style=\"table-layout: fixed; width: 100%;\"\u003e\n\u003ctr\u003e\u003cth markdown=\"1\"\u003e\n\nDefault output of `carl`\n\n\u003c/th\u003e\u003cth markdown=\"1\"\u003e\n\n`carl` output with custom colors\n\n\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd markdown=\"1\"\u003e\n\n![Screenshots of default carl](https://raw.githubusercontent.com/b1rger/carl/main/data/screenshot-default.png)\n\n\u003c/td\u003e\u003ctd markdown=\"1\"\u003e\n\n![Screenshot of carl with custom colors](https://raw.githubusercontent.com/b1rger/carl/main/data/screenshot-custom.png)\n\n\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003cth markdown=\"1\"\u003e\n\n`carl` output with events\u003cbr/\u003efrom ical highlighted\n\n\u003c/th\u003e\u003cth markdown=\"1\"\u003e\n\n`carl` output with rainbow\u003cbr/\u003ecolored weekdays\n\n\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd markdown=\"1\"\u003e\n\n![Screenshot of carl with ical events highlighted](https://raw.githubusercontent.com/b1rger/carl/main/data/screenshot-ical.png)\n\n\u003c/td\u003e\u003ctd markdown=\"1\"\u003e\n\n![Screenshot of carl in rainbow colors with ical events highlighted and current date striken through](https://raw.githubusercontent.com/b1rger/carl/main/data/screenshot-rainbow.png)\n\n\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c/div\u003e\n\n## Installation\n\n```\ncargo install carl\n```\n\n## Commandline flags\n\n- **-1**, **--one**: Display single month output.  (This is the default.)\n- **-3**, **--three**: Display prev/current/next month output.\n- **-n**, **--months NUMBER**: Display current and following months.\n- **-s**, **--sunday**: Display Sunday as the first day of the week.\n- **-m**, **--monday**: Display Monday as the first day of the week.\n- **-j**, **--julian**: Display Julian dates (days one-based, numbered from January 1).\n- **-y**, **--year**: Display a calendar for the current year.\n- **-V**, **--version**: Display version information and exit.\n- **-h**, **--help**: Display help screen and exit.\n- **--theme THEME**: Set the theme that should be used\n- **--themestyletype TYPE**: \"dark\" or \"light\", use the theme styles marked for \"dark\" or for \"light\" backgrounds. Defaults to \"light\"\n- **-a**, **--agenda**: Display agenda (a listing of all the events that occur in the the displayed calendar timespan) below the calendar\n\n## Commandline options\n\n- **YYYY**: Display the current date from the given year\n- **MM YYYYY**: Display the given month in the given year\n- **DD MM YYYY**: Display the given date\n\n## Configuration file\n\n\nThe configuration file is located `XDG_CONFIG_DIRS/carl/config.toml` or `XDG_CONFIG_HOME/.carl/config.toml` (the latter has precedence).\nIt can be used to define the name of a themefile as well as one or more icalfiles.\n\nA sample configuration file is located in [data/config.toml](data/config.toml).\n\n### Ical Files\n\nIcalfile listings contain paths to icalfiles and can be combined with their own\nstyledefinitions. All the events from those icalfiles are then highlighted\nusing either the `IsEvent` property (see below) or using the style defined\ntogehter with the ical listing.\n\nWhen using the `-a` or `--agenda` switch, the event summary is displayed below\nthe calendar in a bullet list, with the bullet also highlighted with the\ncorresponding style.\n\n\u003cdiv align=\"center\" markdown=\"1\"\u003e\n\n![Screeshot of carl with agenda](https://raw.githubusercontent.com/b1rger/carl/main/data/screenshot-agenda.png)\n\n\u003c/div\u003e\n\nIcalfile listings can be specified using the `[[ical]]` setting:\n```\n[[ical]]\nfile = \"/home/user/birthdays.ics\"\nstylenames = ['FGPurple']\n```\n\nIf the `file` setting points to a directory, `carl` uses all the files in the directory it can parse.\n\n### Themefile\n\nThemefiles contain listings of date properties together with styledefintions.\n\nThe name of a theme is simple specified using the `theme = ` setting:\n```\ntheme = \"default\"\n```\nThe themefile is read from `XDG_CONFIG_DIRS/carl/\u003cthemename\u003e.toml` or `XDG_CONFIG_HOME/.carl/\u003cthemename\u003e.toml` (the latter has precedence).\n\n### Styles\n\nThemefiles and Icalfile listings can contain custom style settings. A style changes how a specific date in the calendar is displayed.\nA style consists of a list of stylenames and optionally a weight and a styletype (`'Dark'` or `'Light'`). If no styletype is set, the style is effective in either case.\nThe various possible stylenames are listed at the bottom.\n\nExample:\n```\nstylenames = ['Dimmed']\nweight = 10\nstyletype = 'Dark'\n```\n\n## Themefile\n\nA themefile consists of a collection of datestyles:\n\n### Datestyles\n\nA datestyle consists of a list of properties of a date and a style. The date has to fullfill *all* of the properties for the style to be applied.\n\nExample:\n```\n[[date]]\nproperties = ['CurrentDate']\nstylenames = ['FGRed']\nweight = 3\nstyletype = 'Light'\n```\n\n#### Possible properties\n\n- `FirstDayOfMonth`\n- `BeforeFirstDayOfMonth`\n- `BeforeCurrentDate`\n- `CurrentDate`\n- `AfterCurrentDate`\n- `AfterLastDayOfMonth`\n- `LastDayOfMonth`\n- `IsEvent`\n- `Monday`\n- `Tuesday`\n- `Wednesday`\n- `Thursday`\n- `Friday`\n- `Saturday`\n- `Sunday`\n- `Even`\n- `Odd`\n\nA sample theme file is located in [data/default.theme](data/default.theme).\n\n## Stylenames\n\n### Styles\n- `Bold`\n- `Dimmed`\n- `Italic`\n- `Underline`\n- `Blink`\n- `Reverse`\n- `Hidden`\n- `Strikethrough`\n\n### Foreground color names\n- `FGBlack`\n- `FGRed`\n- `FGGreen`\n- `FGYellow`\n- `FGBlue`\n- `FGPurple`\n- `FGCyan`\n- `FGWhite`\n- `{ FGRGB = {r = x, g = y, b = z }}` where x, y and z are the RGB values\n- `{ FGFixed = x }` a color number from 0 to 255, see the [color chart](https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg)\n\n### Background color names\n- `BGBlack`\n- `BGRed`\n- `BGGreen`\n- `BGYellow`\n- `BGBlue`\n- `BGPurple`\n- `BGCyan`\n- `BGWhite`\n- `{BGRGB = { r = x, g = y, b = z }}` where x, y and z are the RGB values\n- `{BGFixed = x }` a color number from 0 to 255, see the [color chart](https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg)\n\nMultiple styles and colors can be combined using lists: `[\"Bold\", \"FGRed\", \"Underline\"]`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb1rger%2Fcarl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb1rger%2Fcarl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb1rger%2Fcarl/lists"}