kubernetes / kubernetes/community
Automate NCO comms using GCalendar and Zapier
- 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
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