diff --git a/README.md b/README.md new file mode 100644 index 0000000..e7cf319 --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# Obsidian-tasks + +A Python script that synchronizes tasks from an Obsidian vault to a Nextcloud +calendar. + +## Features + +- Parses task lists in Markdown files using specific syntax +- Supports due dates, start times, and scheduled times for tasks +- Automatically syncs completed tasks with the calendar +- Handles recurring tasks and priorities + +## Prerequisites + +- Python 3.7+ +- Poetry (for dependency management) +- Obsidian vault with task list markdown files +- Nextcloud server with CalDAV support + +## Setup + +### Step 1: Clone the repository + +```bash +git clone https://gitea.dresselhaus.cloud/Drezil/obsidian-tasks.git +cd obsidian-tasks +``` + +### Step 2: Configure environment variables + +Copy `env.example` to `.env` and fill in your values: + +```bash +cp env.example .env +nano .env +``` + +Required variables: + +- `OBSIDIAN_VAULT_PATH`: Path to your Obsidian vault (default: current + directory) +- `NEXTCLOUD_URL`: Your Nextcloud CalDAV URL +- `NEXTCLOUD_USER`: Your Nextcloud username +- `NEXTCLOUD_PASSWORD`: Your Nextcloud password or app-password (app-passwords + are VERY much preferred!) + +### Step 3: Install dependencies + +```bash +poetry install +``` + +### Step 4: Set up as a cronjob + +Add the following line to your crontab (edit with `crontab -e`): + +```bash +0 2 * * * cd /path/to/obsidian-tasks && poetry run python ./find_obsidian_tasks.py >> /var/log/obsidian-sync.log 2>&1 +``` + +This will run the script daily at 2 AM and log output to +`/var/log/obsidian-sync.log`. + +## Task Syntax + +Tasks are defined in Markdown files using this syntax: + +- `- [x] Completed task` or `- [-] Cancelled task` +- `- [ ] Pending task` +- `- [+/?!] Incomplete task` + +Optional metadata: + +- `📅 2025-12-31`: Due date +- `🛫 2025-12-31`: Start time +- `⏳ 2025-12-31`: Scheduled time (if different from due date) +- `🔁 weekly`: Recurrence pattern +- `‼` or `❗`: Priority indicator + +Example: + +``` +- [ ] 📝 Write documentation 📅 2025-12-31 ⏳ 2025-12-28 🔁 weekly ‼ +``` + +## License + +This project is licensed under the MIT License.