免费赠品:每日提醒模板
中级
这是一个Personal Productivity, AI Summarization领域的自动化工作流,包含 13 个节点。主要使用 If, Set, Code, Twilio, GoogleCalendar 等节点。 通过 Google Calendar、Twilio 和 Claude AI 获取每日日历摘要短信
前置要求
- •Anthropic API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "u4rtMIxYZRWJxXIf",
"meta": {
"instanceId": "0d2e64e1d7982d79213f26a3bf2098fbfb34b84605e60edcd9076c1957165368",
"templateCredsSetupCompleted": true
},
"name": "免费赠品:每日提醒模板",
"tags": [
{
"id": "C61r5OM5FTpiJdHt",
"name": "Anne",
"createdAt": "2025-04-30T20:06:56.698Z",
"updatedAt": "2025-04-30T20:06:56.698Z"
},
{
"id": "MucILRyltryNYlLg",
"name": "family",
"createdAt": "2025-04-25T19:19:21.461Z",
"updatedAt": "2025-04-25T19:19:21.461Z"
}
],
"nodes": [
{
"id": "9d081baa-1b7d-4e82-b5c9-03a3ea75fa2b",
"name": "Twilio",
"type": "n8n-nodes-base.twilio",
"position": [
1616,
240
],
"parameters": {
"to": "={{ $('Persist schema').item.json.to }}",
"from": "=YOUR TWILIO NUMBER HERE",
"message": "={{ $json.text }}",
"options": {}
},
"credentials": {
"twilioApi": {
"id": "u2VgPuSlrOH75Ps5",
"name": "Twilio account"
}
},
"typeVersion": 1
},
{
"id": "a7da51ea-5540-4902-a119-ddd95106530a",
"name": "基础 LLM 链",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1168,
240
],
"parameters": {
"text": "=Today’s calendar items for {{ $json[\"calendar\"] }}: \n<daily_events>\n{{ $json[\"eventsList\"] }}\n</daily_events>\n\nNow, generate an SMS summary following the guidelines.",
"messages": {
"messageValues": [
{
"message": "=You are Riley, an AI personal assistant designed to send daily SMS summaries to {{$json.calendar}}. Your task is to create a concise, informative, and friendly message summarizing the day's events for the family.\n\nThe list of the day's events is enclosed in <daily_events />, which may include appointments, activities, reminders, or other important information. When summarizing the daily events, follow these guidelines:\n\n1. Prioritize the most important events\n2. Group similar events together\n3. Use concise language to keep the message brief\n4. Include specific times for scheduled events\n5. Mention which family members are involved in each event, if specified.\n\nFormat the SMS in a friendly, conversational tone. Feel free to use emojis. Start with a greeting and end with a positive closing remark, signed in a new line \"-Riley from RalleyReminders.com\".\n\nKeep the entire message under 200 characters to ensure it fits in a single SMS. Format it with line breaks. If there is more than one event, number the events to make it easily readable. Here's an example of how your output should be structured:\n\n<example_sms_one_event>\nHello {{$json.calendar}}! Today: Dentist appointment @2pm\nRemember to brush your teeth before you go. Have a great day! 😊\n-Riley from RalleyReminders.com\n</example_sms_one_event> \n\n<example_sms_many_events>\nHello {{$json.calendar}}! Today:\n1. Dentist appointment @2pm\n2. Yoga @4pm\n\nRemember to thank God for this day. Have a great day! 😊\n-Riley from RalleyReminders.com\n</example_sms_many_events>"
}
]
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 1.6,
"alwaysOutputData": false,
"waitBetweenTries": 5000
},
{
"id": "bb9f40db-1ab1-4bf1-988f-c6316751785d",
"name": "便利贴1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
64
],
"parameters": {
"width": 960,
"height": 440,
"content": "## 从您的 Google Calendar 获取事件"
},
"typeVersion": 1
},
{
"id": "a38b73d3-e1f3-42e7-9380-b45dc096c0d3",
"name": "Anthropic 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
1184,
464
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-3-7-sonnet-20250219",
"cachedResultName": "Claude 3.7 Sonnet"
},
"options": {}
},
"credentials": {
"anthropicApi": {
"id": "VU1gHCdYfasQEzOe",
"name": "Anthropic account"
}
},
"typeVersion": 1.3
},
{
"id": "d8d7effb-589f-41e2-96e3-c0003f66b3df",
"name": "早上7点触发工作流",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "Runs everyday at 7AM",
"position": [
48,
240
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 7
}
]
}
},
"notesInFlow": true,
"typeVersion": 1.2
},
{
"id": "23cb246a-2380-49a2-ae73-749960b42537",
"name": "从事件日历获取事件",
"type": "n8n-nodes-base.googleCalendar",
"position": [
272,
240
],
"parameters": {
"options": {},
"timeMax": "={{ $today.plus(1, 'day')}}",
"timeMin": "={{ $today }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultName": ""
},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "ehU0cBDM1JUGhJI9",
"name": ""
}
},
"typeVersion": 1.3
},
{
"id": "10fb1e56-335b-4486-b501-1bdf16076088",
"name": "检查是否存在任何事件",
"type": "n8n-nodes-base.if",
"position": [
496,
240
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "bbfb1109-0619-4b6f-a3f4-f36ad7ac2b89",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $items(\"Get events from Events Calendar\").length }}",
"rightValue": 0
}
]
}
},
"typeVersion": 2.2
},
{
"id": "0377e81f-4ede-491c-acb2-960d57c884bf",
"name": "格式化事件列表和发送方手机号码",
"type": "n8n-nodes-base.code",
"position": [
720,
240
],
"parameters": {
"jsCode": "// Pull in *all* today's events and build your string:\nconst events = $input.all();\nconst list = events\n .map(evt => {\n const time = new Date(evt.json.start.dateTime)\n .toLocaleTimeString('en-US', {\n timeZone: evt.json.start.timeZone,\n hour: '2-digit',\n minute: '2-digit'\n });\n return `• ${evt.json.summary} at ${time}`;\n })\n .join(\"\\n\");\n\nconst output = {\n json: {\n // send to this user's number\n to: \"+12334567890\",\n eventsList: list || \"No events today.\",\n // name of user\n calendar: \"Anne\"\n }\n}\n\nreturn output;"
},
"typeVersion": 2
},
{
"id": "0c44dba7-6e1d-4943-8b9a-964a8844aaa0",
"name": "持久化模式",
"type": "n8n-nodes-base.set",
"position": [
960,
240
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "3fa4303d-b6cc-45fb-ae63-b1a84b394656",
"name": "to",
"type": "string",
"value": "={{ $json.to }}"
},
{
"id": "f0075929-e6fd-4e29-ae56-b6d2200eb933",
"name": "eventsList",
"type": "string",
"value": "={{ $json.eventsList }}"
},
{
"id": "11adeb19-db56-464f-9c49-f736ed3290f3",
"name": "calendar",
"type": "string",
"value": "={{ $json.calendar }}"
}
]
},
"includeOtherFields": true
},
"retryOnFail": true,
"typeVersion": 3.4,
"alwaysOutputData": false
},
{
"id": "b0f0540e-5f28-452f-a905-a62f65b806f2",
"name": "便利贴",
"type": "n8n-nodes-base.stickyNote",
"position": [
352,
-208
],
"parameters": {
"color": 5,
"width": 336,
"height": 240,
"content": "## 前提条件"
},
"typeVersion": 1
},
{
"id": "0792fd00-8a38-48ca-b453-3f2bb0dde2bf",
"name": "便利贴2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1056,
64
],
"parameters": {
"width": 400,
"height": 560,
"content": "## 个人助理"
},
"typeVersion": 1
},
{
"id": "5d99cdee-5172-42e6-8a66-b4403fd67f44",
"name": "便利贴3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1520,
64
],
"parameters": {
"width": 384,
"height": 352,
"content": "## 通过短信发送"
},
"typeVersion": 1
},
{
"id": "135861a1-6e7d-4588-bdd7-fafa505f00ba",
"name": "便利贴4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
-208
],
"parameters": {
"color": 4,
"width": 368,
"height": 240,
"content": "## 这是做什么的?"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"timezone": "America/Edmonton",
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1"
},
"versionId": "7cb03257-ca69-4713-b880-4e7caf952be8",
"connections": {
"Persist schema": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Twilio",
"type": "main",
"index": 0
}
]
]
},
"Anthropic Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Trigger workflow at 7AM": {
"main": [
[
{
"node": "Get events from Events Calendar",
"type": "main",
"index": 0
}
]
]
},
"Check if there are any events": {
"main": [
[
{
"node": "Format list of events and sender mobile num",
"type": "main",
"index": 0
}
]
]
},
"Get events from Events Calendar": {
"main": [
[
{
"node": "Check if there are any events",
"type": "main",
"index": 0
}
]
]
},
"Format list of events and sender mobile num": {
"main": [
[
{
"node": "Persist schema",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 个人效率, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
基于AI的会议研究与每日议程(Google日历、Attio CRM和Slack)
基于AI的会议研究与每日议程:使用Google日历、Attio CRM和Slack
If
Set
Code
+15
30 节点Harry Siggins
AI 摘要总结
工作日日志记录
AI工时表生成器 - 集成Gmail、日历和GitHub到Google表格
If
Set
Code
+11
31 节点Luka Zivkovic
个人效率
带有 AI 摘要的每日邮件摘要
使用 OpenAI O4-Mini 从 Gmail 标签创建 AI 摘要的邮件摘要
If
Set
Code
+8
16 节点German Velibekov
个人效率
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
LinkedIn职位搜索
LinkedIn职位搜索:自动匹配简历(GPT/Gemini)+求职信生成器+Telegram提醒
If
Set
Code
+13
33 节点Hojjat Jashnniloofar
个人效率
多模型共识与 Telegram 提醒的 AI 股票分析
基于多模型共识和 Telegram 提醒的 AI 股票分析系统
Set
Code
Merge
+8
27 节点DevCode Journey
加密货币交易
工作流信息
难度等级
中级
节点数量13
分类2
节点类型9
作者
Anne Uy Gothong
@prismatic777Senior Software Engineer based in Canada. I enjoy exploring ways to integrate AI into practical life for busy families and entrepreneurs to make life easier. I publish helpful automations for free here from time to time. Currently building: 🗓️ ralleyreminders.com (reminder system for the forgetful/ADHD) 👶🏻 helpbabysleep.com (baby sleep expert app to help newborn parents get more sleep)
外部链接
在 n8n.io 查看 →
分享此工作流