Przejdź do treści
Biblioteka skilli
Dokumenty i biuro · Integracja z narzędziem

google

/google

Czyta, sortuje, pisze i wysyła pocztę Gmail oraz czyta i zmienia kalendarz Google przez API Google.

Repozytorium
den ↗
Licencja
Apache-2.0
Ostatnia zmiana repozytorium
13.11.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
5
Przestarzałość

Brak sygnałów. Repozytorium zmienione 13.11.2026, bez odwołań do wycofanych modeli i API.

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co robi i kiedy

Czyta, sortuje, pisze i wysyła pocztę Gmail oraz czyta i zmienia kalendarz Google przez API Google.

Oryginalny opis (EN)

Read, sort, draft, and send the user's Gmail, and read and change their Google Calendar, through the Google APIs with den fetch. Use for any task on their mail or calendar.

Jak działa

  1. What waits for the user
  2. Mail
  3. Writing mail
  4. Calendar
  5. Local findings
Sekcje z nagłówków SKILL.md, w oryginale · 65 linii, 642 słów
Podgląd SKILL.md
---
name: google
description: Read, sort, draft, and send the user's Gmail, and read and change their Google Calendar, through the Google APIs with den fetch. Use for any task on their mail or calendar.
---

# google

den holds the user's Google tokens and adds them to each request. You never see them, so never ask the user for a password or a token.

```bash
den fetch --secret google https://gmail.googleapis.com/gmail/v1/users/me/profile
```

When den answers that Google is not connected or not set up, tell the user to run `den connect google` on their computer. When Google answers `403` with `SERVICE_DISABLED`, the user has to enable that API (Gmail API or Google Calendar API) in their Google Cloud project under APIs & Services → Library; reconnecting does not help. den can reach Gmail and Calendar only, not Drive or other services.

## What waits for the user

Reads, labels, archiving, trash, drafts, and events with no other people on them go at once. den asks the user in Telegram first before mail goes out (`messages/send`, `drafts/send`), before an event with other people on it is created or changed, before anyone is notified (`sendUpdates`, `sendNotifications`), and before an event is cancelled or deleted. The user sees the mail's recipients, subject, and text. A draft goes only as the user saw it: change it after asking and den does not send it. den refuses batch requests and method-override headers; send each request on its own. Such a request returns at once, saying den asked: den sends it once the user allows it and tells you the service's answer in a new `[den:` message. The user already sees den's question, so do not tell them you asked, and do not send it again.

Prefer a draft when the user did not ask you to send: they can read and send it from Gmail themselves.

## Mail

```bash
g=https://gmail.googleapis.com/gmail/v1/users/me
den fetch --secret google "$g/messages?q=is:unread+newer_than:2d&maxResults=20" | jq -r '.messages[]?.id'
den fetch --secret google "$g/messages/<id>?format=metadata&metadataHeaders=From&metadataHeaders=Subject&metadataHeaders=Date" | jq '{snippet, headers: .payload.headers}'
den fetch --secret google "$g/messages/<id>?format=full" > msg.json
den fetch --secret google -d '{"removeLabelIds":["UNREAD"]}' "$g/messages/<id>/modify"
den fetch --secret google -X POST "$g/messages/<id>/trash"
```

- `q` takes Gmail's search syntax: `from:`, `subject:`, `has:attachment`, `label:`, `after:2026/01/31`, `in:inbox`.
- A message's text is in `.payload.parts[]` (or `.payload.body`) as base64url `data`: decode with `tr '_-' '/+' | base64 -d`, padding with `=` if needed. Prefer the `text/plain` part.
- An attachment is `GET $g/messages/<id>/attachments/<attachmentId>`, its `.data` in base64url.
- Fetch many messages with `format=metadata` first, and the full ones you need after.

## Writing mail

Write the message as a file with CRLF line ends, then upload it as it is:

