89 lines
2.0 KiB
Markdown
89 lines
2.0 KiB
Markdown
# 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.
|