New to Kestra?
Use blueprints to kickstart your first workflows.
Schedule a weekly recap that pulls closed GitHub issues and Google Calendar events, then publishes the summary to a Notion page and Slack.
Automate a weekly personal wrap-up that gathers your closed GitHub issues and pull requests, counts the Google Calendar meetings you attended, and publishes a clean recap to a Notion page and a Slack channel. This blueprint replaces the Friday afternoon scramble of clicking through GitHub notifications and your calendar with a deterministic, scheduled summary that runs even on weeks you forget. It is built for engineers, managers, and product folks who want a lightweight personal status doc without standing up an analytics stack.
io.kestra.plugin.core.trigger.Schedule fires every Friday at 4pm Austin time using the cron 0 16 * * 5, with a io.kestra.plugin.core.condition.Not wrapping io.kestra.plugin.core.condition.PublicHoliday so US holidays skip the run.get_issues calls the GitHub REST API via io.kestra.plugin.core.http.Request to fetch issues assigned to you in the kestra-io org, filtered to state=closed and the last 5 days.io.kestra.plugin.core.flow.ForEach iterates the response, logging each issue URL with io.kestra.plugin.core.debug.Return and incrementing a KV counter issues_today via io.kestra.plugin.core.kv.Set with a 5 minute TTL.get_calendar_events uses io.kestra.plugin.googleworkspace.calendar.ListEvents to list events between 7am and 5pm US Central across the same 5 day window, authenticated by a Google service account JSON.ForEach walks the metadataList output and counts meetings into a meetings_today KV key.send_to_notion writes a markdown recap to your Notion page with io.kestra.plugin.notion.page.Update, using {{ kv('meetings_today') }} and {{ kv('issues_today') }} in the body.check_for_events (a io.kestra.plugin.core.flow.If) branches on the meeting count and sends a tailored message to Slack via io.kestra.plugin.slack.notifications.SlackIncomingWebhook.GitHub, Google Calendar, Notion, and Slack each have their own schedulers, webhooks, and apps, but none of them can coordinate across all four. Kestra glues them together with a single declarative YAML flow, an event-and-time trigger model that supports holiday conditions natively, automatic retries on flaky API calls, KV store for cross-task counters, and full execution lineage so you can replay any past Friday and see exactly which issues and meetings were counted. The Notion API has no native scheduler and the GitHub Actions cron cannot reach into your Google Calendar service account, which is precisely the gap this flow fills.
repo scope for the kestra-io org (or your own org if you adapt it).CLASSIC_GITHUB: GitHub classic PAT used as a Bearer token.NEW_SA_GCAL: Google service account JSON for Calendar access.CALENDARID: the Google Calendar ID to query.NOTION: Notion API integration token.PAGE_ID_NOTION: the Notion page ID to update.SLACK_WEBHOOK: Slack incoming webhook URL.namespace from company.team to your own.weekly_wrapup and the timezone offsets in timeMin and timeMax to match your working hours.kestra-io.io.kestra.plugin.notion.page.Create instead of Update to start a fresh page each week.issues_today as well, for example to ping yourself when the count is zero.