Pushing the Vault to TickTick — Closing the Loop Between Obsidian and Task Management
The vault knows everything. It has the lesson schedule, the practice sessions, the quiz material. TickTick is where the day actually runs — it sits in the calendar, it sends reminders, it blocks time. For a while those two lived separately, and any reschedule meant updating both by hand.
Today that gap is closed.
The Problem
Obsidian is the source of truth for the learning plan. But TickTick is what I actually look at during the day. When a lesson moved, I’d update the calendar note in Obsidian and then forget to touch TickTick. Or update TickTick and leave the vault behind. Either way, something was always out of sync.
The fix wasn’t to pick one tool. It was to make the vault push to TickTick on demand.
Three Skills, Three Task Types
Lessons → TickTick
/sync-lesson-from-ticktick <N> handles the reverse direction — when a lesson gets rescheduled in TickTick, it updates the vault. But the groundwork for all of this is a table of 26 lesson task IDs, one per lesson, stored in Inbox/ticktick-lesson-ids.md. Every Docker and Kubernetes lesson has a permanent TickTick task ID that the skills can target directly.
The rule here is strict: one lesson at a time, never bulk. Syncing all 26 in one go would burn through ~18% of Claude Code’s context window. At ~1% per lesson, it stays fast and reliable.
Practice Sessions → TickTick
/sync-practice-to-ticktick <date|all> reads practice session calendar notes from calendar/devops-practice/ and creates TickTick tasks in the Practice Sessions project. Each note has a title, start time, and end time in its frontmatter — the skill reformats the title, sets the correct BST timestamps, and pushes the task with an orange colour marker.
Running it for a single date costs almost nothing. The all variant syncs every future practice note in one go — useful for a bulk catch-up, not for daily use.
Quizzes → TickTick
This one is new today. After /make-quiz assembles the quiz material note and /lesson-review has run, /quiz-to-ticktick <date> pushes the quiz to TickTick as a single task in the Quiz project.
It reads _Session Notes/YYYY-MM-DD — Quiz.md, extracts the lesson title and key questions for each lesson covered that day, and creates a yellow task at 20:15 BST with a 30-minute window. The task body lists each lesson with its three review questions underneath — everything needed for the Quiz & Review session, visible directly in TickTick without opening Obsidian.
Docker Quiz
─────────────────────────
Lesson 4 — Networking: Container Communication
1. How can a container communicate with the host machine?
2. How do two containers on the same Docker network communicate?
3. Why use container names instead of IP addresses?
One Rule That Holds Everything Together
Every skill that touches TickTick uses BST +01:00 for timestamps. No exceptions. The TickTick MCP doesn’t infer timezone from locale — pass the wrong offset and tasks land at the wrong hour. It bit us once with practice sessions arriving an hour early. It’s in the rules for every skill now.
What This Looks Like in Practice
Morning briefing shows today’s lessons and practice. After a lesson, /lesson-review schedules the spaced repetition and updates future Quiz & Review events. Before 20:00, /make-quiz builds the quiz note and /quiz-to-ticktick pushes it to TickTick. The Quiz & Review session runs. Everything that happened in Obsidian is reflected in TickTick without a single manual copy.
The vault is still the source of truth. TickTick is still what drives the day. Now they just agree with each other.
Next: testing the full loop with multiple lessons in a single quiz — and whether /make-quiz handles the multi-lesson format cleanly.