calendar

Display calendar views and enable interactive meeting time selection.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "calendar" with this command: npx skills add dvdsgl/claude-canvas/dvdsgl-claude-canvas-calendar

Calendar Canvas

Display calendar views and enable interactive meeting time selection.

Example Prompts

Try asking Claude:

  • "Schedule a 30-minute meeting with Alice and Bob sometime next week"

  • "Find a time when the engineering team is all free on Tuesday"

  • "Show me my calendar for this week"

  • "When is everyone available for a 1-hour planning session?"

  • "Block off 2-4pm on Friday for focused work"

Scenarios

display (default)

View-only calendar display. User can navigate weeks but cannot select times.

bun run src/cli.ts show calendar --scenario display --config '{ "title": "My Week", "events": [ {"id": "1", "title": "Meeting", "startTime": "2025-01-06T09:00:00", "endTime": "2025-01-06T10:00:00"} ] }'

meeting-picker

Interactive scenario for selecting a free time slot when viewing multiple people's calendars.

  • Shows multiple calendars overlaid with different colors

  • User can click on free slots to select a meeting time

  • Selection is sent back via IPC

  • Supports configurable time slot granularity (15/30/60 min)

bun run src/cli.ts spawn calendar --scenario meeting-picker --config '{ "calendars": [ { "name": "Alice", "color": "blue", "events": [ {"id": "1", "title": "Standup", "startTime": "2025-01-06T09:00:00", "endTime": "2025-01-06T09:30:00"} ] }, { "name": "Bob", "color": "green", "events": [ {"id": "2", "title": "Call", "startTime": "2025-01-06T14:00:00", "endTime": "2025-01-06T15:00:00"} ] } ], "slotGranularity": 30, "minDuration": 30, "maxDuration": 120 }'

Configuration

Display Config

interface CalendarConfig { title?: string; events: CalendarEvent[]; }

interface CalendarEvent { id: string; title: string; startTime: string; // ISO datetime endTime: string; // ISO datetime color?: string; // blue, green, red, yellow, magenta, cyan }

Meeting Picker Config

interface MeetingPickerConfig { calendars: Calendar[]; slotGranularity?: number; // 15, 30, or 60 minutes (default: 30) minDuration?: number; // Minimum meeting duration in minutes maxDuration?: number; // Maximum meeting duration in minutes }

interface Calendar { name: string; // Person's name color: string; // Calendar color events: CalendarEvent[]; // Their busy times }

Controls

Display scenario:

  • ←/→ or h/l : Navigate between days

  • n or PageDown : Next week

  • p or PageUp : Previous week

  • t : Jump to today

  • q or Esc : Quit

Meeting picker scenario:

  • Mouse click: Select a free time slot

  • ←/→ : Navigate weeks

  • t : Jump to today

  • q or Esc : Cancel selection

Selection Result

interface MeetingSelection { startTime: string; // ISO datetime endTime: string; // ISO datetime duration: number; // Minutes }

API Usage

import { pickMeetingTime } from "${CLAUDE_PLUGIN_ROOT}/src/api";

const result = await pickMeetingTime({ calendars: [ { name: "Alice", color: "blue", events: [...] }, { name: "Bob", color: "green", events: [...] }, ], slotGranularity: 30, });

if (result.success && result.data) { console.log(Selected: ${result.data.startTime} - ${result.data.endTime}); }

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

flight

No summary provided by upstream source.

Repository SourceNeeds Review
General

document

No summary provided by upstream source.

Repository SourceNeeds Review
General

canvas

No summary provided by upstream source.

Repository SourceNeeds Review
General

calendar

No summary provided by upstream source.

Repository SourceNeeds Review