Skip to content
All Skills

Google Calendar Event Creator

Creates Google Calendar events from natural language descriptions using gcalcli or Calendar API. Handles recurring events, attendees, reminders, and conference links. Prerequisites: gcalcli, gcloud, curl, jq.

Calendar & Scheduling|v1|Updated 5/18/2026
MCP get_skill({ skillId: "google-calendar-event-creator-71119699" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# Google Calendar Event Creator

Create calendar events from natural language. Parses time, attendees, recurrence, and reminders, then creates the event in Google Calendar.

## When to Use

- "Schedule a meeting with Sarah tomorrow at 2pm"
- "Block 2 hours for deep work every morning this week"
- "Create a recurring 1:1 with my manager every Tuesday"

## Requirements

- **gcalcli** (`pip install gcalcli`) or **Google Cloud CLI** with Calendar API
- OAuth scopes: `calendar.events`

## Workflow

### Step 1 — Parse Natural Language Input

Extract from the user's request:
- **Title** — event name
- **Date/time** — start and end (infer duration: meetings=30min, focus=2h, lunch=1h)
- **Attendees** — email addresses
- **Recurrence** — one-time, daily, weekly, monthly
- **Location** — physical address or "Google Meet"
- **Reminders** — default or custom
- **Description** — agenda or notes

### Step 2 — Confirm Details

Show parsed event to user before creating:

```
📅 Event: Weekly 1:1 with Sarah
⏰ Tuesday, Apr 1, 2026 14:00 - 14:30
👥 Attendees: sarah@company.com
🔄 Recurrence: Every Tuesday
📍 Location: Google Meet (auto-generate link)
🔔 Reminder: 10 minutes before
```

Ask for confirmation.

### Step 3 — Create Event via gcalcli

```bash
# Simple event
gcalcli add --title "Weekly 1:1 with Sarah" \
  --when "Tuesday 2pm" \
  --duration 30 \
  --where "Google Meet" \
  --description "Weekly sync - discuss current sprint and blockers" \
  --reminder 10 \
  --noprompt

# Verify creation
gcalcli agenda "Tuesday" "Wednesday" --tsv
```

### Alternative: Create via Calendar API

```bash
ACCESS_TOKEN=$(gcloud auth print-access-token)

curl -s -X POST -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "summary": "Weekly 1:1 with Sarah",
    "location": "Google Meet",
    "description": "Weekly sync",
    "start": {"dateTime": "2026-04-01T14:00:00", "timeZone": "America/New_York"},
    "end": {"dateTime": "2026-04-01T14:30:00", "timeZone": "America/New_York"},
    "attendees": [{"email": "sarah@company.com"}],
    "recurrence": ["RRULE:FREQ=WEEKLY;BYDAY=TU"],
    "conferenceData": {"createRequest": {"requestId": "unique-id", "conferenceSolutionKey": {"type": "hangoutsMeet"}}},
    "reminders": {"useDefault": false, "overrides": [{"method": "popup", "minutes": 10}]}
  }' \
  "https://www.googleapis.com/calendar/v3/calendars/primary/events?conferenceDataVersion=1" | jq '{id: .id, link: .htmlLink, meet: .conferenceData.entryPoints[0].uri}'
```

### Step 4 — Handle Batch Creation

For requests like "block focus time every morning this week":
1. Calculate each day's time slot
2. Check for conflicts with existing events
3. Create event for each non-conflicting slot
4. Report: "Created 4 focus blocks (Mon-Thu). Friday conflicted with All-Hands."

### Step 5 — Confirm & Report

After creation, show:
- Event link (click to open in Google Calendar)
- Google Meet link (if applicable)
- Recurrence summary

## Important Rules

- Always check for conflicts before creating events
- Always confirm with user before creating (show preview first)
- Default to 30-min duration for meetings if not specified
- Use user's timezone from Google Calendar settings

## Example Prompts

- "Schedule a 1-hour deep work block tomorrow at 9am"
- "Create a 15-min standup every weekday at 9am with team@company.com"
- "Block my lunch from 12-1 every day this week"
#google-calendar#gcalcli#scheduling#automationgcalcligcloudcurljq