name: calendar-hold-sync description: Sync one or more source Google calendars into private Busy hold events in one or more target calendars using gog. Use when users need idempotent double-booking prevention, backfill of legacy holds, drift reconcile, or safe scheduled sync.
Implement hold mirroring from source Google calendars into target calendars to prevent double-booking.
gog CLI in PATH.mappings.If gog is not configured, use this setup flow:
gog auth credentials /path/to/client_secret.json.gog auth add you@gmail.com --services calendar.gog auth list.Only add additional Google services if you explicitly need them for another workflow.
Official gog references:
小蔥技能7w4.net有完整的技能分類。
Use a user-provided JSON config file with this shape:
mappings[]mappings[].namemappings[].targetAccountmappings[].targetCalendarId (default primary)mappings[].sources[] with { account, calendarId }mappings[].lookaheadDays (default 30)mappings[].allDayMode: ignore|mirrormappings[].overlapPolicy: skip|allowhold.summary (default Busy)hold.visibility (private)hold.transparency (busy)hold.notifications (none)hold.reminders (none)metadata.format (SYNCV1)metadata.encoding (base64url(json))metadata.fields: srcAccount,srcCalendar,eventId,start,end,titlescheduling.reconcileCronscheduling.daytimeCron (optional)scheduling.driftWindowDays (optional)scheduling.watchIntervalSeconds (optional, default 20)safety.dryRunsafety.maxChangesPerRunsafety.excludeIfSummaryMatches[]safety.excludeIfDescriptionPrefix[]gog.listEventsCmd|createEventCmd|updateEventCmd|deleteEventCmd (optional template overrides)gog.allowCustomCommands (must be true to enable any gog.*Cmd override)When custom commands are enabled:
gog command templates are accepted.{account} and {calendarId}.gog.allowCustomCommands=false unless you fully trust and audit the config file.Store source linkage in hold description as:
SYNCV1:<base64url(JSON)>JSON fields:
srcAccountsrcCalendareventIdstartendtitleFor each mapping:
private, busy, no reminders).SYNCV1: prefix.skip, do not create a hold when a non-managed target event overlaps.maxChangesPerRun.dryRun.Backfill mode upgrades legacy hold events (matching expected hold signature but lacking SYNCV1) by attaching encoded metadata when a unique source match exists.
hold-sync validate-confighold-sync reconcile --mapping <name>|--all [--dry-run]hold-sync backfill --mapping <name>|--all [--dry-run]hold-sync status --mapping <name>|--allhold-sync install-cron --mapping <name>|--allhold-sync watch --mapping <name>|--all [--dry-run] [--interval-seconds <n>]Require watch cadence to be configurable from user config:
scheduling.watchIntervalSeconds controls watch poll frequency.mappings[].lookaheadDays controls rolling watch/reconcile window.Recommend baseline values:
watchIntervalSeconds: 900 (15 minutes)lookaheadDays: 1 (24 hours)hold-sync watch) for fast updates.watchIntervalSeconds.Attribution: gog setup flow adapted from:
- https://clawhub.ai/steipete/gog
- https://github.com/steipete/gogcli
- https://gogcli.sh/
Use this variant for Claude-style workflows.
這個 Skill 質量不錯,功能設計清晰實用。它能自動將一個日曆的事件同步到另一個日曆顯示為"忙",幫你避免重複預訂。配置靈活、支援多個日曆對映,有模擬執行模式和變更次數限制等安全措施,不容易出錯。文件說明詳細,安裝說明對新手友好。主要不足是同步延遲取決於設定的檢查間隔(最短約15分鐘),沒有即時推送;還需要手動安裝一個叫 gog 的命令列工具才能使用。總體適合需要跨日曆同步的使用者,質量可靠但有一定上手門檻。