Two Gmail accounts:
Status: ✅ Complete (Feb 10, 2026)
Token file: /home/node/.openclaw/credentials/google-gmail-tokens.json
Scopes: gmail.send + gmail.readonly
Refresh token: Saved (permanent access)
python3 gmail-send.py --to EMAIL --subject SUBJECT --body BODY [--from-name NAME]
Examples:
# Charlie accounting report
python3 gmail-send.py \
--to charlie@ztag.com \
--subject "Weekly Reconciliation Report" \
--body "$(cat report.txt)" \
--from-name "Minnie Accounting"
# Calendar update
python3 gmail-send.py \
--to quan@ztag.com \
--subject "Meeting Tomorrow: 2pm PT" \
--body "Reminder: Dev meeting at 2pm PT"
python3 google-gmail.py --account minnie@ztag.com --hours 24 --limit 10
python3 gmail-fetch.py --hours 24 --limit 50
Used by morning briefing and heartbeat.
python3 gmail-smart-triage.py --hours 48 --limit 50
Classifies emails as Important/Normal/Noise using AI (not keywords).
gmail-token-exchange.py - Exchange auth code for tokensgmail-test-account.py - Verify connected accountgmail-send-test.py - Test send capability✅ Ready Now:
🔄 Pending: