caldavctl


Namecaldavctl JSON
Version 0.0.10 PyPI version JSON
download
home_pageNone
SummaryCommand line utility to interact with CalDAV servers
upload_time2025-02-13 22:08:14
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 alpha quality, use at your own risk.

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

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

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

## 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/7e/38/8eedb27867ee6ed0727dd368eab3ea667834154e62cd4bad1b137932e26f/caldavctl-0.0.10.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 \u26a0\ufe0f\n\nThis software is alpha quality, use at your own risk.\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`:\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:\n\n```bash\n$ chmod go-rwx $HOME/.config/caldavctl/config.toml\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\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.10",
    "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": "79bbcc1f3855604cab60bf589b02082de361ba5d118f76489a6e8ec3195e36c6",
                "md5": "89c411f85398ed591c0de5bccad4c2c3",
                "sha256": "40f30cc67e54c2cca4973a4c1f8b0c902fc2a0a6eb430e03fb9b37e091b85393"
            },
            "downloads": -1,
            "filename": "caldavctl-0.0.10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "89c411f85398ed591c0de5bccad4c2c3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 25570,
            "upload_time": "2025-02-13T22:08:13",
            "upload_time_iso_8601": "2025-02-13T22:08:13.603290Z",
            "url": "https://files.pythonhosted.org/packages/79/bb/cc1f3855604cab60bf589b02082de361ba5d118f76489a6e8ec3195e36c6/caldavctl-0.0.10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7e388eedb27867ee6ed0727dd368eab3ea667834154e62cd4bad1b137932e26f",
                "md5": "800a7dab160df11b041cf52f26e13134",
                "sha256": "8507b473e4a475680d0c6638c32ab70c3a51711f2926a5dc25d1784e8901f881"
            },
            "downloads": -1,
            "filename": "caldavctl-0.0.10.tar.gz",
            "has_sig": false,
            "md5_digest": "800a7dab160df11b041cf52f26e13134",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 22595,
            "upload_time": "2025-02-13T22:08:14",
            "upload_time_iso_8601": "2025-02-13T22:08:14.937003Z",
            "url": "https://files.pythonhosted.org/packages/7e/38/8eedb27867ee6ed0727dd368eab3ea667834154e62cd4bad1b137932e26f/caldavctl-0.0.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-13 22:08:14",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": true,
    "codeberg_user": "hgg",
    "codeberg_project": "caldavctl#readme",
    "lcname": "caldavctl"
}
        
Elapsed time: 0.72484s