calendar-automation

calendar-automation

熱門

Google Calendar 與 Outlook 自動化 - 排程最佳化、會議工作流程、時間區塊管理,以及 Slack/Sheets 整合

306星標
68分支
更新於 2026/1/31
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 設定步驟

  1. 建立新工作流程
  2. 新增排程觸發節點(平日早上6點)
  3. 新增 Google Calendar 節點(取得活動)
  4. 新增程式碼節點(格式化訊息)
  5. 新增 Slack 節點(傳送訊息)
  6. 啟用工作流程

需要我產生完整的 n8n 工作流程 JSON 嗎?


---

*Calendar Automation 技能 - Claude Office Skills 系列*