{"id":30546421,"url":"https://github.com/jhns-de/shoppinglist_sync","last_synced_at":"2026-05-15T12:04:39.258Z","repository":{"id":310472373,"uuid":"924237832","full_name":"jhns-de/shoppinglist_sync","owner":"jhns-de","description":"A Python application that synchronizes shopping lists between Grocy and CalDAV-compatible calendar applications (like Nextcloud Tasks).","archived":false,"fork":false,"pushed_at":"2025-08-18T09:29:19.000Z","size":61,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-18T11:27:10.754Z","etag":null,"topics":["caldav","grocy","nextcloud","tasks"],"latest_commit_sha":null,"homepage":"","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/jhns-de.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-01-29T16:52:31.000Z","updated_at":"2025-08-18T09:29:15.000Z","dependencies_parsed_at":"2025-08-18T11:39:18.640Z","dependency_job_id":null,"html_url":"https://github.com/jhns-de/shoppinglist_sync","commit_stats":null,"previous_names":["jhns-de/shoppinglist_sync"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jhns-de/shoppinglist_sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhns-de%2Fshoppinglist_sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhns-de%2Fshoppinglist_sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhns-de%2Fshoppinglist_sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhns-de%2Fshoppinglist_sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jhns-de","download_url":"https://codeload.github.com/jhns-de/shoppinglist_sync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhns-de%2Fshoppinglist_sync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272417980,"owners_count":24931561,"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","status":"online","status_checked_at":"2025-08-28T02:00:10.768Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","grocy","nextcloud","tasks"],"created_at":"2025-08-28T02:00:47.401Z","updated_at":"2026-05-15T12:04:34.218Z","avatar_url":"https://github.com/jhns-de.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shoppinglist Sync\n\nA Python application that synchronizes shopping lists between [Grocy](https://grocy.info/) and CalDAV-compatible calendar applications (like Nextcloud Tasks).\n\n## Features\n\n- **Automatic Sync**: Runs every 15 minutes to keep your shopping lists in sync\n- **Unidirectional Updates**: Handles new items and quantity changes\n- **Docker Support**: Easy deployment with Docker and Docker Compose\n\n## How it Works\n\n1. Retrieves shopping list items from Grocy\n2. Syncs new items to your CalDAV calendar as TODO items\n3. Updates quantities when they change in Grocy\n4. Maintains sync state in local SQLite database\n\n## Requirements\n\n- Python 3.9+\n- Grocy instance with API access\n- CalDAV-compatible calendar server (Nextcloud, etc.)\n\n## Installation\n\n### Using Docker (Recommended)\n\n1. Download the `docker-compose.yml` and the `.env.example`\n2. Rename `.env.example` to `.env` and configure the environment variables\n3. Start the service: `docker-compose up -d`\n\n## Environment Variables\n\nCreate a `.env` file or set the following environment variables:\n\n```env\n# CalDAV Server Configuration\nCALDAV_HOST=https://your-nextcloud-instance.com/remote.php/dav\nCALDAV_USER=your-username\nCALDAV_PASSWORD=your-password\nCALDAV_SHOPPING_LIST_URL=https://your-nextcloud-instance.com/remote.php/dav/calendars/username/shopping-list/\n\n# Grocy Configuration\nGROCY_HOST=https://your-grocy-instance.com\nGROCY_TOKEN=your-grocy-api-token\n```\n\n### Getting Your Configuration\n\n#### CalDAV Setup\n\n- **Nextcloud**: Use your Nextcloud credentials\n- **Other CalDAV servers**: Consult your provider's documentation\n\nTo find the correct calendar URL, start the container without setting the `CALDAV_SHOPPING_LIST_URL` environment variable. The application will list all available calendars and their URLs in the output.\n\n#### Grocy Setup\n1. Log into your Grocy instance\n2. Go to \"Manage API keys\" in user settings\n3. Create a new API key\n4. Use your Grocy base URL (without `/api`)\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhns-de%2Fshoppinglist_sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjhns-de%2Fshoppinglist_sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhns-de%2Fshoppinglist_sync/lists"}