Skip to content

v1.0.1

Choose a tag to compare

@riclib riclib released this 05 Jan 08:31
· 29 commits to master since this release

🎉 Welcome Our First Contributor!

A huge thank you to @niklashog for contributing multiple calendar support to the Google Calendar plugin! This is our first external contribution and we're thrilled to have you. 🙌

What's New

Google Calendar: Multiple Calendars Support

Contributed by @niklashog

Sync multiple Google Calendars with custom labels:

{
  "calendars": {
    "family@group.calendar.google.com": "Family",
    "work@group.calendar.google.com": "Work"
  }
}

Primary calendar is always synced. Add as many additional calendars as you need!

Sync Hub: Sync Locks

Prevents duplicate syncs when multiple Thymer tabs/windows are open:

  • Uses double-read pattern with random jitter (100-500ms)
  • Automatic stale lock recovery after 5 minutes
  • Shows toast notification if sync blocked by another instance

GitHub Plugin: Two-Field Design

Cleaner separation between GitHub state and your workflow:

Field Purpose
external_state GitHub's state (Open/Closed) - always synced
status Your workflow (Inbox → Backlog → Next → Doing → Done) - never touched
  • New issues land in Inbox for triage
  • Your kanban board stays independent from GitHub sync
  • No more conflicts between sync and workflow

Full Changelog

Sync Hub

  • Add sync_lock field with double-read pattern
  • 5-minute stale lock timeout

Issues Collection

  • Split state into external_state + status
  • Default workflow: Inbox, Backlog, Next, Doing, Done, Cancelled

GitHub Plugin

  • Simplified sync logic (removed ~40 lines of merge code)
  • New issues default to Inbox status

Google Calendar Plugin

  • Multiple calendars via calendars config mapping
  • Custom labels for each calendar

HAPPY THYMERING 🍀