Calendar Hold Sync

PassAudited by VirusTotal on May 12, 2026.

Overview

Type: OpenClaw Skill Name: calendar-hold-sync Version: 1.0.1 The skill is classified as suspicious due to the presence of a `gog.allowCustomCommands` configuration option, which, if enabled by the user, allows overriding `gog` CLI commands with templates. While the documentation in SKILL.md and README.md claims that rendered commands are executed as `argv` tokens (no shell interpolation), this is a critical vulnerability surface if the underlying execution environment's sanitization is imperfect, potentially leading to command injection. Additionally, the `install-cron` command provides a persistence mechanism, which is a high-privilege action, though it is a legitimate feature for a sync service. The skill itself does not contain malicious instructions or attempt to exploit these capabilities, and it explicitly warns users about the risks of enabling custom commands.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

The agent may be able to read source calendars and write target calendar holds using your configured Google accounts.

Why it was flagged

The skill uses existing Google account OAuth access through gog. This is expected for calendar syncing and limited to the calendar service, but it grants access to read and write calendar data for configured accounts.

Skill content
Require user OAuth already configured for each account used in `mappings`... Run `gog auth add you@gmail.com --services calendar`.
Recommendation

Use only calendar-scoped OAuth, review the mapped accounts/calendars, and test with dedicated calendars before normal use.

What this means

A non-dry-run reconcile can add, edit, or remove managed Busy hold events in target calendars.

Why it was flagged

The core workflow can mutate target calendar events, including deletions of managed stale holds. The dry-run and max-change controls make this purpose-aligned, but the user should notice the mutation authority.

Skill content
Reconcile idempotently:
- Create missing holds.
- Update drifted holds.
- Delete stale holds.
... Enforce `maxChangesPerRun`.
... Respect `dryRun`.
Recommendation

Run dry-run first, keep maxChangesPerRun conservative, and verify the SYNCV1-managed holds before allowing live changes.

What this means

Details from a source calendar may be copied into another calendar account even though the visible hold summary is just Busy.

Why it was flagged

The skill persists source event metadata, including the event title, into target event descriptions. Base64url is encoding, not encryption, so anyone or any app with access to target event details could decode it.

Skill content
Store source linkage in hold `description` as:

- `SYNCV1:<base64url(JSON)>`

JSON fields:

- `srcAccount`
- `srcCalendar`
- `eventId`
- `start`
- `end`
- `title`
Recommendation

Keep target calendars private, avoid shared target calendars, and consider omitting source titles from metadata if they are not required.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

Once enabled, scheduled sync may continue changing managed holds without a user manually running each reconcile.

Why it was flagged

The skill supports ongoing background-style operation through cron and polling watch mode. This is disclosed and fits scheduled calendar sync, but it can keep making calendar changes after setup.

Skill content
`hold-sync install-cron --mapping <name>|--all`
- `hold-sync watch --mapping <name>|--all [--dry-run] [--interval-seconds <n>]`
... Keep periodic scheduled reconcile as fallback even when watch mode is enabled.
Recommendation

Install cron/watch only after dry-run validation, document where it is installed, and know how to disable the scheduled job.

What this means

Installers relying only on registry metadata may underestimate the external CLI and account access needed.

Why it was flagged

The registry metadata does not declare the gog CLI or Google OAuth requirement, even though the skill documentation does. This is an under-declaration/provenance note rather than hidden behavior.

Skill content
Required binaries (all must exist): none ... Primary credential: none ... Capability signals: No capability tags were derived.
Recommendation

Before installing, confirm gog is the intended CLI, verify its source, and understand that Google Calendar OAuth must be configured separately.