caldavctl


Namecaldavctl JSON
Version 0.0.24 PyPI version JSON
download
home_pageNone
SummaryCommand line utility to interact with CalDAV servers
upload_time2025-11-04 19:26:21
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords caldav cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # caldavctl

[![PyPI - Version](https://img.shields.io/pypi/v/caldavctl.svg)](https://pypi.org/project/caldavctl)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/caldavctl.svg)](https://pypi.org/project/caldavctl)

-----

## Table of Contents

- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [License](#license)

## Installation

To install:

    pipx install caldavctl

### Completion

Optionally enable completion:

* bash, add this to `~/.bashrc`:

    ```
    eval "$(_CALDAVCTL_COMPLETE=bash_source caldavctl)"
    ```

* zsh, add this to `~/.zshrc`:

    ```
    eval "$(_CALDAVCTL_COMPLETE=zsh_source caldavctl)"
    ```

* fish, add this to `~/.config/fish/completions/foo-bar.fish`:

    ```
    _CALDAVCTL_COMPLETE=fish_source caldavctl | source
    ```

## Configuration

`caldavctl` is configured in `$HOME/.config/caldavctl/config.toml` and on
windows `C:\Users\<user name>\AppData\Local\caldavctl\caldavctl\config.toml`:

```toml
[server.server_01_nickname]
username="your user"
password="your pass"
url="https://oneserver.org/cal"

[server.server_02_nickname]
username="your user"
password="your pass"
url="https://anotherserver.org/cal"

[default]
server="server_01_nickname"
calendar="Default"
timezone="Asia/Tokyo"
```

Make sure to make this file readable only by the user owner of the file
otherwise the configuration will not be read:

```bash
$ chmod go-rwx $HOME/.config/caldavctl/config.toml
```

**On windows this check is not made**, however it's good practice to make sure the
configuration is only readable by the user running caldavctl.

To be able to edit events, on windows, make sure you create an environment
variable called `VISUAL` pointing to an editor of your choice. For instance:

```
set VISUAL=nvim
```

or

```
set VISUAL=notepad
```

## Usage

`caldavctl` uses sub commands to expose its functionality:

```bash
$ caldavctl --help
Usage: caldavctl [options] COMMAND [ARGS]...

caldavctl - command line CalDAV client

Options:
-c, --config <file>    Configuration file
--name <nickname>      Server nickname
--username <username>  Username on the CalDAV server
--passwd <passwd>      Password on the CalDAV server
--url <url>            Calendar CalDAV url
--timezone <timezone>  Your time zone
--server <nickname>    Default server (use nickname)
--calendar <uid>       Default calendar id
--version              caldavctl version
--help                 Show this message and exit.

Commands:
br        Backup or restore a calendar
calendar  Commands that deal with the calendars on the server
event     Event management
ics       iCalendar file operations
todo      Todo management
utils     Utility commands
```
Notes:

* The options to the main command override the configuration file;
* By default the configuration file is `$HOME/.config/caldavctl/config.toml`;

To get help about a sub-command do:

```bash
$ caldavctl <sub-command> --help
```

For example:

```bash
$ caldavctl event --help
Usage: caldavctl event [OPTIONS] COMMAND [ARGS]...

  Event management

Options:
  --help  Show this message and exit.

Commands:
  create  Create new event
  delete  Delete an event on the server
  list    List events from the server list.
```

This holds true for sub-sub-commands:

```bash
$ caldavctl todo list --help
Usage: caldavctl todo list [options]

List todos from the default server and default calendar

caldavctl uses templates to display the list command output by default. If
not specified otherwise it uses the `todo.txt` template. The used template
can be specified using the -tf/--template-file option. First we check the
current directory for the existence of the file. If it's not found we check
the `<share>/caldavctl/templates` directory.

Currently we have the following templates:

    * todo.txt - output with colors (default)
    * todo-nocolor.txt
    * todo.html

If the --json flag is used, the list command will output JSON. This output
does not go through the template system, and any template options will be
ignored when using --json.

Options:
-sd, --show-description      Show the todo's description.
-si, --show-uid              Show the todo's UID.
-a, --all                    Show all todos, including completed todos.
-tf, --template-file <file>  Template used to format the output
--json                       Output JSON instead of using a template
--help                       Show this message and exit.
```

### The create event command

The `create event` command uses a simple `key: value` format to define the
elements of an event. If the `--edit` option is used without specifying a file,
an example file is opened on your editor.

The `$VISUAL` environment variable is checked first to determine which editor
to use. If it is not set, `$EDITOR` is used. If neither is defined, the default
editor is `vi`.

Here's a minimal event:

```
DTSTART: 2025-02-02 09:00
DURATION: PT30M
SUMMARY: Just an example!
```
Read the documentation about the event definition format in [docs/caldav_event_config_format.md](docs/caldav_event_config_format.md).

### Templates

Certain command have their output formatted with a template. See, for example:

```bash
caldavctl event list --help
```
If you want to create your own templates read [docs/caldav_templates.md](docs/caldav_templates.md).

## License

`caldavctl` is distributed under the terms of the [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) license.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "caldavctl",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "caldav, cli",
    "author": null,
    "author_email": "Helder Guerreiro <helder@paxjulia.org>",
    "download_url": "https://files.pythonhosted.org/packages/17/07/a5d56dd1849d134e82c65b71257c378c2ed6a7a5bf841eba005d6403a9c3/caldavctl-0.0.24.tar.gz",
    "platform": null,
    "description": "# caldavctl\n\n[![PyPI - Version](https://img.shields.io/pypi/v/caldavctl.svg)](https://pypi.org/project/caldavctl)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/caldavctl.svg)](https://pypi.org/project/caldavctl)\n\n-----\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Usage](#usage)\n- [License](#license)\n\n## Installation\n\nTo install:\n\n    pipx install caldavctl\n\n### Completion\n\nOptionally enable completion:\n\n* bash, add this to `~/.bashrc`:\n\n    ```\n    eval \"$(_CALDAVCTL_COMPLETE=bash_source caldavctl)\"\n    ```\n\n* zsh, add this to `~/.zshrc`:\n\n    ```\n    eval \"$(_CALDAVCTL_COMPLETE=zsh_source caldavctl)\"\n    ```\n\n* fish, add this to `~/.config/fish/completions/foo-bar.fish`:\n\n    ```\n    _CALDAVCTL_COMPLETE=fish_source caldavctl | source\n    ```\n\n## Configuration\n\n`caldavctl` is configured in `$HOME/.config/caldavctl/config.toml` and on\nwindows `C:\\Users\\<user name>\\AppData\\Local\\caldavctl\\caldavctl\\config.toml`:\n\n```toml\n[server.server_01_nickname]\nusername=\"your user\"\npassword=\"your pass\"\nurl=\"https://oneserver.org/cal\"\n\n[server.server_02_nickname]\nusername=\"your user\"\npassword=\"your pass\"\nurl=\"https://anotherserver.org/cal\"\n\n[default]\nserver=\"server_01_nickname\"\ncalendar=\"Default\"\ntimezone=\"Asia/Tokyo\"\n```\n\nMake sure to make this file readable only by the user owner of the file\notherwise the configuration will not be read:\n\n```bash\n$ chmod go-rwx $HOME/.config/caldavctl/config.toml\n```\n\n**On windows this check is not made**, however it's good practice to make sure the\nconfiguration is only readable by the user running caldavctl.\n\nTo be able to edit events, on windows, make sure you create an environment\nvariable called `VISUAL` pointing to an editor of your choice. For instance:\n\n```\nset VISUAL=nvim\n```\n\nor\n\n```\nset VISUAL=notepad\n```\n\n## Usage\n\n`caldavctl` uses sub commands to expose its functionality:\n\n```bash\n$ caldavctl --help\nUsage: caldavctl [options] COMMAND [ARGS]...\n\ncaldavctl - command line CalDAV client\n\nOptions:\n-c, --config <file>    Configuration file\n--name <nickname>      Server nickname\n--username <username>  Username on the CalDAV server\n--passwd <passwd>      Password on the CalDAV server\n--url <url>            Calendar CalDAV url\n--timezone <timezone>  Your time zone\n--server <nickname>    Default server (use nickname)\n--calendar <uid>       Default calendar id\n--version              caldavctl version\n--help                 Show this message and exit.\n\nCommands:\nbr        Backup or restore a calendar\ncalendar  Commands that deal with the calendars on the server\nevent     Event management\nics       iCalendar file operations\ntodo      Todo management\nutils     Utility commands\n```\nNotes:\n\n* The options to the main command override the configuration file;\n* By default the configuration file is `$HOME/.config/caldavctl/config.toml`;\n\nTo get help about a sub-command do:\n\n```bash\n$ caldavctl <sub-command> --help\n```\n\nFor example:\n\n```bash\n$ caldavctl event --help\nUsage: caldavctl event [OPTIONS] COMMAND [ARGS]...\n\n  Event management\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  create  Create new event\n  delete  Delete an event on the server\n  list    List events from the server list.\n```\n\nThis holds true for sub-sub-commands:\n\n```bash\n$ caldavctl todo list --help\nUsage: caldavctl todo list [options]\n\nList todos from the default server and default calendar\n\ncaldavctl uses templates to display the list command output by default. If\nnot specified otherwise it uses the `todo.txt` template. The used template\ncan be specified using the -tf/--template-file option. First we check the\ncurrent directory for the existence of the file. If it's not found we check\nthe `<share>/caldavctl/templates` directory.\n\nCurrently we have the following templates:\n\n    * todo.txt - output with colors (default)\n    * todo-nocolor.txt\n    * todo.html\n\nIf the --json flag is used, the list command will output JSON. This output\ndoes not go through the template system, and any template options will be\nignored when using --json.\n\nOptions:\n-sd, --show-description      Show the todo's description.\n-si, --show-uid              Show the todo's UID.\n-a, --all                    Show all todos, including completed todos.\n-tf, --template-file <file>  Template used to format the output\n--json                       Output JSON instead of using a template\n--help                       Show this message and exit.\n```\n\n### The create event command\n\nThe `create event` command uses a simple `key: value` format to define the\nelements of an event. If the `--edit` option is used without specifying a file,\nan example file is opened on your editor.\n\nThe `$VISUAL` environment variable is checked first to determine which editor\nto use. If it is not set, `$EDITOR` is used. If neither is defined, the default\neditor is `vi`.\n\nHere's a minimal event:\n\n```\nDTSTART: 2025-02-02 09:00\nDURATION: PT30M\nSUMMARY: Just an example!\n```\nRead the documentation about the event definition format in [docs/caldav_event_config_format.md](docs/caldav_event_config_format.md).\n\n### Templates\n\nCertain command have their output formatted with a template. See, for example:\n\n```bash\ncaldavctl event list --help\n```\nIf you want to create your own templates read [docs/caldav_templates.md](docs/caldav_templates.md).\n\n## License\n\n`caldavctl` is distributed under the terms of the [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) license.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Command line utility to interact with CalDAV servers",
    "version": "0.0.24",
    "project_urls": {
        "Documentation": "https://codeberg.org/hgg/caldavctl#readme",
        "Issues": "https://codeberg.org/hgg/caldavctl/issues",
        "Source": "https://codeberg.org/hgg/caldavctl"
    },
    "split_keywords": [
        "caldav",
        " cli"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f8c9245766029c44c2dc75d080618b60877bd0f24978050fc7a1c3e185f67961",
                "md5": "a426d8fbeff1444e25093f3a6f17286b",
                "sha256": "d7ff1e9e26bbeb62523ac949595ca7ab60e6950c544b0cdc620212ed7063889d"
            },
            "downloads": -1,
            "filename": "caldavctl-0.0.24-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a426d8fbeff1444e25093f3a6f17286b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 45089,
            "upload_time": "2025-11-04T19:26:20",
            "upload_time_iso_8601": "2025-11-04T19:26:20.026462Z",
            "url": "https://files.pythonhosted.org/packages/f8/c9/245766029c44c2dc75d080618b60877bd0f24978050fc7a1c3e185f67961/caldavctl-0.0.24-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1707a5d56dd1849d134e82c65b71257c378c2ed6a7a5bf841eba005d6403a9c3",
                "md5": "b116513bed44eefe57bf314e693a0bb8",
                "sha256": "d0b9082ec8ec13f979d342beb548c4479cee0ab70976d76c664a764f04c78a3e"
            },
            "downloads": -1,
            "filename": "caldavctl-0.0.24.tar.gz",
            "has_sig": false,
            "md5_digest": "b116513bed44eefe57bf314e693a0bb8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 39152,
            "upload_time": "2025-11-04T19:26:21",
            "upload_time_iso_8601": "2025-11-04T19:26:21.125633Z",
            "url": "https://files.pythonhosted.org/packages/17/07/a5d56dd1849d134e82c65b71257c378c2ed6a7a5bf841eba005d6403a9c3/caldavctl-0.0.24.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-04 19:26:21",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": true,
    "codeberg_user": "hgg",
    "codeberg_project": "caldavctl#readme",
    "lcname": "caldavctl"
}
        
Elapsed time: 4.66643s