{"id":28163738,"url":"https://github.com/thiswillbeyourgithub/caldav-tasks-api","last_synced_at":"2025-05-15T11:14:23.978Z","repository":{"id":292176853,"uuid":"980012010","full_name":"thiswillbeyourgithub/Caldav-Tasks-API","owner":"thiswillbeyourgithub","description":"Python library and CLI for managing CalDAV tasks (VTODOs), supporting Nextcloud and other CalDAV servers with robust X-property handling.","archived":false,"fork":false,"pushed_at":"2025-05-14T21:55:03.000Z","size":170,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-14T22:22:58.826Z","etag":null,"topics":["caldav","calendar","hierarchy","lists","management","nextcloud","organization","task","tasks","todo","vtodo"],"latest_commit_sha":null,"homepage":"https://caldavtasksapi.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thiswillbeyourgithub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null}},"created_at":"2025-05-08T12:26:26.000Z","updated_at":"2025-05-14T21:55:06.000Z","dependencies_parsed_at":"2025-05-14T22:23:02.606Z","dependency_job_id":null,"html_url":"https://github.com/thiswillbeyourgithub/Caldav-Tasks-API","commit_stats":null,"previous_names":["thiswillbeyourgithub/caldavtasksapi","thiswillbeyourgithub/caldav-tasks-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiswillbeyourgithub%2FCaldav-Tasks-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiswillbeyourgithub%2FCaldav-Tasks-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiswillbeyourgithub%2FCaldav-Tasks-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiswillbeyourgithub%2FCaldav-Tasks-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thiswillbeyourgithub","download_url":"https://codeload.github.com/thiswillbeyourgithub/Caldav-Tasks-API/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254328387,"owners_count":22052633,"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":["caldav","calendar","hierarchy","lists","management","nextcloud","organization","task","tasks","todo","vtodo"],"created_at":"2025-05-15T11:14:20.391Z","updated_at":"2025-05-15T11:14:23.929Z","avatar_url":"https://github.com/thiswillbeyourgithub.png","language":"Python","readme":"[![PyPI version](https://badge.fury.io/py/caldav-tasks-api.svg)](https://badge.fury.io/py/caldav-tasks-api)\n\n# THIS DOCUMENTATION IS BEING REWRITTEN, YOU PROBABLY WANT TO COME BACK LATER\n\nFull documentation available at [caldavtasksapi.readthedocs.io](https://caldavtasksapi.readthedocs.io/en/latest/#).\n\n# CalDAV-Tasks-API\n\nA Python library and command-line interface (CLI) for interacting with CalDAV task lists (VTODOs). This project provides tools to connect to a CalDAV server, fetch task lists and tasks, create new tasks, and delete existing ones.\n\n## Table of Contents\n\n- [Motivation and Purpose](#motivation-and-purpose)\n- [Compatibility](#compatibility)\n- [Features](#features)\n- [Installation](#installation)\n- [Contributing](#contributing)\n- [Acknowledgements](#acknowledgements)\n\n\n## Motivation and Purpose\n\nThis library was developed as a foundational component for integrating CalDAV task management with more advanced systems. The primary goal is to serve as a backbone for:\n\n1. Synchronizing tasks from applications like the excellent [Tasks.org Android app](https://f-droid.org/packages/org.tasks/).\n2. Enabling features such as smart task prioritization using ELO ranking, envisioned to work with a [Litoy-like setup](https://github.com/thiswillbeyourgithub/mini_LiTOY).\n3. Making useful python objects with handy methods to manipulate caldav's tasks.\n4. Making a CLI interface to manipulate tasks (secondary goal).\n\nBy providing a robust Python interface to CalDAV tasks, this project aims to bridge the gap between standard task management and custom, intelligent task processing workflows. The library is intentionally designed to be minimal, with few external dependencies, to ensure it is lightweight and easy to integrate.\n\n## Compatibility\n\nThe API has been primarily tested with **Nextcloud Tasks**. However, it is designed to be compatible with any CalDAV server that supports VTODO components.\n\nTesters and feedback for other CalDAV server implementations (e.g., Baïkal, Radicale, Synology Calendar) are highly welcome!\n\n## Some of the features\n\n*   Connect to CalDAV servers with optional Nextcloud-specific URL adjustments.\n*   Load task lists (calendars supporting VTODOs).\n*   Load tasks from specified lists, parsing standard iCalendar properties.\n*   Preserve and provide access to custom `X-` properties.\n*   Create, update, and delete tasks (VTODOs) on the server.\n*   Access parent and child task relationships (`TaskData.parent_task` and `TaskData.child_tasks`).\n*   Read-only mode for applications that need to prevent modifications.\n*   CLI for basic task list inspection with JSON output support (secondary goal of the project).\n\n## Installation\n\nThe CalDAV Tasks API can be installed directly from PyPI:\n\n```bash\nuv pip install caldav-tasks-api\n```\n\nAlternatively, you can install from source:\n\n1.  Clone the repository:\n    ```bash\n    git clone \u003crepository_url\u003e\n    cd caldav-tasks-api\n    ```\n2.  Install dependencies (ensure you have `python\u003e=3.8`):\n    ```bash\n    # Install the package and all dependencies:\n    uv pip install .\n    \n    # For development with editable install:\n    uv pip install -e .\n    \n    # For development with additional dev dependencies:\n    uv pip install -e \".[dev]\"\n    ```\n\n## Contributing\n\nContributions are welcome! If you'd like to contribute, please feel free to:\n\n1.  Open an issue to discuss a bug, feature request, or an idea.\n2.  Fork the repository and submit a pull request with your changes.\n\nPlease ensure your code follows the existing style and includes tests where appropriate.\n\n## Acknowledgements\n\nThis project was developed with the assistance of [aider.chat](https://aider.chat), an AI pair programmer.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiswillbeyourgithub%2Fcaldav-tasks-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthiswillbeyourgithub%2Fcaldav-tasks-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiswillbeyourgithub%2Fcaldav-tasks-api/lists"}