Sync your Vikunja tasks (via API) with Google Calendar automatically. Each task becomes a calendar event linked to its project, with reminders for upcoming deadlines.
- Logs in to Vikunja and fetches all (or selected) projects
- Creates or updates Google Calendar events (no duplicates)
- Marks done tasks as ✅ and colors them green
- Skips unchanged overdue tasks
- Adds popup reminders: 1 week, 3 days, 2 days, 1 day, and same day
- Exports an optional
.icsbackup file - Tracks state locally (
.state/state.json)
-
Create a Google Cloud project and enable the Google Calendar API
- Create OAuth credentials → Desktop app
- Download
credentials.json→ place it in this folder
-
Copy and edit the environment file
cp .env.example .env
Fill in your Vikunja URL, username, and password.
-
Install dependencies
python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt -
Run the sync
python vikunja_sync.py
The first run opens a browser window to authorize Google access and creates
token.json.
Add a cron job to run every 15 minutes:
*/15 * * * * cd /path/to/vikunja-gcal-sync && /path/to/.venv/bin/python vikunja_sync.py- All configuration is handled in
.env - The script safely refreshes your Google token automatically
- You can manually delete
.state/state.jsonto rebuild mappings if needed