https://github.com/jhns-de/shoppinglist_sync
A Python application that synchronizes shopping lists between Grocy and CalDAV-compatible calendar applications (like Nextcloud Tasks).
https://github.com/jhns-de/shoppinglist_sync
caldav grocy nextcloud tasks
Last synced: about 2 months ago
JSON representation
A Python application that synchronizes shopping lists between Grocy and CalDAV-compatible calendar applications (like Nextcloud Tasks).
- Host: GitHub
- URL: https://github.com/jhns-de/shoppinglist_sync
- Owner: jhns-de
- License: gpl-3.0
- Created: 2025-01-29T16:52:31.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-08-18T09:29:19.000Z (about 2 months ago)
- Last Synced: 2025-08-18T11:27:10.754Z (about 2 months ago)
- Topics: caldav, grocy, nextcloud, tasks
- Language: Python
- Homepage:
- Size: 59.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Shoppinglist Sync
A Python application that synchronizes shopping lists between [Grocy](https://grocy.info/) and CalDAV-compatible calendar applications (like Nextcloud Tasks).
## Features
- **Automatic Sync**: Runs every 15 minutes to keep your shopping lists in sync
- **Unidirectional Updates**: Handles new items and quantity changes
- **Docker Support**: Easy deployment with Docker and Docker Compose## How it Works
1. Retrieves shopping list items from Grocy
2. Syncs new items to your CalDAV calendar as TODO items
3. Updates quantities when they change in Grocy
4. Maintains sync state in local SQLite database## Requirements
- Python 3.9+
- Grocy instance with API access
- CalDAV-compatible calendar server (Nextcloud, etc.)## Installation
### Using Docker (Recommended)
1. Download the `docker-compose.yml` and the `.env.example`
2. Rename `.env.example` to `.env` and configure the environment variables
3. Start the service: `docker-compose up -d`## Environment Variables
Create a `.env` file or set the following environment variables:
```env
# CalDAV Server Configuration
CALDAV_HOST=https://your-nextcloud-instance.com/remote.php/dav
CALDAV_USER=your-username
CALDAV_PASSWORD=your-password
CALDAV_SHOPPING_LIST_URL=https://your-nextcloud-instance.com/remote.php/dav/calendars/username/shopping-list/# Grocy Configuration
GROCY_HOST=https://your-grocy-instance.com
GROCY_TOKEN=your-grocy-api-token
```### Getting Your Configuration
#### CalDAV Setup
- **Nextcloud**: Use your Nextcloud credentials
- **Other CalDAV servers**: Consult your provider's documentationTo 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.
#### Grocy Setup
1. Log into your Grocy instance
2. Go to "Manage API keys" in user settings
3. Create a new API key
4. Use your Grocy base URL (without `/api`)## License
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.