caldavctl


Namecaldavctl JSON
Version 0.0.22 PyPI version JSON
download
home_pageNone
SummaryCommand line utility to interact with CalDAV servers
upload_time2025-08-07 21:17:46
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)

⚠️WARNING - This software is in the early stages of development, use at your own risk.

## Installation

To install:

    pipx install caldavctl

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
```

### 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.

## 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 TEXT  Configuration file
  --name TEXT        Server nickname
  --username TEXT    Username on the CalDAV server
  --passwd TEXT      Password on the CalDAV server
  --url TEXT         Calendar CalDAV url
  --timezone TEXT    Your time zone
  --server TEXT      Default server (use nickname)
  --calendar TEXT    Default calendar id
  --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
  journal   Journal management
  todo      Todo management
```
Notes:

* The options to the main command override the configuration file;
* By default the configuration file is `$HOME/.config/caldavctl/config.toml`;
* Currently the `journal` sub-command is only a place holder;

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

Options:
  -d, --description  Show the event's description.
  -a, --all          Show all todos, including completed todos.
  --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`:

```
# Mandatory
DTSTART: 2025-02-02 09:00
DTEND: 2025-02-02 09:45

# Recommended
SUMMARY:

# Optional
LOCATION:
CATEGORIES:
TIMEZONE:
PRIORITY: 5
ALARM: P0D
DESCRIPTION: [[ ]]

# NOTES:
#
#   * Date and time:
#       * The dates must be in iso format, for instance: 2024-12-29 13:45;
#       * The timezone used is the one defined by default or the one defined in
#         the "TIMEZONE" key;
#   * Categories: the categories are a comma separated list;
#   * Priority: 1 - highest priority, 9 - lowest priority
#   * Description: The description can be multi line, just make sure it's
#     delimited by [[ ]].
#   * Alarms:
#       * By default an alarm is defined the moment the event begins;
#       * The alarms are defined using:
#           ALARM: <trigger> [<description>]
#       * The trigger is defined according to:
#           https://datatracker.ietf.org/doc/html/rfc5545#autoid-38
#       * For example, to trigger an alarm 30 minutes before the event start, use:
#           ALARM: -PT30M
#       * The alarm description is optional
```
The start and end dates are, by default the next day from 9 to 9:45.

## 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/9f/d1/97bd2465193f3cc15cc4ea45ace02228230a3761878fd8c8c2f874433f08/caldavctl-0.0.22.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\u26a0\ufe0fWARNING - This software is in the early stages of development, use at your own risk.\n\n## Installation\n\nTo install:\n\n    pipx install caldavctl\n\nOn windows make sure you create an environment variable called `VISUAL`\npointing to an editor of your choice. For instance:\n\n```\nset VISUAL=nvim\n```\n\nor\n\n```\nset VISUAL=notepad\n```\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\n## Usage\n\n`caldavctl` uses sub commands to expose its functionality:\n\n```bash\n$ caldavctl --help\nUsage: caldavctl [OPTIONS] COMMAND [ARGS]...\n\n  caldavctl - command line CalDAV client\n\nOptions:\n  -c, --config TEXT  Configuration file\n  --name TEXT        Server nickname\n  --username TEXT    Username on the CalDAV server\n  --passwd TEXT      Password on the CalDAV server\n  --url TEXT         Calendar CalDAV url\n  --timezone TEXT    Your time zone\n  --server TEXT      Default server (use nickname)\n  --calendar TEXT    Default calendar id\n  --help             Show this message and exit.\n\nCommands:\n  br        Backup or restore a calendar\n  calendar  Commands that deal with the calendars on the server\n  event     Event management\n  ics       iCalendar file operations\n  journal   Journal management\n  todo      Todo management\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* Currently the `journal` sub-command is only a place holder;\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\n  List todos from the default server and default calendar\n\nOptions:\n  -d, --description  Show the event's description.\n  -a, --all          Show all todos, including completed todos.\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 elements of an event. If the `--edit` option is used without specifying a file, an example file is opened on your `$EDITOR`:\n\n```\n# Mandatory\nDTSTART: 2025-02-02 09:00\nDTEND: 2025-02-02 09:45\n\n# Recommended\nSUMMARY:\n\n# Optional\nLOCATION:\nCATEGORIES:\nTIMEZONE:\nPRIORITY: 5\nALARM: P0D\nDESCRIPTION: [[ ]]\n\n# NOTES:\n#\n#   * Date and time:\n#       * The dates must be in iso format, for instance: 2024-12-29 13:45;\n#       * The timezone used is the one defined by default or the one defined in\n#         the \"TIMEZONE\" key;\n#   * Categories: the categories are a comma separated list;\n#   * Priority: 1 - highest priority, 9 - lowest priority\n#   * Description: The description can be multi line, just make sure it's\n#     delimited by [[ ]].\n#   * Alarms:\n#       * By default an alarm is defined the moment the event begins;\n#       * The alarms are defined using:\n#           ALARM: <trigger> [<description>]\n#       * The trigger is defined according to:\n#           https://datatracker.ietf.org/doc/html/rfc5545#autoid-38\n#       * For example, to trigger an alarm 30 minutes before the event start, use:\n#           ALARM: -PT30M\n#       * The alarm description is optional\n```\nThe start and end dates are, by default the next day from 9 to 9:45.\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.22",
    "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": "d35a727f6ae3947788df6b3a87a6ba808a73aabaed09ca0005ad89fe3a74a706",
                "md5": "f1672e7f99fc2c614cd55bd81f66d992",
                "sha256": "1e9d428ba2c88963defd4728675768984c7bab7e88360e72a0a07f0505377340"
            },
            "downloads": -1,
            "filename": "caldavctl-0.0.22-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f1672e7f99fc2c614cd55bd81f66d992",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 43241,
            "upload_time": "2025-08-07T21:17:45",
            "upload_time_iso_8601": "2025-08-07T21:17:45.099441Z",
            "url": "https://files.pythonhosted.org/packages/d3/5a/727f6ae3947788df6b3a87a6ba808a73aabaed09ca0005ad89fe3a74a706/caldavctl-0.0.22-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9fd197bd2465193f3cc15cc4ea45ace02228230a3761878fd8c8c2f874433f08",
                "md5": "f0268bddaf947cd00778b310ad0a3fc3",
                "sha256": "3d9e39e0e748b5bb7d6094908432c0bc8e21b950f828e9d590e8b4760b76c7b7"
            },
            "downloads": -1,
            "filename": "caldavctl-0.0.22.tar.gz",
            "has_sig": false,
            "md5_digest": "f0268bddaf947cd00778b310ad0a3fc3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 37759,
            "upload_time": "2025-08-07T21:17:46",
            "upload_time_iso_8601": "2025-08-07T21:17:46.684819Z",
            "url": "https://files.pythonhosted.org/packages/9f/d1/97bd2465193f3cc15cc4ea45ace02228230a3761878fd8c8c2f874433f08/caldavctl-0.0.22.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-07 21:17:46",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": true,
    "codeberg_user": "hgg",
    "codeberg_project": "caldavctl#readme",
    "lcname": "caldavctl"
}
        
Elapsed time: 1.43433s