added README

This commit is contained in:
Nicole Dresselhaus 2025-05-04 16:31:25 +02:00
parent 0424408ba5
commit 4b9a554e8c

88
README.md Normal file
View File

@ -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.