SKILL.md
唯讀
名稱
calendar-automation
描述
Google Calendar 與 Outlook 自動化 - 排程最佳化、會議工作流程、時間區塊管理,以及 Slack/Sheets 整合
版本
1.0.0
Calendar Automation
自動化 Google Calendar 與 Outlook 工作流程,涵蓋會議管理、時間區塊、每日摘要與跨平台同步。本技能基於 n8n 工作流程範本。
概述
本技能涵蓋:
- 會議排程自動化
- 時間區塊策略
- 每日行事曆摘要傳送至 Slack
- 會議準備提醒
- 行事曆分析
核心工作流程
1. 每日行事曆摘要傳送至 Slack
workflow: "Morning Calendar Briefing"
schedule: "6:00 AM daily"
steps:
1. get_today_events:
calendar: primary
time_min: today_start
time_max: today_end
2. categorize_events:
categories:
meetings: has_attendees == true
focus_time: title contains "Focus" OR "Deep Work"
one_on_ones: title contains "1:1" OR "1-on-1"
interviews: title contains "Interview"
3. calculate_stats:
total_meetings: count(meetings)
total_hours: sum(duration)
free_time: 8 - total_hours
back_to_back: count(gap < 15min)
4. format_message:
template: |
☀️ *早安!以下是您今天的行程:*
📅 *{date}*
*行程概覽:*
• {total_meetings} 場會議({total_hours}小時)
• {free_time}小時自由時間
• {back_to_back} 個連續時段 ⚠️
*今日活動:*
{event_list}
💡 *小提醒:* {daily_tip}
5. send_to_slack:
channel: "#daily-schedule" or DM
6. log_to_sheets:
spreadsheet: "Calendar Analytics"
data: [date, meetings, hours, categories]
活動列表格式:
• 9:00 AM - Team Standup (15m) 📞 Zoom
• 10:00 AM - 1:1 with Sarah (30m) 👥
• 11:00 AM - Focus Time (2h) 🧠
• 2:00 PM - Client Call (1h) 🤝 Google Meet
• 4:00 PM - Interview - PM Role (45m) 🎯
2. 會議準備自動化
workflow: "Meeting Preparation"
trigger:
type: calendar_event
time: 1_hour_before_meeting
filter: has_attendees AND duration >= 30min
steps:
1. get_meeting_details:
extract: [title, attendees, description, meeting_link]
2. research_attendees:
for_each: attendee
actions:
- linkedin_lookup: get_title_company
- crm_lookup: get_past_interactions
- email_search: recent_threads
3. generate_prep_doc:
template: |
# Meeting Prep: {title}
**時間:** {start_time}
**時長:** {duration}
**連結:** {meeting_link}
## 與會者
{attendee_profiles}
## 背景資訊
- 上次互動:{last_meeting_date}
- 待辦事項:{open_tasks}
- 近期郵件:{email_summary}
## 建議議程
{ai_suggested_agenda}
## 談話要點
{ai_talking_points}
4. send_reminder:
slack_dm:
message: |
⏰ 會議將在1小時後開始:*{title}*
📋 [準備文件]({prep_doc_link})
🔗 [加入會議]({meeting_link})
快速摘要:{one_line_summary}
3. 智慧時間區塊
workflow: "Auto Time Blocking"
schedule: "Sunday 8pm" # 規劃下週
steps:
1. analyze_calendar:
range: next_7_days
identify:
- existing_meetings
- recurring_meetings
- available_slots
2. get_priorities:
source: [todoist, asana, notion]
filter: due_this_week AND high_priority
3. allocate_focus_time:
rules:
- morning_block: 9-11am (deep work)
- afternoon_block: 2-4pm (collaborative)
- minimum_gap: 15min between meetings
- max_meetings_per_day: 5
4. create_blocks:
types:
deep_work:
duration: 2h
frequency: daily
preferred_time: 9-11am
color: blue
admin_time:
duration: 1h
frequency: daily
preferred_time: 4-5pm
color: gray
buffer:
duration: 15min
after: external_meetings
color: yellow
5. notify:
slack: "✅ 每週時間區塊已建立。已保護 {x} 小時的專注時間。"
4. Calendly → Calendar + CRM
workflow: "Calendly Booking Handler"
trigger:
type: calendly
event: booking_created
steps:
1. get_booking_details:
extract: [invitee, event_type, scheduled_time, answers]
2. enrich_contact:
clearbit: lookup_by_email
linkedin: get_profile
3. create_calendar_event:
google_calendar:
title: "{event_type} with {invitee_name}"
time: scheduled_time
description: |
**透過 Calendly 預約**
姓名:{invitee_name}
電子郵件:{invitee_email}
公司:{company}
**會前問題:**
{calendly_answers}
attendees: [invitee_email, owner_email]
reminders: [1_day, 1_hour, 15_min]
4. update_crm:
hubspot:
create_or_update_contact:
email: invitee_email
properties:
last_meeting_booked: scheduled_time
meeting_type: event_type
create_engagement:
type: MEETING
timestamp: scheduled_time
5. send_confirmation:
email:
to: invitee_email
template: meeting_confirmation
include: [calendar_invite, prep_questions]
6. notify_slack:
channel: "#meetings"
message: "📅 新預約:{event_type} 與 {invitee_name} 於 {date}"
5. 行事曆分析
analytics_workflow:
name: "Weekly Calendar Report"
schedule: "Friday 5pm"
metrics:
time_distribution:
- meetings_total_hours
- focus_time_hours
- admin_time_hours
- 1on1_time_hours
meeting_quality:
- avg_meeting_length
- back_to_back_count
- meetings_with_agenda
- external_vs_internal
productivity:
- longest_focus_block
- fragmentation_score
- after_hours_meetings
output:
format: markdown
destinations: [slack, google_sheets]
report_template: |
# 📊 每週行事曆分析
## 時間分配
| 類別 | 時數 | 佔比 |
|----------|-------|-----------|
| 會議 | {meetings_hours} | {meetings_pct}% |
| 專注時間 | {focus_hours} | {focus_pct}% |
| 行政事務 | {admin_hours} | {admin_pct}% |
| 可用時間 | {available_hours} | {available_pct}% |
## 會議洞察
- 會議總數:{total_meetings}
- 平均時長:{avg_length} 分鐘
- 連續會議:{b2b_count}({b2b_pct}%)
- 有議程:{agenda_pct}%
## 生產力評分
🎯 **{productivity_score}/100**
- 最長專注區塊:{longest_focus}
- 會議碎片化:{fragmentation}
- 下班後會議:{after_hours_count}
## 建議
{ai_recommendations}
時間區塊範本
創作者行程(個人貢獻者)
┌─────────────────────────────────────┐
│ 9:00 - 11:00 │ 深度工作區塊 1 │
├─────────────────────────────────────┤
│ 11:00 - 11:30 │ 郵件/Slack │
├─────────────────────────────────────┤
│ 11:30 - 12:30 │ 會議時段 │
├─────────────────────────────────────┤
│ 12:30 - 1:30 │ 午餐 │
├─────────────────────────────────────┤
│ 1:30 - 3:30 │ 深度工作區塊 2 │
├─────────────────────────────────────┤
│ 3:30 - 4:00 │ 緩衝/行政事務 │
├─────────────────────────────────────┤
│ 4:00 - 5:00 │ 會議時段 │
├─────────────────────────────────────┤
│ 5:00 - 5:30 │ 每日總結 │
└─────────────────────────────────────┘
主管行程
┌─────────────────────────────────────┐
│ 8:00 - 8:30 │ 每日規劃 │
├─────────────────────────────────────┤
│ 8:30 - 9:00 │ 團隊站立會議 │
├─────────────────────────────────────┤
│ 9:00 - 12:00 │ 1:1 / 會議 │
├─────────────────────────────────────┤
│ 12:00 - 1:00 │ 午餐 │
├─────────────────────────────────────┤
│ 1:00 - 2:00 │ 專注時間 │
├─────────────────────────────────────┤
│ 2:00 - 5:00 │ 會議 │
├─────────────────────────────────────┤
│ 5:00 - 5:30 │ 郵件/總結 │
└─────────────────────────────────────┘
輸出範例
請求:"為我的 Slack 設定每日行事曆摘要"
輸出:
# 每日行事曆摘要設定
## 工作流程設定
```yaml
name: "Morning Calendar Briefing"
schedule: "6:00 AM weekdays"
timezone: "Asia/Shanghai"
trigger:
type: cron
expression: "0 6 * * 1-5"
actions:
1. fetch_events:
calendar: primary
date: today
2. send_slack:
channel: "@you" # 或 #your-channel
範例輸出
☀️ 早安!以下是您的星期四行程:
📅 2026年1月30日
━━━━━━━━━━━━━━━━━━━━━━
📊 概覽:
• 5 場會議(4.5小時)
• 3.5小時自由時間
• 1 個連續時段警告 ⚠️
━━━━━━━━━━━━━━━━━━━━━━
🗓️ 行程:
9:00 AM │ Team Standup(15分鐘)
│ 📞 Google Meet
│
10:00 AM │ 與 Sarah 1:1(30分鐘)
│ 👥 會議室 B
│
11:00 AM │ 🧠 專注時間(2小時)
│
1:00 PM │ 午餐
│
2:00 PM │ 客戶通話 - Acme(1小時)
│ 🤝 Zoom(連結已附)
│
3:30 PM │ 產品審查(1小時)
│ 📋 議程已附
│
5:00 PM │ ✅ 今日結束
━━━━━━━━━━━━━━━━━━━━━━
💡 小提醒:您有2小時的專注時間,請優先處理最重要的任務!
n8n 設定步驟
- 建立新工作流程
- 新增排程觸發節點(平日早上6點)
- 新增 Google Calendar 節點(取得活動)
- 新增程式碼節點(格式化訊息)
- 新增 Slack 節點(傳送訊息)
- 啟用工作流程
需要我產生完整的 n8n 工作流程 JSON 嗎?
---
*Calendar Automation 技能 - Claude Office Skills 系列*






