home / skills / composiohq / awesome-claude-skills / googlecalendar-automation

googlecalendar-automation skill

/googlecalendar-automation

This skill automates Google Calendar tasks via Rube MCP, discovering current tool schemas first to ensure accurate, compliant execution.

npx playbooks add skill composiohq/awesome-claude-skills --skill googlecalendar-automation

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.0 KB
---
name: googlecalendar-automation
description: "Automate Google Calendar tasks via Rube MCP (Composio). Always search tools first for current schemas."
requires:
  mcp: [rube]
---

# Google Calendar Automation via Rube MCP

Automate Google Calendar operations through Composio's Google Calendar toolkit via Rube MCP.

**Toolkit docs**: [composio.dev/toolkits/googlecalendar](https://composio.dev/toolkits/googlecalendar)

## Prerequisites

- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Google Calendar connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `googlecalendar`
- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas

## Setup

**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.

1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `googlecalendar`
3. If connection is not ACTIVE, follow the returned auth link to complete setup
4. Confirm connection status shows ACTIVE before running any workflows

## Tool Discovery

Always discover available tools before executing workflows:

```
RUBE_SEARCH_TOOLS
queries: [{use_case: "Google Calendar operations", known_fields: ""}]
session: {generate_id: true}
```

This returns available tool slugs, input schemas, recommended execution plans, and known pitfalls.

## Core Workflow Pattern

### Step 1: Discover Available Tools

```
RUBE_SEARCH_TOOLS
queries: [{use_case: "your specific Google Calendar task"}]
session: {id: "existing_session_id"}
```

### Step 2: Check Connection

```
RUBE_MANAGE_CONNECTIONS
toolkits: ["googlecalendar"]
session_id: "your_session_id"
```

### Step 3: Execute Tools

```
RUBE_MULTI_EXECUTE_TOOL
tools: [{
  tool_slug: "TOOL_SLUG_FROM_SEARCH",
  arguments: {/* schema-compliant args from search results */}
}]
memory: {}
session_id: "your_session_id"
```

## Known Pitfalls

- **Always search first**: Tool schemas change. Never hardcode tool slugs or arguments without calling `RUBE_SEARCH_TOOLS`
- **Check connection**: Verify `RUBE_MANAGE_CONNECTIONS` shows ACTIVE status before executing tools
- **Schema compliance**: Use exact field names and types from the search results
- **Memory parameter**: Always include `memory` in `RUBE_MULTI_EXECUTE_TOOL` calls, even if empty (`{}`)
- **Session reuse**: Reuse session IDs within a workflow. Generate new ones for new workflows
- **Pagination**: Check responses for pagination tokens and continue fetching until complete

## Quick Reference

| Operation | Approach |
|-----------|----------|
| Find tools | `RUBE_SEARCH_TOOLS` with Google Calendar-specific use case |
| Connect | `RUBE_MANAGE_CONNECTIONS` with toolkit `googlecalendar` |
| Execute | `RUBE_MULTI_EXECUTE_TOOL` with discovered tool slugs |
| Bulk ops | `RUBE_REMOTE_WORKBENCH` with `run_composio_tool()` |
| Full schema | `RUBE_GET_TOOL_SCHEMAS` for tools with `schemaRef` |

---
*Powered by [Composio](https://composio.dev)*

Overview

This skill automates Google Calendar tasks using Composio's Google Calendar toolkit via a Rube MCP server. It orchestrates discovery, connection management, and tool execution so agents can create, update, query, and bulk-manage calendar data. The workflow enforces live tool schema discovery and connection checks to avoid runtime errors.

How this skill works

Before any action, the skill calls RUBE_SEARCH_TOOLS to retrieve current tool slugs and input schemas. It then verifies or establishes a Google Calendar connection via RUBE_MANAGE_CONNECTIONS and runs operations with RUBE_MULTI_EXECUTE_TOOL (including a memory object and consistent session_id). For bulk or complex runs it can delegate to RUBE_REMOTE_WORKBENCH; fetches and pagination are handled according to returned tokens and schemaRefs.

When to use it

  • Create, update, or delete events programmatically from an agent
  • Sync or query calendar data for scheduling assistants and dashboards
  • Perform bulk calendar operations or migrations with remote workbench
  • When tool schemas might change frequently or you need schema-driven execution
  • Automate recurring workflows that require session reuse and state

Best practices

  • Always call RUBE_SEARCH_TOOLS first — do not hardcode tool slugs or argument shapes
  • Confirm RUBE_MANAGE_CONNECTIONS shows ACTIVE for toolkit "googlecalendar" before executing tools
  • Pass a memory object (even empty) and reuse a session_id within a workflow
  • Follow exact field names and types returned in the tool schema; use RUBE_GET_TOOL_SCHEMAS if provided
  • Handle pagination tokens returned by tools and iterate until complete

Example use cases

  • Agent creates a meeting with attendees, description, and conferencing link using discovered tool schema
  • Bulk-create events from a CSV by running RUBE_REMOTE_WORKBENCH with run_composio_tool() calls
  • Fetch a calendar view for a date range for a scheduling UI, handling pagination tokens
  • Check and refresh connection status programmatically, then run a follow-up event update
  • Run multi-step workflows: search for available times, propose options to attendees, then book the selected slot

FAQ

Do I need API keys to use Rube MCP?

No API keys are required; add https://rube.app/mcp as an MCP server in your client configuration to connect.

What if a tool schema changes mid-workflow?

Always call RUBE_SEARCH_TOOLS at the start of each workflow and validate schema fields before building arguments; generate a new session_id for a new workflow.

Is memory required for executions?

Yes — include a memory parameter in RUBE_MULTI_EXECUTE_TOOL calls; it can be an empty object ({}) but must be present.