Managing meetings, tasks and research notes can be repetitive. If you already use Notion and Google Calendar, you can automate much of the work using a small set of scripts and GitHub Actions.
This tutorial explains how to build an automation workflow that:
- reads events from Google Calendar
- creates meeting pages in Notion
- generates AI summaries of meetings
- tracks deadlines
- produces daily task summaries The system runs automatically in the cloud.
1 System Architecture
The repository is organised around two main components:
- automation scripts
- GitHub Actions workflows Scripts perform the logic while GitHub Actions schedules them.
Example repository structure:
automation
├── scripts
│ ├── calendar-to-meetings.mjs
│ ├── notion-ai-summary.mjs
│ ├── tasks-deadline-alert.mjs
│ ├── tasks-daily-summary.mjs
│ ├── tasks-phd-sync.mjs
│ ├── tasks-timeline.mjs
│ └── get-google-refresh-token.mjs
│
├── .github/workflows
│ ├── calendar-to-meetings.yml
│ ├── tasks-deadline-alert.yml
│ └── notion-openai-summary.yml
Typical workflow:
Google Calendar
↓
calendar-to-meetings script
↓
Notion meeting page
↓
notion-ai-summary script
↓
OpenAI generates meeting minutes
2 Required Services
You need accounts for:
- GitHub
- Notion
- Google Cloud
- OpenAI Each service provides an API used by the automation scripts.
3 Configure Notion
Create a database called Meetings.
Recommended properties:
| Field | Type |
|---|---|
| Meeting Name | Title |
| Date | Date |
| Participants | Text |
| Minutes | Text |
| TLDR | Text |
| Refresh | Checkbox |
| Category | Select |
| Tags | Multi-select |
Then share the database with your Notion integration and copy the database ID.
4 Configure Google Calendar API
Create a Google Cloud project and enable:
Google Calendar API
Then create OAuth credentials and obtain:
GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET
5 Generate Google Refresh Token
Run the helper script:
node scripts/get-google-refresh-token.mjs
The script launches an OAuth login and returns:
GOOGLE_REFRESH_TOKEN
This allows the automation to access your calendar automatically.
6 Environment Variables
The scripts read configuration from environment variables.
Example configuration:
NOTION_API_KEY=xxxx
OPENAI_API_KEY=xxxx
GOOGLE_CLIENT_ID=xxxx
GOOGLE_CLIENT_SECRET=xxxx
GOOGLE_REFRESH_TOKEN=xxxx
MEETINGS_DATA_SOURCE_ID=xxxx
GOOGLE_CALENDAR_IDS=primary
TIMEZONE=Europe/London
Optional settings:
OPENAI_MODEL=gpt-4.1-mini
RUN_LIMIT=3
7 Import Calendar Events into Notion
Script:
calendar-to-meetings.mjs
What it does:
- read events from Google Calendar
- extract event metadata
- create meeting pages in Notion Example result:
Meeting Name: Weekly PhD Meeting
Date: 2026-03-10
Participants: Supervisor, Student
Minutes: (empty)
TLDR: (empty)
8 AI Meeting Summaries
Script:
notion-ai-summary.mjs
Workflow:
- find meeting pages where TLDR is empty
- read page content
- send text to OpenAI
- write the generated summary back to Notion Example output:
TLDR:
Discussed research progress and next steps for data acquisition.
Minutes:
- Reviewed dataset access timeline
- Agreed to revise research questions
- Plan causal inference training
9 Deadline Alerts
Script:
tasks-deadline-alert.mjs
Purpose:
- check upcoming deadlines
- notify the user when tasks are due soon
The script queries Notion tasks and filters those approaching their
deadline.
10 Daily Task Summary
Script:
tasks-daily-summary.mjs
This generates a daily overview such as:
Daily Summary
Tasks today
- Finish literature review
- Prepare supervisor meeting
Upcoming
- Ethics application deadline in 3 days
11 Automating with GitHub Actions
Example workflow:
.github/workflows/calendar-to-meetings.yml
Typical schedule:
on:
schedule:
- cron: "0 6 * * *"
Example timeline:
06:00 import calendar events
06:10 generate AI summaries
08:00 send daily task report
All tasks run automatically in the cloud.
12 Example Daily Workflow
Morning:
Calendar event created
↓
GitHub Action runs
↓
Meeting page created in Notion
After meeting:
Notes written in Notion
↓
Automation runs
↓
OpenAI generates structured summary
The result is a continuously updated knowledge base of meetings and
tasks.
13 Benefits
Automation replaces many manual steps:
| Task | Manual | Automated |
|---|---|---|
| Create meeting pages | Yes | Automatic |
| Copy calendar events | Yes | Automatic |
| Write meeting notes | Yes | AI |
| Track deadlines | Yes | Automatic |
| Daily task overview | Yes | Automatic |
14 Possible Extensions
You can expand the system with:
- Slack notifications
- Telegram reminders
- literature tracking
- automated research summaries
- PhD progress dashboards The same architecture can power many productivity tools.