book-google-meet

Create scheduled Google Calendar events with OPEN access Google Meet spaces.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "book-google-meet" with this command: npx skills add KumaDun/book-google-meet

book-google-meet

Create scheduled Google Calendar events with OPEN access Google Meet spaces.

Quick Start

# 1. Install dependencies
pip install -r requirements.txt

# 2. Get OAuth credentials from Google Cloud Console
#    - Enable Google Calendar API and Google Meet API
#    - Create OAuth 2.0 Desktop app credentials
#    - Download client_secrets.json

# 3. Place client_secrets.json in the skill directory

# 4. Run the script
python book_meeting.py --title "My Meeting" --date "2026-03-12" --time "15:00" --duration 45 --timezone "Asia/Shanghai"

Prerequisites

1. Google Cloud Project Setup

  1. Go to Google Cloud Console
  2. Create a new project
  3. Enable APIs:

2. OAuth Consent Screen

  1. Go to OAuth consent screen
  2. Select External user type
  3. Fill in app name and contact email
  4. Add scope: https://www.googleapis.com/auth/meetings.space.settings
  5. Set publishing status to In production

3. Create OAuth Credentials

  1. Go to Credentials
  2. Click Create CredentialsOAuth client ID
  3. Select Desktop app application type
  4. Download JSON and save as client_secrets.json

Alternative: Set environment variables instead of using client_secrets.json:

export GOOGLE_CLIENT_ID='your-client-id'
export GOOGLE_CLIENT_SECRET='your-client-secret'

Required OAuth Scopes

https://www.googleapis.com/auth/calendar.events
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/meetings.space.settings

Note: Use meetings.space.settings (non-sensitive) instead of meetings.space.created (sensitive).

Usage

Basic Usage

python book_meeting.py --title "Team Meeting" --date "2026-03-12" --time "15:00" --duration 45 --timezone "Asia/Shanghai"

With Attendees

python book_meeting.py --title "Team Meeting" --date "2026-03-12" --time "15:00" --duration 45 \
  --timezone "Asia/Shanghai" \
  --attendees "user1@example.com,user2@example.com"

With Description

python book_meeting.py --title "Team Meeting" --date "2026-03-12" --time "15:00" --duration 45 \
  --timezone "Asia/Shanghai" \
  --description "Weekly sync meeting"

Access Types

# OPEN - Anyone with link can join (default)
python book_meeting.py --title "Public Meeting" --date "2026-03-12" --time "15:00" --duration 45 \
  --timezone "Asia/Shanghai" --access-type OPEN

# TRUSTED - Org members + invited external users
python book_meeting.py --title "Internal Meeting" --date "2026-03-12" --time "15:00" --duration 45 \
  --timezone "Asia/Shanghai" --access-type TRUSTED

# RESTRICTED - Only invitees
python book_meeting.py --title "Private Meeting" --date "2026-03-12" --time "15:00" --duration 45 \
  --timezone "Asia/Shanghai" --access-type RESTRICTED

Command Line Options

OptionDescriptionDefault
--title, -tMeeting title (required)-
--date, -dMeeting date (YYYY-MM-DD)-
--timeMeeting start time (HH:MM)-
--durationDuration in minutes45
--timezone, -zTimezoneAmerica/New_York
--attendeesComma-separated email list-
--descriptionMeeting description-
--access-typeOPEN, TRUSTED, or RESTRICTEDOPEN
--credentials, -cPath to client_secrets.jsonclient_secrets.json
--token-pathPath to store OAuth tokenmeeting_token.pickle

Output Example

🚀 Step 1: Creating Calendar event with Meet conference...
✅ Calendar event created with Meet conference
   Meeting Code: abc-defg-hij

🚀 Step 2: Looking up Meet space using meeting code...
✅ Found Meet space: spaces/xxxxxxxxxx

🚀 Step 3: Patching Meet space to OPEN access...
✅ Meet space patched successfully!
   Access Type: OPEN

============================================================
✅ Meeting created successfully!
============================================================

📅 Title: Team Meeting
🕐 Start: 2026-03-12T15:00:00
🕐 End: 2026-03-12T15:45:00
🌐 Timezone: Asia/Shanghai

🔗 Meet URL: https://meet.google.com/abc-defg-hij
📞 Meeting Code: abc-defg-hij
🔓 Access Type: OPEN
🆔 Space Name: spaces/xxxxxxxxxx

📧 Calendar Link: https://calendar.google.com/calendar/event?eid=...
🆔 Event ID: xxxxxxxxxxxxxx
============================================================

How It Works

  1. Calendar API - Create event with Meet conference
  2. Meet API (spaces.get) - Look up Meet space using meeting code
  3. Meet API (spaces.patch) - Update space to set accessType=OPEN

Troubleshooting

403 Permission Denied

Cause: Using meetings.space.created scope (sensitive) without additional verification.

Solution: Use meetings.space.settings scope (non-sensitive) instead. Already fixed in the script.

API Not Enabled

Enable both APIs in Google Cloud Console:

Invalid Credentials

Delete meeting_token.pickle to force re-authentication:

rm meeting_token.pickle

Files

  • book_meeting.py - Main script
  • client_secrets.json - OAuth credentials (you provide)
  • meeting_token.pickle - Cached OAuth token (auto-generated)
  • requirements.txt - Python dependencies

Security Notes

⚠️ Sensitive Files:

FileDescriptionSecurity
meeting_token.pickleCached OAuth tokens (contains refresh token)Keep secure; delete when not needed; do not commit to version control
client_secrets.jsonOAuth client credentialsNever commit to version control; protect as password

⚠️ Token File Warning: The script writes meeting_token.pickle to disk after first OAuth authorization. This file contains sensitive OAuth tokens including refresh tokens that can be used to access your Google account. Protect this file:

  • Do not share it
  • Do not commit it to version control
  • Delete it when no longer needed
  • Ensure proper file permissions (readable only by owner)

References

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

test_skill

import json import tkinter as tk from tkinter import messagebox, simpledialog

Archived SourceRecently Updated
General

magister.net

Fetch schedule, grades, and infractions from https://magister.net 🇳🇱 portal

Registry SourceRecently Updated
1400ghuron
General

Official Doc

公文写作助手。通知、报告、请示、批复、会议纪要、工作总结、格式检查、语气检查、模板库。Official document writer for notices, reports, requests, meeting minutes with format check, tone check, template l...

Registry SourceRecently Updated
2392ckchzh
General

Douyin Creator

抖音内容创作与运营助手。抖音运营、抖音涨粉、短视频创作、抖音标题、抖音标签、抖音SEO、抖音账号运营、抖音数据分析、抖音选题、抖音脚本、抖音文案、抖音评论区运营、抖音人设定位、抖音发布时间、DOU+投放、抖音流量、短视频运营、视频创意、直播脚本、话题标签策略、合拍翻拍创意、抖音变现、带货星图、Douyin con...

Registry SourceRecently Updated
book-google-meet | V50.AI