Skip to content

Using Google Workspace

Practical guide for working with Google Workspace (Gmail, Calendar, Drive, Sheets, Docs) through Fp Switchboard.

  • Calendar events must specify timezone (IANA format like America/Toronto)
  • Never mix date and dateTime fields in calendar events
  • Gmail thread IDs are user-specific — sender and recipient have different IDs
  • Drive file IDs must be extracted from URLs, never guessed
  • Sheets uses A1 notation (e.g., Sheet1!A1:D10)
  • Drive search accepts natural language OR Drive API syntax for precision

Calendar Timezone Required Critical

Section titled “Calendar Timezone Required ”

All calendar events must specify timeZone. Omitting it causes events to appear at wrong times.

Example
Wrong{"start": {"dateTime": "2025-01-15T14:00:00"}}
Correct{"start": {"dateTime": "2025-01-15T14:00:00-05:00"}, "timeZone": "America/Toronto"}

date vs dateTime Fields Critical

Section titled “date vs dateTime Fields ”

Use date for all-day events, dateTime for timed events. Never mix them in the same event.

Example
Wrong{"start": {"date": "2025-01-15", "dateTime": "2025-01-15T14:00:00"}}
Correct{"start": {"dateTime": "2025-01-15T14:00:00-05:00"}}

Gmail Thread IDs are User-Specific Critical

Section titled “Gmail Thread IDs are User-Specific ”

The same email conversation has different thread IDs for sender vs recipient. Never share thread IDs across users. Always search for threads within the same user context.

Drive File ID Extraction Critical

Section titled “Drive File ID Extraction ”

Extract the 33-character alphanumeric File ID from URLs. Never guess or construct IDs.

URL: docs.google.com/document/d/{FILE_ID}/edit
Example: 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms

Sheets A1 Notation Important

Section titled “Sheets A1 Notation ”

Sheet names with spaces need single quotes in range references.

Example
Wrongrange: "My Sheet!A1:D10"
Correctrange: "'My Sheet'!A1:D10"

Drive Search Syntax Important

Section titled “Drive Search Syntax ”

drive_search accepts natural language (auto-converted) OR native Drive API syntax for precise control.

  • Natural language: "budget report 2025" (simple, works most of the time)
  • Precise: name contains 'budget' and mimeType = 'application/pdf'
  • Combined: name contains 'Q1' and mimeType = 'application/pdf' and modifiedTime > '2025-01-01'
  1. Resolve attendee emails if only names provided
  2. Create event with sendUpdates: "all" to notify attendees
  3. Store returned eventId for future modifications
  1. Use drive_search with the filename or descriptive terms
  2. Extract the file ID from the response
  3. Use docs/sheets/slides tools with that ID
  1. Start with natural language: drive_search("quarterly report")
  2. If too broad, add type filter: name contains 'quarterly' and mimeType = 'application/vnd.google-apps.spreadsheet'
  3. For date filtering: modifiedTime > '2025-01-01'
  4. Combine: name contains 'budget' and mimeType = 'application/pdf' and modifiedTime > '2025-01-01'
ID TypeFormatExample
File ID33-char alphanumeric1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
Thread IDHexadecimal string17c5a9b8e3f2d1a0
Event IDBase32-like stringck4t8g9h5n8s3k2j1m0
Message IDHexadecimal string18a5b2c3d4e5f6a7
  • “Create a meeting tomorrow at 2pm EST with john@company.com
  • “Search Drive for the Q4 budget spreadsheet”
  • “Send an email to the team about the project update”
  • “List my unread Gmail messages from this week”
  • “Find all PDF files in Drive modified this month”

Google Workspace APIs have per-service rate limits:

ServiceLimit
Gmail250 quota units/second
Calendar500 requests/100 seconds
Drive12,000 requests/minute
Sheets300 requests/minute