```bash
subject="=?UTF-8?B?$(printf %s "Résumé for review" | base64 -w0)?="
printf 'To: Name <name@example.com>\r\nSubject: %s\r\nContent-Type: text/plain; charset=UTF-8\r\n\r\n%s\r\n' "$subject" "$text" > mail.eml
den fetch --secret google -H 'Content-Type: message/rfc822' -d @mail.eml "https://www.googleapis.com/upload/gmail/v1/users/me/drafts?uploadType=media"
den fetch --secret google -H 'Content-Type: message/rfc822' -d @mail.eml "https://www.googleapis.com/upload/gmail/v1/users/me/messages/send?uploadType=media"
den fetch --secret google -d '{"id":"<draftId>"}' "$g/drafts/send"
```

- A reply keeps its thread: add `In-Reply-To:` and `References:` with the original's `Message-ID`, keep the subject with `Re: `, and send JSON with the thread id instead of the upload: `jq -n --arg raw "$(base64 -w0 mail.eml | tr '+/' '-_')" --arg t <threadId> '{raw: $raw, threadId: $t}' | den fetch --secret google -d @- "$g/messages/send"`.
- Leave out `From:`; Gmail uses the account's address.

## Calendar

```bash
c=https://www.googleapis.com/calendar/v3/calendars/primary
den fetch --secret google "$c/events?singleEvents=true&orderBy=startTime&timeMin=$(date -u +%FT%TZ)&maxResults=20" | jq -r '.items[] | "\(.start.dateTime // .start.date)  \(.summary)"'
den fetch --secret google -d '{"summary":"Gym","start":{"dateTime":"2026-11-10T18:00:00+02:00"},"end":{"dateTime":"2026-11-10T19:00:00+02:00"}}' "$c/events"
den fetch --secret google -X PATCH -d '{"summary":"…"}' "$c/events/<eventId>"
```

- Use the user's time zone from `notes/` or ask once; write times with their offset.
- Only the user's own calendars by id are reachable: `primary`, or an id the user gives, such as a shared calendar's address. Listing calendars (`calendarList`) is outside den's access.
- Inviting people: add `"attendees":[{"email":"…"}]` and `?sendUpdates=all`. den asks the user first.

## Local findings

Findings about this skill on this machine are in `notes/skills/google.md`. Read it before you start, and add what you learn there. This skill itself is read-only.

Wersje

RepozytoriumWynikLicencja
Ta strona · unsady/den100Apache-2.0
intentic/intentic100MIT
odyssey4me/agent-skills95Apache-2.0
vercel-labs/emulate95Apache-2.0
ckorhonen/claude-skills93MIT
vkirill/claude-lane-stack90MIT

Migawka bazy z 13.11.2026 · wersja paczki 5e5f8c623c4e (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100mail
    Czyta, przeszukuje, sortuje i wysyła pocztę użytkownika przez IMAP i SMTP, gdy konto Google nie jest podłączone.
  • 95google-gmail
    Czyta, wyszukuje, sortuje, etykietuje, archiwizuje i wysyła maile, wątki, etykiety i załączniki Gmaila przez Gmail v1 REST API.
  • 100gws-gmail
    Wysyła, czyta, odpowiada, przekazuje i porządkuje wiadomości Gmail przez gws CLI oraz nasłuchuje nowych wiadomości, z obsługą etykiet, szkiców i wątków.
  • 100google-calendar-tool
    Integruje Kalendarz Google przez Calendar API i OAuth2: pobiera listę terminów i tworzy wydarzenia, sprawdza plan, zmienia harmonogram i synchronizuje kalendarz.
  • 100google-workspace
    Pobiera i odpytuje dane Google Workspace przez CLI gws: Gmail, Kalendarz, Dokumenty, Arkusze, Prezentacje i Dysk.
  • 96gog
    Wysyła i przeszukuje maile Gmail, zarządza kalendarzem Google, przeszukuje Dysk i czyta arkusze oraz dokumenty przez CLI gog.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.