Wiki · Integrations
Google Workspace
Answer one question first: do you need e-mail, or the whole Workspace? Everything else follows from that.
📨
Answer one question first: do you need e-mail, or the whole Workspace?
If you only read and send mail, the himalaya skill with an app password is enough — two minutes
and no Google Cloud project. The Google Workspace skill is Gmail plus Calendar, Drive,
Sheets and Docs, which is why it needs OAuth through a cloud project.
Two paths to mail
| himalaya (e-mail only) | Google Workspace skill | |
|---|---|---|
| Setup | App password, 2 minutes | Google Cloud project, OAuth, 15–30 minutes |
| Can do | Read, search, send mail | Gmail, Calendar, Drive, Sheets, Docs, Contacts |
| Access | IMAP/SMTP with a password | OAuth2 with token refresh |
| For most people | Almost always enough | When the agent must really schedule meetings and handle files |
Setting up the Workspace skill
The agent drives the whole setup — ask it to set up Google Workspace and it walks you through:
1) create a Google Cloud project and enable the APIs:
Gmail, Calendar, Drive, Sheets, Docs, People
2) create OAuth 2.0 credentials of type "Desktop app"
and download the client secret JSON
3) authorise: the agent generates a link, you approve it in the browser
and paste back the redirect URL
4) done — the token refreshes itself from then on
🔐
The client secret and the resulting token are
credentials to your mailbox. Never commit them or paste them into chat. If the project is
no longer needed, revoke access in your Google account (Security → Third-party apps).
What the agent can do
| Area | Examples |
|---|---|
| Gmail — search | is:unread, from:boss@co.com newer_than:1d, has:attachment filename:pdf |
| Gmail — read and send | Reads the body; sends text, HTML, CC, and can set the sender display name |
| Calendar | Lists events, creates a meeting with location and attendees, deletes an event |
| Drive | File search (including type queries via raw query) |
| Sheets | Read a range, write, append rows |
| Docs and Contacts | Document text, contact list |
Calendar requires a timezone. A time like 2026-03-01T10:00:00
without +01:00 or Z is treated as UTC — and the meeting lands an hour or two off.
Always include the offset: 2026-03-01T10:00:00+01:00.
Things to watch
| Situation | What to do |
|---|---|
| Authorisation fails with “redirect_uri_mismatch” | The credentials are not of type Desktop app, or you pasted a different URL than Google returned |
| It stops working after a month | The cloud project is in testing mode — tokens expire there; publish the app or re-authorise |
| The agent sees no new mail | Check the skills are enabled and the project really has the Gmail API switched on |
| You only want mail | Use himalaya — less work and fewer permissions |
How we use it
Mail runs through himalaya (fast, no cloud); the Workspace skill is deployed where the agent really works with the calendar — for instance reading a date out of an e-mail and putting it in the calendar. Two habits stuck:
| Habit | Why |
|---|---|
| The agent proposes a meeting instead of writing it unasked | A wrong entry in someone else's calendar is worse than none |
| Sending from our address but with a robot display name | Recipients can tell an assistant wrote it |
| Using read-only app passwords where possible | Less damage if one leaks |
