skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
storage.googleapis.com277 installs

streak-calendar-event-created

Notify Streak after creating a Google Calendar event with the gws CLI. Run this immediately after every successful `gws calendar events insert` so Streak records the proposed meeting against the box. It POSTs the event id, calendar, forUserEmail, and contactEmail to the box's calendarEventCreated endpoint.

How do I install this agent skill?

npx skills add https://storage.googleapis.com --skill streak-calendar-event-created
view source ↗

Is this agent skill safe to install?

No partner audit is available yet. Read the source before installing.

What does this agent skill do?

Notify Streak that a calendar event was created

Whenever you create a Google Calendar event with gws calendar events insert, Streak does not learn about that event on its own. You must tell it, by POSTing to the box's calendarEventCreated endpoint. Do this once per event, right after the gws command succeeds.

If you skip this step the event still exists on the user's calendar, but Streak has no record of it — the box timeline will be wrong, the user won't be prompted to review it, and later sessions may not know the meeting was already proposed.

Never record a meeting note

Creating a calendar event means a meeting has been proposed, not that it happened. Do not create a meeting note on the box for it — before or after this notification. Meeting notes are only for records of meetings that have already taken place.

When to run

Run this exactly once for each event you successfully create, immediately after the gws command returns success. Do not run it if the gws command failed, and do not run it more than once for the same event (that would create duplicate records).

Endpoint

POST https://$STREAK_API_HOST/api/v2/boxes/$BOX_KEY/calendarEvents
Authorization: Bearer $STREAK_API_KEY
Content-Type: application/json

$STREAK_API_HOST, $STREAK_API_KEY, and $BOX_KEY are already set in your environment (in production $STREAK_API_HOST resolves to api.streak.com). Always use these variables rather than hardcoding the host, so the call works in both dev and production.

Request body

{
  "id": "7kq2m9d3v1abcdef0123456789",
  "calendar": "primary",
  "forUserEmail": "user@example.com",
  "contactEmail": "contact@example.org"
}
FieldWhere it comes from
idThe event's id from the JSON that the gws command printed on success.
calendarThe calendar the event was inserted into — the calendarId you passed in --params (e.g. "primary").
forUserEmailThe exact address you passed as --email=<address> to gws (the team member on whose calendar the event was created).
contactEmailThe email address of the contact the meeting is intended for.

Getting the event id from the gws output

Capture the gws command's output and read the id from it. The gws-calendar skills document the exact output shape; the Calendar API returns the created event resource, whose top-level id is what you need. For example, if you saved the command's JSON output to event.json:

EVENT_ID=$(jq -r '.id' event.json)

Adapt the jq path to the actual field name in the gws output if it differs — the goal is the Google Calendar event id. Do not use iCalUID or htmlLink.

Making the call

curl -sS -X POST \
  "https://$STREAK_API_HOST/api/v2/boxes/$BOX_KEY/calendarEventCreated" \
  -H "Authorization: Bearer $STREAK_API_KEY" \
  -H "Content-Type: application/json" \
  --fail-with-body \
  -d "$(jq -nc \
        --arg id "$EVENT_ID" \
        --arg calendar "primary" \
        --arg forUserEmail "user@example.com" \
        --arg contactEmail "contact@example.org" \
        '{id:$id, calendar:$calendar, forUserEmail:$forUserEmail, contactEmail:$contactEmail}')"

Building the body with jq -nc (rather than hand-writing the JSON string) avoids quoting mistakes and guarantees valid JSON. Set calendar to the calendar you inserted into, forUserEmail to the address you used for --email, and contactEmail to the intended contact.

After the call

  • On success (2xx), the event is recorded — note it in your final summary (e.g. "proposed a meeting with contact@example.org on user@example.com's calendar and notified Streak").
  • On failure, do not troubleshoot or retry in a loop. Include the HTTP status and response body in your final summary so it can be investigated, and continue with any other useful action.

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/storage.googleapis.com/streak-calendar-event-created">View streak-calendar-event-created on skillZs</a>