← Back to list
⚡

calendar-automation

Google Calendar and Outlook automation - scheduling optimization, meeting workflows, time blockin…
⚡ Productivity skills By claude-office-skills Version v1.0.0 Added 2026-10-31 Updated 2026-10-31 Source ↗
4.9Overall rating
0Views
0Downloads
552Stars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "calendar-automation" skill by following the instructions at https://skill123.me/install/calendar-automation.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/calendar-automation.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 4 KB
📊 Static rating
4.9/10
Trigger
4.5
Structure
6.0
Workflow
2.0
Content
4.0
Engineering
5.5
Security
8.0

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

Google Calendar and Outlook automation - scheduling optimization, meeting workflows, time blocking, and Slack/Sheets integration

Calendar Automation

Automate Google Calendar and Outlook workflows for meeting management, time blocking, daily digests, and cross-platform synchronization. Based on n8n workflow templates.

Documentation

Google Calendar and Outlook automation - scheduling optimization, meeting workflows, time blocking, and Slack/Sheets integration

Calendar Automation

Automate Google Calendar and Outlook workflows for meeting management, time blocking, daily digests, and cross-platform synchronization. Based on n8n workflow templates.

Overview

This skill covers:

  • Meeting scheduling automation
  • Time blocking strategies
  • Daily calendar digests to Slack
  • Meeting prep reminders
  • Calendar analytics

---

Core Workflows

### 1. Daily Calendar Digest to 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: |
        ☀️ *Good morning! Here's your day:*
        
        📅 *{date}*
        
        *Schedule Overview:*
        • {total_meetings} meetings ({total_hours}h)
        • {free_time}h of free time
        • {back_to_back} back-to-back slots ⚠️
        
        *Today's Events:*
        {event_list}
        
        💡 *Tip:* {daily_tip}
        
  5. send_to_slack:
      channel: "#daily-schedule" or DM
      
  6. log_to_sheets:
      spreadsheet: "Calendar Analytics"
      data: [date, meetings, hours, categories]

**Event List Format**:


• 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. Meeting Prep Automation


workflow: "Meeting Preparation"

trigger:
  type: calendar_event
  time: 1_hour_before_meeting
  filter: has_attendees AND duration >= 30min
View full documentation

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}

**Time:** {start_time}

**Duration:** {duration}

**Link:** {meeting_link}

Attendees

{attendee_profiles}

Context

  • Last interaction: {last_meeting_date}
  • Open items: {open_tasks}
  • Recent emails: {email_summary}

Suggested Agenda

{ai_suggested_agenda}

Talking Points

{ai_talking_points}

4. send_reminder:

slack_dm:

message: |

⏰ Meeting in 1 hour: *{title}*

📋 Prep Doc ({prep_doc_link})

🔗 Join Meeting ({meeting_link})

Quick context: {one_line_summary}



---

### 3. Smart Time Blocking

workflow: "Auto Time Blocking"

schedule: "Sunday 8pm" # Plan for next week

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: "✅ Weekly time blocks created. {x} hours of focus time protected."



---

### 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: |

**Booked via Calendly**

Name: {invitee_name}

Email: {invitee_email}

Company: {company}

**Pre-meeting questions:**

{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: "📅 New booking: {event_type} with {invitee_name} on {date}"



---

### 5. Calendar Analytics

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: |

📊 Weekly Calendar Analytics

Time Distribution

| Category | Hours | % of Week |

|----------|-------|-----------|

| Meetings | {meetings_hours} | {meetings_pct}% |

| Focus Time | {focus_hours} | {focus_pct}% |

| Admin | {admin_hours} | {admin_pct}% |

| Available | {available_hours} | {available_pct}% |

Meeting Insights

  • Total meetings: {total_meetings}
  • Average length: {avg_length} min
  • Back-to-back: {b2b_count} ({b2b_pct}%)
  • With agenda: {agenda_pct}%

Productivity Score

🎯 **{productivity_score}/100**

  • Longest focus block: {longest_focus}
  • Meeting fragmentation: {fragmentation}
  • After-hours: {after_hours_count}

Recommendations

{ai_recommendations}



---

## Time Blocking Templates

### Maker Schedule (Individual Contributor)

┌─────────────────────────────────────┐

│ 9:00 - 11:00 │ Deep Work Block 1 │

├─────────────────────────────────────┤

│ 11:00 - 11:30 │ Email/Slack │

├─────────────────────────────────────┤

│ 11:30 - 12:30 │ Meetings Window │

├─────────────────────────────────────┤

│ 12:30 - 1:30 │ Lunch │

├─────────────────────────────────────┤

│ 1:30 - 3:30 │ Deep Work Block 2 │

├─────────────────────────────────────┤

│ 3:30 - 4:00 │ Buffer/Admin │

├─────────────────────────────────────┤

│ 4:00 - 5:00 │ Meetings Window │

├─────────────────────────────────────┤

│ 5:00 - 5:30 │ Daily Wrap-up │

└─────────────────────────────────────┘



### Manager Schedule

┌─────────────────────────────────────┐

│ 8:00 - 8:30 │ Daily Planning │

├─────────────────────────────────────┤

│ 8:30 - 9:00 │ Team Standup │

├─────────────────────────────────────┤

Score breakdown

Trigger
4.5
Trigger 4.5/10 — Description is broad and lacks when-not boundaries; the file presents n8n YAML templates rather than interactive agent steps, with no ask-instead-of-guess or confirmation gates. Content has contradictions (Outlook mentioned but only Google covered), undefined placeholders, and duplicated sections, while engineering is weakened by nonstandard frontmatter fields and reliance on unspecified external services.
Structure
6.0
Structure 6/10
Workflow
2.0
Workflow 2/10
Content
4.0
Content 4/10
Engineering
5.5
Engineering 5.5/10
Security
8.0
Security 8/10