🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Feishu Calendar Conflict Detector

by @ramlee77

Feishu Calendar Conflict Detector - Detect scheduling conflicts before booking meetings. **Features**: - Check if attendees are available before creating mee...

Versionv1.0.0
Downloads691
TERMINAL
clawhub install feishu-calendar-conflict

πŸ“– About This Skill


name: feishu-calendar-conflict description: | Feishu Calendar Conflict Detector - Detect scheduling conflicts before booking meetings. Features: - Check if attendees are available before creating meeting - Query multiple users' free/busy status - Suggest available time slots - Visualize calendar conflicts Trigger: - User mentions "check conflict", "既间冲ηͺ", "冲ηͺζ£€ζ΅‹", "ζœ‰ζ²‘ζœ‰η©Ί" - User wants to book a meeting and check availability

Feishu Calendar Conflict Detector

⚠️ Pre-requisites

  • βœ… Time format: ISO 8601 / RFC 3339 (with timezone), e.g. 2026-03-31T14:00:00+08:00
  • βœ… Batch query: Can check up to 10 users at once
  • βœ… user_open_id needed: Get from message context SenderId

  • πŸ“‹ Quick Reference

    | Intent | Tool | action | Required Params | |--------|------|--------|-----------------| | Check free/busy | feishu_calendar_freebusy | list | time_min, time_max, user_ids | | Create meeting | feishu_calendar_event | create | summary, start_time, end_time | | Query user ID | feishu_search_user | - | query |


    πŸ› οΈ Usage

    1. Check Single User Availability

    {
      "action": "list",
      "time_min": "2026-03-31T09:00:00+08:00",
      "time_max": "2026-03-31T18:00:00+08:00",
      "user_ids": ["ou_xxx"]
    }
    

    Response format:

    {
      "busy_slots": [
        {"start": "2026-03-31T10:00:00+08:00", "end": "2026-03-31T11:00:00+08:00"},
        {"start": "2026-03-31T14:00:00+08:00", "end": "2026-03-31T15:30:00+08:00"}
      ],
      "free_slots": [
        {"start": "2026-03-31T09:00:00+08:00", "end": "2026-03-31T10:00:00+08:00"},
        {"start": "2026-03-31T11:00:00+08:00", "end": "2026-03-31T14:00:00+08:00"},
        {"start": "2026-03-31T15:30:00+08:00", "end": "2026-03-31T18:00:00+08:00"}
      ]
    }
    

    2. Check Multiple Users Availability

    {
      "action": "list",
      "time_min": "2026-03-31T09:00:00+08:00",
      "time_max": "2026-03-31T18:00:00+08:00",
      "user_ids": ["ou_xxx", "ou_yyy", "ou_zzz"]
    }
    

    Result: Returns common free time slots when ALL users are free.

    3. Find Available Meeting Slots

    Algorithm: 1. Get busy slots for all attendees 2. Find gaps between busy slots 3. Filter by minimum meeting duration 4. Return available windows

    Example: 2-hour meeting, 3 attendees

    {
      "action": "list",
      "time_min": "2026-03-31T09:00:00+08:00",
      "time_max": "2026-03-31T18:00:00+08:00",
      "user_ids": ["ou_xxx", "ou_yyy", "ou_zzz"]
    }
    

    Suggested slots (if busy 10-11, 14-15:30):

  • 09:00-10:00 βœ“
  • 11:00-14:00 βœ“
  • 15:30-18:00 βœ“
  • 4. Conflict Warning

    Before creating a meeting, warn user if conflicts exist:

    {
      "action": "list",
      "time_min": "2026-03-31T10:00:00+08:00",
      "time_max": "2026-03-31T11:00:00+08:00",
      "user_ids": ["ou_xxx", "ou_yyy"]
    }
    

    If response shows busy slots in this time range β†’ Conflict detected!


    πŸ’° Pricing

    | Version | Price | Features | |---------|-------|----------| | Free | Β₯0 | Check 1-2 users | | Pro | Β₯12/month | Check up to 10 users, auto-suggest slots | | Team | Β₯35/month | Historical analysis, recurring meeting conflicts |


    πŸ“ Example

    User says: "ηœ‹δΈ€δΈ‹ζ˜Žε€©δΈŠεˆ10η‚ΉεΌ δΈ‰ε’ŒζŽε››ζœ‰ζ²‘ζœ‰η©Ί"

    Execute: 1. Search for εΌ δΈ‰ and ζŽε›› to get open_ids 2. Query free/busy for tomorrow morning 09:00-12:00 3. Check if 10:00-11:00 is in free slot 4. Report availability

    Response: "εΌ δΈ‰ε’ŒζŽε››εœ¨ζ˜Žε€©δΈŠεˆ10点都OKοΌŒζ²‘ζœ‰ε†²ηͺ βœ“"


    πŸ”§ Tips

  • Query 30 minutes before/after desired time for buffer
  • Consider user's working hours (default: 09:00-18:00)
  • For international teams, account for timezone differences
  • Use "tentative" status as "may be busy" warning