Calendar canvas for displaying events and picking meeting times. Use when showing calendar views or when users need to select available time slots.
Display calendar views and enable interactive meeting time selection.
Try asking Claude:
display (default)View-only calendar display. User can navigate weeks but cannot select times.
canvas_spawn({
kind: "calendar",
scenario: "display",
config: JSON.stringify({
title: "My Week",
events: [
{id: "1", title: "Meeting", startTime: "2025-01-06T09:00:00", endTime: "2025-01-06T10:00:00"}
]
})
})
meeting-pickerInteractive scenario for selecting a free time slot when viewing multiple people's calendars.
canvas_spawn({
kind: "calendar",
scenario: "meeting-picker",
config: JSON.stringify({
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
})
})
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
}
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
}
Display scenario:
<-/-> or h/l: Navigate between daysn or PageDown: Next weekp or PageUp: Previous weekt: Jump to todayq or Esc: QuitMeeting picker scenario:
<-/->: Navigate weekst: Jump to todayq or Esc: Cancel selectioninterface MeetingSelection {
startTime: string; // ISO datetime
endTime: string; // ISO datetime
duration: number; // Minutes
}
// Spawn meeting picker
const result = canvas_spawn({
kind: "calendar",
scenario: "meeting-picker",
config: JSON.stringify({
calendars: [
{ name: "Alice", color: "blue", events: [...] },
{ name: "Bob", color: "green", events: [...] },
],
slotGranularity: 30,
})
});
// Wait for user interaction, then close
// The canvas will send selection via IPC when user clicks
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity