CommunityBildgithub.com

modbender/skill-library-mcp

Automated appointment management for beauty salons, clinics, studios, and photo booths. Handles booking requests, calendar sync, conflict detection, reminders, no-show tracking, and waitlist management.

Was ist skill-library-mcp?

skill-library-mcp is a Claude Code agent skill that automated appointment management for beauty salons, clinics, studios, and photo booths. Handles booking requests, calendar sync, conflict detection, reminders, no-show tracking, and waitlist management.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/modbender/skill-library-mcp/tree/HEAD/data/appointment-scheduler

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Appointment Scheduler 📅

Automated appointment management system for service businesses.

Features

  1. 예약 접수 — Parse booking requests from DM/KakaoTalk/phone (text-converted)
  2. 캘린더 등록 — Auto-sync with Google Calendar / Naver Calendar
  3. 충돌 감지 — Prevent double-booking
  4. 리마인더 — Auto-notify customers 1 day before + 2 hours before
  5. 노쇼 관리 — Track no-shows and flag repeat offenders
  6. 대기 명단 — Auto-waitlist when fully booked + auto-notify on cancellation

Target Use Cases

  • 미용실 (Beauty Salons)
  • 병원 (Clinics)
  • 스튜디오 (Studios)
  • 포토부스 MUFI (Photo Booths)

Quick Start

1. Initialize Configuration

node <skill-dir>/scripts/init-config.js

This creates config/appointment-scheduler.json with:

  • Business hours
  • Service duration defaults
  • Calendar connection settings
  • Reminder timing preferences
  • No-show policy

2. Process Incoming Request

From text message:

node <skill-dir>/scripts/parse-booking.js --text "내일 오후 3시에 컷 예약 가능할까요? - 김철수 010-1234-5678"

From conversation context:

"고객이 예약 요청했어요: [message content]"

The skill will:

  1. Parse date/time, service type, customer name, contact
  2. Check calendar for conflicts
  3. If available → book + confirm
  4. If conflict → suggest alternatives or add to waitlist

3. Manual Booking

node <skill-dir>/scripts/book.js \
  --date "2026-02-20" \
  --time "15:00" \
  --duration 60 \
  --service "컷" \
  --customer "김철수" \
  --phone "010-1234-5678"

4. Check Schedule

# Today's appointments
node <skill-dir>/scripts/check-schedule.js --date today

# Specific date
node <skill-dir>/scripts/check-schedule.js --date 2026-02-20

# This week
node <skill-dir>/scripts/check-schedule.js --week

5. Send Reminders

Manual trigger:

node <skill-dir>/scripts/send-reminders.js

Auto-trigger via cron:

# Daily at 9:00 AM - send 1-day-before reminders
0 9 * * * node /path/to/skills/appointment-scheduler/scripts/send-reminders.js --type day-before

# Hourly - send 2-hour-before reminders
0 * * * * node /path/to/skills/appointment-scheduler/scripts/send-reminders.js --type hour-before

6. Handle No-Shows

# Mark customer as no-show
node <skill-dir>/scripts/mark-noshow.js --booking-id abc123

# Check no-show stats
node <skill-dir>/scripts/noshow-report.js

# Flag repeat offenders (3+ no-shows)
node <skill-dir>/scripts/noshow-report.js --flag-repeat

7. Waitlist Management

# Add to waitlist
node <skill-dir>/scripts/waitlist.js add \
  --date "2026-02-20" \
  --time "15:00" \
  --customer "이영희" \
  --phone "010-9999-8888"

# Check waitlist
node <skill-dir>/scripts/waitlist.js list --date 2026-02-20

# Notify waitlist on cancellation
node <skill-dir>/scripts/waitlist.js notify --booking-id abc123

Data Storage

Location: workspace/data/appointments/

data/appointments/
  bookings/
    2026-02-20.json          # Daily booking records
  waitlist/
    2026-02-20.json          # Daily waitlist
  noshow/
    history.json             # No-show records
    flagged-customers.json   # Repeat offenders
  reminders/
    sent.json                # Reminder delivery log

Calendar Integration

Google Calendar

  1. Enable Google Calendar API
  2. Download OAuth credentials → save as ~/.secrets/google-calendar-credentials.json
  3. First run will prompt browser auth
  4. Refresh token saved to ~/.secrets/google-calendar-token.json

Sync script:

node <skill-dir>/scripts/sync-google-calendar.js

Naver Calendar

Uses Naver Calendar API (if available) or browser automation fallback.

Config: Add Naver account to config/appointment-scheduler.json

Booking Request Parsing

The parser handles natural language like:

  • "내일 오후 3시 컷 예약"
  • "2월 20일 15:00 펌 가능할까요"
  • "다음주 월요일 오전 컷+염색"
  • "3시에 포토부스 예약 - 김철수 010-1234-5678"

Extracted fields:

  • Date (relative or absolute)
  • Time
  • Service type
  • Customer name
  • Contact (phone/email/username)
  • Special notes

Conflict Detection

