kubernetes / kubernetes/community

Automate NCO comms using GCalendar and Zapier

Open
#9,078 4 comments 0 reactions 0 assignees View on GitHub
sig/contributor-experience
Dominant language
Jupyter Notebook
Stars
13k
Forks
5.4k
Avg merge
2d 17h
Merged PRs (30d)
29

Description

## Problem

NCO social posts are written by hand each month and dated "3rd Tuesday of this
month" rather than an actual date and time. Drive them off the community calendar
instead, so each session gets a queued post with the real date and time zones.

## Proposal

Subscribe a Google account to `calendar@kubernetes.io`, connect it to Zapier, then:

| Step | Config |
|---|---|
| Trigger | **Google Calendar → Event Start**, *Time Before* = 4 days |
| Filter | *Event Summary* contains `New Contributor Orientation` |
| Filter | *Event Start* day-of-month between **15 and 21** — suppresses the extra weekly `[AMER]` occurrences |
| Formatter | **Date/Time → Format** on `Event Begins`, once per timezone needed |
| Action | **Buffer → Add to Queue** (not share-now), one step per channel group |

Second Zap for the day-of reminder: same steps, *Time Before* = 1 hour.

**Use `Event Start`, not a create-time trigger.** NCO is a recurring series, so
create-time triggers fire once for the series, not per session — and Zapier
documents that they misfire on *subscribed* calendars, where Google returns a
1900-01-01 creation date.

The API key on kubernetes.dev is referrer-restricted and unusable by Zapier, which
authenticates to Google over OAuth. It still works for local checks:

```bash
curl -s -G -H 'Referer: https://www.kubernetes.dev/' \
'https://www.googleapis.com/calendar/v3/calendars/calendar@kubernetes.io/events' \
--data-urlencode "key=$GCAL_KEY" \
--data-urlencode "timeMin=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
--data-urlencode 'singleEvents=true' --data-urlencode 'orderBy=startTime' \
--data-urlencode 'q=New Contributor Orientation'
```

## Copy

**Shorter form (≤280 chars):**

```text
Want to contribute to Kubernetes but not sure where to start?

Join the New Contributor Orientation on {{weekday}}, {{day}} {{month}} (two time zones) to learn how the project works, ways to contribute (code, docs & more), and connect with the community!

Add it to your calendar: k8s.dev/calendar

#Kubernetes
```

**Day-of:**

```text
The #Kubernetes Community holds its New Contributor Orientation today at {{time_utc}} UTC & {{time_pt}} PT. New contributors welcome — no experience required.

Add it to your calendar: k8s.dev/calendar
```

LinkedIn can take a longer variant in its own Buffer step.

## Risks

Buffer retires its [legacy REST API on 2027-02-01](https://buffer.com/resources/legacy-rest-api-retired/)

So we would need to look for alternatives for remediating this

Contributor guide

Open the contributing guide

Research direction

Start by validating the Google Calendar event query with the provided curl command, then review the proposed Zapier trigger, filters, formatting, and Buffer queue steps. Done means recurring NCO sessions produce correctly dated posts and day-of reminders, while the Buffer legacy API retirement risk has an agreed alternative.

Written by the indexing model from the issue text.

Assessment

Tech stack
google-cloud
Domain
content, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.