Loading...
Loading...
Google Calendar via Composio API. Use when: (1) Creating calendar events with correct durations (2) Finding/searching events (3) Updating or deleting events (4) Finding free time slots CRITICAL: CREATE and UPDATE use DIFFERENT duration parameters. This skill prevents the common 30-minute default bug.
npx skill4agent add prashaantr/teach-claude-something-new composio-calendar| Action | Duration Method | Example |
|---|---|---|
| | |
| | |
| | |
end_datetimeCOMPOSIO_API_KEY # API key
COMPOSIO_USER_ID # Entity ID (required for all requests)
COMPOSIO_CONNECTIONS # JSON with .googlecalendar connection IDCONNECTION_ID=$(echo $COMPOSIO_CONNECTIONS | jq -r '.googlecalendar')
curl -s "https://backend.composio.dev/api/v3/tools/execute/ACTION_NAME" \
-H "x-api-key: $COMPOSIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"connected_account_id": "'$CONNECTION_ID'",
"entity_id": "'$COMPOSIO_USER_ID'",
"arguments": {}
}' | jq '.data'curl -s "https://backend.composio.dev/api/v3/tools/execute/GOOGLECALENDAR_CREATE_EVENT" \
-H "x-api-key: $COMPOSIO_API_KEY" -H "Content-Type: application/json" \
-d '{
"connected_account_id": "'$CONNECTION_ID'",
"entity_id": "'$COMPOSIO_USER_ID'",
"arguments": {
"title": "Work Block: API Docs",
"start_datetime": "2026-02-24T09:00:00",
"event_duration_hour": 2,
"event_duration_minutes": 0,
"timezone": "America/Los_Angeles",
"description": "Focus time for API documentation",
"calendar_id": "primary"
}
}' | jqevent_duration_minutesevent_duration_hour: 1, event_duration_minutes: 30event_duration_hour: 2, event_duration_minutes: 0calendar_idcreate_meeting_roomtimezonecurl -s "https://backend.composio.dev/api/v3/tools/execute/GOOGLECALENDAR_FIND_EVENT" \
-H "x-api-key: $COMPOSIO_API_KEY" -H "Content-Type: application/json" \
-d '{
"connected_account_id": "'$CONNECTION_ID'",
"entity_id": "'$COMPOSIO_USER_ID'",
"arguments": {
"text_query": "API Docs",
"time_min": "2026-02-24T00:00:00Z",
"time_max": "2026-02-25T00:00:00Z",
"calendar_id": "primary"
}
}' | jqGOOGLECALENDAR_FIND_EVENTevent_idcurl -s "https://backend.composio.dev/api/v3/tools/execute/GOOGLECALENDAR_PATCH_EVENT" \
-H "x-api-key: $COMPOSIO_API_KEY" -H "Content-Type: application/json" \
-d '{
"connected_account_id": "'$CONNECTION_ID'",
"entity_id": "'$COMPOSIO_USER_ID'",
"arguments": {
"event_id": "abc123",
"calendar_id": "primary",
"end_datetime": "2026-02-24T11:00:00"
}
}' | jqcurl -s "https://backend.composio.dev/api/v3/tools/execute/GOOGLECALENDAR_DELETE_EVENT" \
-H "x-api-key: $COMPOSIO_API_KEY" -H "Content-Type: application/json" \
-d '{
"connected_account_id": "'$CONNECTION_ID'",
"entity_id": "'$COMPOSIO_USER_ID'",
"arguments": {
"event_id": "abc123",
"calendar_id": "primary"
}
}' | jqcurl -s "https://backend.composio.dev/api/v3/tools/execute/GOOGLECALENDAR_FREE_BUSY" \
-H "x-api-key: $COMPOSIO_API_KEY" -H "Content-Type: application/json" \
-d '{
"connected_account_id": "'$CONNECTION_ID'",
"entity_id": "'$COMPOSIO_USER_ID'",
"arguments": {
"time_min": "2026-02-24T09:00:00Z",
"time_max": "2026-02-24T18:00:00Z"
}
}' | jqstart_datetimeevent_duration_hourevent_duration_minutesstart: 09:00, duration: 2hstart: 11:30, duration: 2hstart: 14:00, duration: 2hGOOGLECALENDAR_FIND_EVENTGOOGLECALENDAR_PATCH_EVENTend_datetimeYYYY-MM-DDTHH:MM:SS2026-02-24T09:00:002026-02-24T09:00:00-08:00timezonecurl -s "https://backend.composio.dev/api/v2/actions?apps=googlecalendar" \
-H "x-api-key: $COMPOSIO_API_KEY" | jq '.items[] | {name, description}'