Before confirming:

  1. Check existing bookings in date/time slot
  2. Calculate service duration overlap
  3. If conflict → suggest nearest available slot
  4. If fully booked → offer waitlist

Buffer time: Configurable in config (default: 10 min between appointments)

Reminder System

Default timing:

  • 1 day before at 9:00 AM — "내일 오후 3시 예약 있습니다"
  • 2 hours before — "2시간 후 예약 있습니다"

Delivery channels (auto-detect from customer contact):

  • Phone → SMS (via message tool)
  • Instagram → DM
  • KakaoTalk → Message

Customization: Edit timing in config/appointment-scheduler.json

No-Show Management

Tracking:

  • Mark as no-show if customer doesn't show up within 15 min grace period
  • Record in noshow/history.json
  • Count per customer

Auto-flag policy (default):

  • 3+ no-shows → flag customer
  • Flagged customers require deposit for future bookings

Query:

# Check customer history
node <skill-dir>/scripts/noshow-report.js --customer "김철수"

# Monthly stats
node <skill-dir>/scripts/noshow-report.js --month 2026-02

Waitlist Auto-Notify

When a booking is cancelled:

  1. Find waitlist entries for same date/time
  2. Auto-send notification: "예약 자리가 났습니다! 원하시면 예약 가능합니다"
  3. First-come-first-served → confirm via reply
  4. Auto-book if confirmed within 30 min

Voice Integration

Supports phone call → text → booking flow:

  1. Receive call transcript (via STT tool)
  2. Parse booking request
  3. Confirm availability
  4. Send SMS confirmation

Hook Integration

pre-hook: Before booking → check business hours, service availability post-hook: After booking → send confirmation, update calendar, log event conflict-hook: On conflict → trigger alternative suggestion or waitlist flow

Event Bus Integration

Location: events/appointment-YYYY-MM-DD.json

{
  "timestamp": "2026-02-18T15:30:00Z",
  "event": "booking_created",
  "booking_id": "abc123",
  "customer": "김철수",
  "date": "2026-02-20",
  "time": "15:00",
  "service": "컷"
}

Cron Setup

Recommended cron jobs:

# Send day-before reminders at 9 AM
0 9 * * * node /path/to/skills/appointment-scheduler/scripts/send-reminders.js --type day-before

# Send 2-hour reminders every hour
0 * * * * node /path/to/skills/appointment-scheduler/scripts/send-reminders.js --type hour-before

# Sync calendar every 30 min
*/30 * * * * node /path/to/skills/appointment-scheduler/scripts/sync-google-calendar.js

# Daily no-show report at 8 PM
0 20 * * * node /path/to/skills/appointment-scheduler/scripts/noshow-report.js --daily

Configuration Template

Location: config/appointment-scheduler.json

{
  "business_name": "MUFI 포토부스",
  "business_hours": {
    "monday": { "open": "10:00", "close": "20:00" },
    "tuesday": { "open": "10:00", "close": "20:00" },
    "wednesday": { "open": "10:00", "close": "20:00" },
    "thursday": { "open": "10:00", "close": "20:00" },
    "friday": { "open": "10:00", "close": "22:00" },
    "saturday": { "open": "10:00", "close": "22:00" },
    "sunday": { "open": "12:00", "close": "18:00" }
  },
  "services": {
    "포토촬영": { "duration": 30, "buffer": 10 },
    "컷": { "duration": 60, "buffer": 10 },
    "펌": { "duration": 120, "buffer": 15 },
    "염색": { "duration": 90, "buffer": 15 }
  },
  "reminders": {
    "day_before": { "enabled": true, "time": "09:00" },
    "hour_before": { "enabled": true, "hours": 2 }
  },
  "noshow_policy": {
    "grace_period_min": 15,
    "flag_threshold": 3,
    "require_deposit_when_flagged": true
  },
  "calendar": {
    "google": {
      "enabled": true,
      "calendar_id": "primary"
    },
    "naver": {
      "enabled": false
    }
  }
}

Troubleshooting

IssueSolution
예약 파싱 실패Check parse-booking.js output, add custom patterns
캘린더 동기화 에러Verify OAuth credentials, check token expiry
리마인더 미발송Check cron job status, verify message tool config
중복 예약 발생Ensure conflict detection enabled, check buffer time
대기 명단 알림 실패Check customer contact info, verify message channel

Advanced Usage

Custom Service Types

Edit config/appointment-scheduler.json:

"services": {
  "신규서비스": { "duration": 45, "buffer": 10 }
}

Block Off Time

# Mark time slot as unavailable
node <skill-dir>/scripts/block-time.js \
  --date "2026-02-20" \
  --start "12:00" \
  --end "13:00" \
  --reason "점심시간"

Bulk Import

# Import from CSV
node <skill-dir>/scripts/import-bookings.js --file bookings.csv

Export Reports

# Monthly booking report
node <skill-dir>/scripts/export-report.js --month 2026-02 --format json

# No-show analysis
node <skill-dir>/scripts/noshow-report.js --month 2026-02 --export csv

