Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automated meeting preparation and daily commit summaries. Use when checking Google Calendar for upcoming meetings, generating standup updates from GitHub commits, or sending daily development summaries. Pulls meeting schedules and commit history, then formats verbose developer-friendly updates.
.claude/skills/sundial-org-meeting-prep/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 58% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -17% | 0% |
Automated meeting preparation and daily commit summaries for development teams.
Create OAuth credentials in Google Cloud Console:
client_secret.json in credentials/https://www.googleapis.com/auth/calendarcredentials/calendar_tokens.jsonFor multiple accounts, store separate token files per account.
Create a classic Personal Access Token with repo scope. Store at credentials/github_token.
Trigger: Cron every 15 minutes or heartbeat.
hangoutLink or conferenceData)Trigger: Cron at end of day.
bashNOW=$(date -u +%Y-%m-%dT%H:%M:%SZ) LATER=$(date -u -d "+45 minutes" +%Y-%m-%dT%H:%M:%SZ) TOKEN=$(jq -r '.access_token' credentials/calendar_tokens.json) curl -s "https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=$NOW&timeMax=$LATER&singleEvents=true" \ -H "Authorization: Bearer $TOKEN" | \ jq '[.items[] | select(.hangoutLink != null or .conferenceData != null)]' Refresh Token CLIENT_ID=$(jq -r '.installed.client_id' credentials/client_secret.json) CLIENT_SECRET=$(jq -r '.installed.client_secret' credentials/client_secret.json) REFRESH_TOKEN=$(jq -r '.refresh_token' credentials/calendar_tokens.json) curl -s -X POST https://oauth2.googleapis.com/token \ -d "client_id=$CLIENT_ID" \ -d "client_secret=$CLIENT_SECRET" \ -d "refresh_token=$REFRESH_TOKEN" \ -d "grant_type=refresh_token" Fetch Commits TOKEN=$(cat credentials/github_token) SINCE=$(date -u -d "-7 days" +%Y-%m-%dT%H:%M:%SZ) # List org repos curl -s -H "Authorization: Bearer $TOKEN" \ "https://api.github.com/orgs/ORG_NAME/repos?per_page=50&sort=pushed" # Get commits curl -s -H "Authorization: Bearer $TOKEN" \ "https://api.github.com/repos/ORG/REPO/commits?since=$SINCE&per_page=30" Output Format Plain text, no markdown, no emojis: Update - [DATE] [repo-name] [subdirectory] • Verbose description of change (Author) • Another change (Author) Today • [user input] Blockers • None Discussion • None Formatting Rules • Group by repo, then subdirectory • Summarize commits into meaningful descriptions • Include author names • Plain text only for easy copy-paste State Management Track state in data/meeting-prep-state.json: { "notified": {}, "config": { "repoFilter": "org-name/*" } }
Other measured skills in the registry, with their headline benchmark lift.