obsidian-tasks/README.md
Nicole Dresselhaus 4b9a554e8c added README
2025-05-04 16:31:25 +02:00

2.0 KiB

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

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:

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

poetry install

Step 4: Set up as a cronjob

Add the following line to your crontab (edit with crontab -e):

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.