From calendrome
Quick calendar block — create a Google Calendar event starting now for ad-hoc work. Use when the user runs `/calendrome:block`, says "block 30 minutes for X", "block an hour", "I'm about to work on X", "next hour on Y", or wants to capture ad-hoc time without leaving the conversation. Applies the user's configured client prefixes automatically when the activity matches a project name.
How this skill is triggered — by the user, by Claude, or both
Slash command
/calendrome:block [duration] [title] — duration like 30m, 1h, 1.5h. Title can include client prefix or be inferred from project_prefixes.[duration] [title] — duration like 30m, 1h, 1.5h. Title can include client prefix or be inferred from project_prefixes.This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Single-purpose: turn "I'm about to work on X for an hour" into a calendar event in one step.
Single-purpose: turn "I'm about to work on X for an hour" into a calendar event in one step.
calendar_timezone — default for eventscalendar_id — defaults to primary if absentproject_prefixes — {prefix, project_id, name} for auto-prefix matchingIf the settings file is missing, default to America/Chicago + primary and skip auto-prefix.
If the user specifies a non-default timezone ("8pm Rio", "7pm Berlin"), convert to calendar_timezone for the API but confirm in both timezones. Aliases: Rio → America/Sao_Paulo, Berlin → Europe/Berlin.
Parse $ARGUMENTS:
30m, 45m, 1h, 1.5h, 90m). Default 30m.| Input | Duration | Title |
|---|---|---|
(none) | 30m (after asking) | (asked) |
45m ATN: Deploy hotfix | 45m | ATN: Deploy hotfix |
1h SAN: Code review PR #142 | 60m | SAN: Code review PR #142 |
PR review | 30m | PR review |
Extract duration and title.
If the title doesn't already start with a known prefix from project_prefixes, scan the title for case-insensitive substring matches against each entry's name. If a match is found, prepend the entry's prefix:. Otherwise leave the title alone — never guess.
Example with project_prefixes:
- prefix: ATN, name: Athletech News
- prefix: SAN, name: Sportsnaut
- prefix: AP, name: Alpha Particle
| Input title | Prefixed title |
|---|---|
| "Deploy hotfix" | "Deploy hotfix" (no match) |
| "Athletech bug fix" | "ATN: Athletech bug fix" |
| "ATN: Deploy" | "ATN: Deploy" (already prefixed) |
Compute "now" in <calendar_timezone>. Use Bash date if needed.
mcp__claude_ai_Google_Calendar__create_event with:
calendarId: <calendar_id>summary: prefixed titlestart.dateTime: now in ISO 8601 with <calendar_timezone> offsetstart.timeZone: <calendar_timezone>end.dateTime: now + durationend.timeZone: <calendar_timezone>One-line confirmation:
Blocked: [title] [HH:MM]-[HH:MM]
Example:
Blocked: ATN: Deploy hotfix 14:30-15:15
That's the whole skill. No follow-up unless the user asks.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub mklute101/calendrome --plugin calendrome