Learned Lessons

  • Natural language parsing accuracy: ~85% for Korean date/time expressions
  • Reminder delivery rate: 95%+ via Instagram DM, 80%+ via SMS
  • No-show rate reduced by 40% after implementing 1-day-before reminders
  • Waitlist auto-notify increases booking fill rate by 25%

🐧 Built by 무펭이 — 무펭이즘(Mupengism) 생태계 스킬

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

modbender/skill-library-mcp

Complete investment portfolio risk management system. Analyze positions, calculate risk metrics, stress test scenarios, optimize allocations, and generate institutional-grade risk reports — all wit...

modbender/skill-library-mcp

Borrow from Aave via credit delegation. Agent self-funds by borrowing against delegator collateral. Supports borrow, repay, health checks. Works on Aave V2/V3.

modbender/skill-library-mcp

Discover and register autonomous AI agents. Use when: browsing the agent registry, submitting an agent for verification, or embedding agent badges. NOT for: general web search or agent capability analysis.

modbender/skill-library-mcp

Create AI avatar and talking head videos with OmniHuman, Fabric, PixVerse via inference.sh CLI. Models: OmniHuman 1.5, OmniHuman 1.0, Fabric 1.0, PixVerse Lipsync. Capabilities: audio-driven avatars, lipsync videos, talking head generation, virtual presenters. Use for: AI presenters, explainer videos, virtual influencers, dubbing, marketing videos. Triggers: ai avatar, talking head, lipsync, avatar video, virtual presenter, ai spokesperson, audio driven video, heygen alternative, synthesia alternative, talking avatar, lip sync, video avatar, ai presenter, digital human

modbender/skill-library-mcp

AI代码编辑器规则模板集合 - 为Cursor、Windsurf、Claude Code、Cline等AI编辑器提供项目规则配置。适用于需要配置AI编码助手规则的开发者,包含全栈Web、移动端、Vue3+SpringBoot等技术栈模板。

modbender/skill-library-mcp

Generate landing page code from product descriptions

modbender/skill-library-mcp

Create AI marketing videos for ads, promos, product launches, and brand content. Models: Veo, Seedance, Wan, FLUX for visuals, Kokoro for voiceover. Types: product demos, testimonials, explainers, social ads, brand videos. Use for: Facebook ads, YouTube ads, product launches, brand awareness. Triggers: marketing video, ad video, promo video, commercial, brand video, product video, explainer video, ad creative, video ad, facebook ad video, youtube ad, instagram ad, tiktok ad, promotional video, launch video

modbender/skill-library-mcp

Generate AI music videos end-to-end. Creates music with Suno (sunoapi.org), generates visuals with OpenAI/Seedream/Google/Seedance, and assembles into music video with ffmpeg. Supports timestamped lyrics (auto SRT), Suno native music video generation, slideshow/video/hybrid modes. Token-based cost tracking per generation.

modbender/skill-library-mcp

Generate AI-powered notes from videos (document, outline, or graphic-text formats)

modbender/skill-library-mcp

The video AI notes tool is provided by Baidu. Based on the video download address provided by the user, it downloads and parses the video, and finally generates AI notes corresponding to the video (a total of three types of notes can be generated: document notes, outline notes, and image-text notes).

modbender/skill-library-mcp

Bird identification, life list tracking, and trading card generation. Use this skill when the user: sends a bird photo to identify, says "set up my Birdfolio" or "set my region", asks "how's my checklist", asks "Birdfolio progress", asks "how many birds have I found", asks "show my Birdfolio" or "show my life list", asks "what's my rarest bird", or asks "tell me about [bird species]". Handles everything from first-time setup through ongoing life list tracking and visual trading card generation.

modbender/skill-library-mcp

Multi-project task and research management (JSON-first CLI)

modbender/skill-library-mcp

Track stock and crypto portfolios with CLI - real-time prices, P&L, dividend tracking, multiple portfolios

modbender/skill-library-mcp

Track cryptocurrency portfolios with real-time prices, P&L calculations, and allocation analysis. Query Bitcoin, Ethereum, Solana and 10,000+ token holdings.

modbender/skill-library-mcp

加密貨幣Portfolio追蹤 - 支援TRON/ETH/BSC,分析持倉、收益、Gas費用

modbender/skill-library-mcp

Lead strategy with competitive analysis, strategic planning, growth roadmaps, and business portfolio management.

modbender/skill-library-mcp

Create ATS-optimized resumes and CVs with proper structure, metrics, and industry targeting.

modbender/skill-library-mcp

Query land ownership, leases, landlord info, and land payments. Write operations for payment management and lease renewals.

modbender/skill-library-mcp

Generate viral marketing content for skincare affiliate products

modbender/skill-library-mcp

Native video analysis using Google Gemini API. Upload and analyze video files — describe scenes, extract text/UI, answer questions about content, transcribe speech, identify objects and actions. Use when: (1) User sends a video file and wants it analyzed, (2) Video summarization or description needed, (3) Extracting text, UI elements, or information from screen recordings, (4) Answering questions about video content, (5) Comparing multiple videos, (6) Analyzing tutorials, demos, or walkthroughs.

Verwandte Skills