This workflow corresponds to n8n.io template #11036 — we link there as the canonical source.
This workflow follows the Gmail → Google Calendar recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "oo090KAhCfnAlGtQ",
"name": "Automate menstrual cycle tracking with AI health insights",
"tags": [],
"nodes": [
{
"id": "328742fd-300c-45c5-abca-4afb845773e7",
"name": "Sticky Note - Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1248,
-640
],
"parameters": {
"width": 450,
"height": 1464,
"content": "# \ud83c\udf38 Menstrual Cycle Intelligence Hub - AI Integrated\n\n## What This Template Does\n\nThis workflow automates menstrual cycle tracking with AI-powered health insights delivered through multiple channels. It retrieves period and symptom data from Google Sheets every morning, analyzes patterns using OpenAI GPT to generate personalized health insights, sends daily notifications via Telegram on weekdays, creates Google Calendar reminders for upcoming cycle events, and generates comprehensive weekly reports sent via email on weekends.\n\n## Who It's For\n\nWomen and healthcare providers who want to automate menstrual cycle tracking with personalized AI-powered health insights delivered through multiple channels.\n\n## How It Works\n\n1. **Daily Trigger**: Activates every morning at 8 AM\n2. **Data Collection**: Fetches period tracking and symptom logs from Google Sheets\n3. **AI Analysis**: GPT-4 analyzes your cycle data to provide personalized insights and predictions\n4. **Smart Distribution**: Weekday updates go to Telegram for quick access, weekend summaries are emailed\n5. **Calendar Integration**: Automatically creates events for predicted cycle phases\n\n## Requirements\n\n- Google account (for Sheets and Calendar)\n- Telegram account and bot token\n- OpenAI API key\n- Gmail account for email reports\n\n## Setup Steps\n\n1. Configure the \"Configuration Settings\" node with your personal IDs\n2. Connect your Google Sheets with period and symptom data\n3. Set up Telegram bot and add your chat ID\n4. Add OpenAI credentials for AI analysis\n5. Connect Gmail for weekly reports\n6. Activate the workflow\n\n## How to Customize\n\n- Adjust trigger time to your preferred schedule\n- Modify AI prompts for different health focuses\n- Add more notification channels (Slack, Discord, etc.)\n- Customize report formatting and frequency\n- Add additional data sources for more comprehensive tracking"
},
"typeVersion": 1
},
{
"id": "30d254b2-5178-42c5-a711-5442b34a8d05",
"name": "Sticky Note 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-768,
-80
],
"parameters": {
"color": 7,
"width": 280,
"height": 296,
"content": "## \ud83d\udcc5 Step 1: Schedule Trigger\n\nThis node triggers the workflow every day at 8 AM.\n\n**To customize:**\n- Change the trigger hour to your preferred time\n- Add multiple trigger times if needed\n- Consider your timezone settings"
},
"typeVersion": 1
},
{
"id": "4f2044c1-adce-4ab0-8b66-409007e9a1f3",
"name": "Sticky Note 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-464,
-160
],
"parameters": {
"color": 7,
"width": 280,
"height": 362,
"content": "## \u2699\ufe0f Step 2: Configuration\n\n**IMPORTANT: Update these values:**\n\n1. `sheetsDocumentId`: Your Google Sheets ID\n2. `periodSheetName`: Name of your period data sheet\n3. `symptomSheetName`: Name of your symptom log sheet\n4. `telegramChatId`: Your Telegram chat ID\n5. `userEmail`: Your email address\n6. `calendarId`: Usually 'primary'"
},
"typeVersion": 1
},
{
"id": "4d0f7da8-a639-4ce0-b8d5-f76df08b9921",
"name": "Sticky Note 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
-160
],
"parameters": {
"color": 7,
"width": 280,
"height": 376,
"content": "## \ud83d\udcca Step 3: Data Collection\n\n**Google Sheets Structure:**\n\n**Period Data Sheet:**\n- Start Date\n- End Date\n- Flow Level (light/medium/heavy)\n- Cycle Length\n\n**Symptom Log Sheet:**\n- Date\n- Symptoms (mood, cramps, etc.)\n- Energy Level\n- Notes"
},
"typeVersion": 1
},
{
"id": "1e6a05ad-0dd2-4c38-a094-eadfd86d01dc",
"name": "Sticky Note 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
-80
],
"parameters": {
"color": 7,
"width": 280,
"height": 284,
"content": "## \ud83e\udd16 Step 4: AI Analysis\n\n**OpenAI analyzes:**\n- Cycle regularity patterns\n- Symptom correlations\n- Next period prediction\n- Ovulation window estimation\n- Personalized health recommendations\n\n**Note:** Uses GPT-4 for best accuracy"
},
"typeVersion": 1
},
{
"id": "c785a700-5fa5-4079-93f6-3da8aafb4868",
"name": "Sticky Note 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
-96
],
"parameters": {
"color": 7,
"width": 280,
"height": 296,
"content": "## \ud83d\udd00 Step 5: Smart Routing\n\n**Logic:**\n- **Weekend** \u2192 Generate weekly summary \u2192 Send email report\n- **Weekday** \u2192 Send daily update \u2192 Create calendar event\n\nThis ensures you get quick daily updates during the week and comprehensive summaries on weekends."
},
"typeVersion": 1
},
{
"id": "53c1495a-cb29-4a27-aef4-d147f13a605b",
"name": "Sticky Note 6",
"type": "n8n-nodes-base.stickyNote",
"position": [
848,
-144
],
"parameters": {
"color": 7,
"width": 280,
"height": 212,
"content": "## \ud83d\udce7 Weekend Branch\n\n**Weekly Email Report includes:**\n- 7-day cycle summary\n- Symptom trends analysis\n- Health recommendations\n- Upcoming predictions\n- Lifestyle tips for next week"
},
"typeVersion": 1
},
{
"id": "414ad610-a3cc-44dc-af49-e46243803ac8",
"name": "Sticky Note 7",
"type": "n8n-nodes-base.stickyNote",
"position": [
704,
528
],
"parameters": {
"color": 7,
"width": 280,
"height": 260,
"content": "## \ud83d\udcac Weekday Branch\n\n**Daily Updates via:**\n1. **Telegram**: Instant notifications with today's insights\n2. **Google Calendar**: Creates reminders for predicted events 7 days ahead\n\nPerfect for staying informed without information overload!"
},
"typeVersion": 1
},
{
"id": "81f05559-abdb-4df7-9a4a-ea326789cb64",
"name": "Daily Morning Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-688,
224
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "f6a52e21-cab5-4749-a95a-93234416daaa",
"name": "Configuration Settings",
"type": "n8n-nodes-base.set",
"position": [
-464,
224
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "sheetsDocumentId",
"type": "string",
"value": "YOUR_GOOGLE_SHEETS_DOCUMENT_ID"
},
{
"id": "id-2",
"name": "periodSheetName",
"type": "string",
"value": "Period Data"
},
{
"id": "id-3",
"name": "symptomSheetName",
"type": "string",
"value": "Symptom Logs"
},
{
"id": "id-4",
"name": "telegramChatId",
"type": "string",
"value": "YOUR_TELEGRAM_CHAT_ID"
},
{
"id": "id-5",
"name": "userEmail",
"type": "string",
"value": "user@example.com"
},
{
"id": "id-6",
"name": "calendarId",
"type": "string",
"value": "primary"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "2f0efd64-00b5-4895-a7da-61eba0996f75",
"name": "Get Period Data",
"type": "n8n-nodes-base.googleSheets",
"position": [
-240,
224
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "={{ $('Configuration Settings').first().json.periodSheetName }}"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Configuration Settings').first().json.sheetsDocumentId }}"
}
},
"typeVersion": 4.7
},
{
"id": "79b4121e-0441-4d26-bd96-ba830ff72918",
"name": "Get Symptom Logs",
"type": "n8n-nodes-base.googleSheets",
"position": [
-16,
224
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "={{ $('Configuration Settings').first().json.symptomSheetName }}"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Configuration Settings').first().json.sheetsDocumentId }}"
}
},
"typeVersion": 4.7
},
{
"id": "db83e4a7-3427-41c4-b40f-0d28d6bb95fc",
"name": "Analyze Cycle with AI",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
208,
224
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4"
},
"options": {
"maxTokens": 1500,
"temperature": 0.3
},
"responses": {
"values": [
{}
]
},
"builtInTools": {}
},
"typeVersion": 2
},
{
"id": "1742868f-9cfa-43f2-906c-c4b48615b82c",
"name": "Weekend Check",
"type": "n8n-nodes-base.if",
"position": [
496,
224
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "weekend-check",
"operator": {
"type": "boolean",
"operation": "true"
},
"leftValue": "={{ ['Saturday', 'Sunday'].includes(new Date().toLocaleDateString('en-US', { weekday: 'long' })) }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "f19e3ba0-f89f-4c40-9d90-8d1801f2604c",
"name": "Send Telegram Update",
"type": "n8n-nodes-base.telegram",
"position": [
784,
320
],
"parameters": {
"text": "\ud83c\udf38 *Your Daily Cycle Intelligence Update*\n\n{{ $('Analyze Cycle with AI').first().json.output }}",
"chatId": "={{ $('Configuration Settings').first().json.telegramChatId }}",
"additionalFields": {
"parse_mode": "Markdown"
}
},
"typeVersion": 1.2
},
{
"id": "eaea8b79-43b6-44e5-b60f-9c24b17b97fa",
"name": "Create Calendar Reminder",
"type": "n8n-nodes-base.googleCalendar",
"position": [
1072,
320
],
"parameters": {
"end": "={{ $now.plus(7, 'days').plus(1, 'hour').toISO() }}",
"start": "={{ $now.plus(7, 'days').toISO() }}",
"calendar": {
"__rl": true,
"mode": "name",
"value": "={{ $('Configuration Settings').first().json.calendarId }}"
},
"additionalFields": {
"summary": "\ud83d\udcc5 Cycle Intelligence: Phase Reminder",
"description": "=AI-Powered Cycle Insights:\n\n{{ $('Analyze Cycle with AI').first().json.output }}"
}
},
"typeVersion": 1.3
},
{
"id": "8521f360-c5ff-4e2e-bcd5-fdc1cc377488",
"name": "Generate Weekly Report",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
784,
128
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4"
},
"options": {
"maxTokens": 2000,
"temperature": 0.4
},
"responses": {
"values": [
{}
]
},
"builtInTools": {}
},
"typeVersion": 2
},
{
"id": "02462361-262a-439a-a6d4-c8217324dd71",
"name": "Email Weekly Summary",
"type": "n8n-nodes-base.gmail",
"position": [
1072,
128
],
"parameters": {
"sendTo": "={{ $('Configuration Settings').first().json.userEmail }}",
"message": "={{ $json.output }}",
"options": {},
"subject": "=\ud83d\udcca Your Weekly Cycle Intelligence Report - {{ $now.format('MMMM dd, yyyy') }}"
},
"typeVersion": 2.1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "70e19200-3c9b-4381-9b6e-37bbb432a49a",
"connections": {
"Weekend Check": {
"main": [
[
{
"node": "Generate Weekly Report",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Telegram Update",
"type": "main",
"index": 0
}
]
]
},
"Get Period Data": {
"main": [
[
{
"node": "Get Symptom Logs",
"type": "main",
"index": 0
}
]
]
},
"Get Symptom Logs": {
"main": [
[
{
"node": "Analyze Cycle with AI",
"type": "main",
"index": 0
}
]
]
},
"Send Telegram Update": {
"main": [
[
{
"node": "Create Calendar Reminder",
"type": "main",
"index": 0
}
]
]
},
"Analyze Cycle with AI": {
"main": [
[
{
"node": "Weekend Check",
"type": "main",
"index": 0
}
]
]
},
"Daily Morning Trigger": {
"main": [
[
{
"node": "Configuration Settings",
"type": "main",
"index": 0
}
]
]
},
"Configuration Settings": {
"main": [
[
{
"node": "Get Period Data",
"type": "main",
"index": 0
}
]
]
},
"Generate Weekly Report": {
"main": [
[
{
"node": "Email Weekly Summary",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Women and healthcare providers who want to automate menstrual cycle tracking with personalized AI-powered health insights delivered through multiple channels.
Source: https://n8n.io/workflows/11036/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Stop wasting billable hours on manual time-tracking. AutoTimesheet Pro uses AI to collect emails, meetings, and GitHub work, then writes a clean timesheet straight into Google Sheets. Perfect for deve
📧 이메일 자동 분류 시스템 (Sender Filter). Uses gmail, openAi, googleSheets, googleCalendar. Scheduled trigger; 30 nodes.
Business owners and service providers who want to reduce no-show rates for appointments booked via Google Calendar.
Beydigital Media – Lead Generation & AI Email Automation. Uses httpRequest, openAi, gmail, googleSheets. Scheduled trigger; 18 nodes.
AI Institutional Stock Valuation Engine with Risk Scoring & Scenario Targets