Community생산성 & 협업github.com

Jakeschincariol/scheduler

예약 스케줄러. 예약된 모든 통화를 캘린더에 등록합니다. "목요일 2시 괜찮아"와 같은 답변을 읽고 올바른 날짜와 시간으로 변환하며, 캘린더 충돌 여부를 확인하고, "언제 시간 돼?"라는 질문에 빈 시간을 제안하며, 승인 후 Google Meet 링크가 포함된 초대장을 생성하고, 이메일로 확인하며, 딜을 '통화 예약됨' 상태로 이동시킵니다.

scheduler란 무엇인가요?

이 스킬은 클로드 코드(Claude Code) 에이전트가 사용자 대신 통화 일정을 잡고 캘린더 이벤트로 등록하는 전체 워크플로를 자동화합니다. 상대방이 "목요일 2시에 가능해"와 같은 자연어 메시지를 보내면, `slots.py parse` 명령어를 사용해 날짜와 시간을 정확히 추출하고, 사용자 캘린더를 확인하여 일정 충돌이 없는지 검사합니다. 충돌이 있거나 사용자가 물을 경우 `slots.py free`로 열린 시간대를 제안하며, 사용자가 승인하면 Google Meet 링크가 포함된 캘린더 초대장을 생성하고 이메일로 확인 메시지를 보냅니다. 또한 CRM 딜 상태를 '통화 예약됨'으로 업데이트하여 추가 후속 작업을 중단합니다. 이 스킬의 가장 중요한 원칙은 모든 예약, 변경, 취소 작업이 사용자의 명시적인 '예'라는 승인을 받은 후에만 실행된다는 점입니다. 캘린더의 세부 내용(일정 제목, 참석자 등)은 읽지 않으며, 오직 busy/free 정보만 확인하여 일정 충돌을 방지합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Jakeschincariol/closer-skill/tree/main/scheduler

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

scheduler은(는) 무엇을 하나요?

누군가 통화에 동의하는 순간, 스케줄러가 그 순간이 지나가기 전에 양쪽 캘린더에 등록합니다. 예약된 통화 한 번은 열 번의 추가 후속 작업보다 가치 있습니다.

${CLAUDE_SKILL_DIR}는 이 스킬의 폴더입니다(이 SKILL.md가 있는 곳).

python3 "${CLAUDE_SKILL_DIR}/slots.py" parse --text "죄송합니다, 정신없는 한 주였어요! 목요일 2시에 괜찮아요." --today 2026-10-27
python3 "${CLAUDE_SKILL_DIR}/slots.py" free --busy closer/busy.json --from 2026-10-28 --days 3 --length 30
python3 "${CLAUDE_SKILL_DIR}/slots.py" invite --contact dana-harbor-lane --start 2026-10-29T14:00 --minutes 30
python3 "${CLAUDE_SKILL_DIR}/slots.py" book --contact dana-harbor-lane --start 2026-10-29T14:00 \
    --minutes 30 --approval "yes" --busy closer/busy.json

단계

  1. 시간 확인. 상대방 답변에 대해 slots.py parse를 실행합니다. "2시"에 am/pm 표시가 없으면 오후 2시로 인식합니다(17시는 오후, 812시는 오전). "명확한 시간 없음(No clear time)"이 출력되면 상대방에게 시간을 물어보세요. 날짜를 절대 추측하지 마세요. 사용자에게 전체 날짜를 알려주세요: "목요일, 10월 29일 오후 2시(귀하 시간 기준). 맞나요?"
  2. 충돌 확인. 캘린더 커넥터를 사용하여 해당 날짜의 사용자 일정을 읽고 closer/busy.json에 [{"start": "...", "end": "..."}] 형식으로 기록합니다. 사용자가 대신 옵션을 요청했다면 slots.py free로 근무 시간 내 열린 시간대를 나열하고, 두세 개를 제안합니다.
  3. 승인 요청. "Harbor Lane Dental x Your Agency, 목요일 10월 29일, 오후 2:00~2:30, Google Meet, Dana Ortiz 초대. 예 또는 아니오로 답변해 주세요."
  4. 예약. '예'라는 답변에 대해 캘린더 커넥터로 사용자 캘린더에 이벤트를 생성합니다(제목, 시간, Google Meet, Dana를 게스트로). 캘린더 커넥터가 없으면 slots.py invite가 사용자가 열거나 첨부할 수 있는 .ics 파일을 생성합니다.
  5. 기록. slots.py book --approval "<상대방의 예 응답>"을 실행합니다. 딜이 '통화 예약됨' 상태로 이동하고 /follow-up이 중단됩니다.
  6. 확인. /follow-up의 확인 시간 템플릿을 사용하여 답장을 작성합니다("목요일 2시에 괜찮아요, Dana. 지금 초대장을 보낼게요."). 그리고 그 자체로 승인을 받은 후에만 전송합니다.
  7. 준비. 통화 전에 /researcher를 실행하도록 사용자에게 상기시킵니다.

예시 (리얼 데모에서)

화요일 10월 27일, 오전 11:48: "죄송합니다, 정신없는 한 주였어요! 목요일 2시에 괜찮아요." parse 결과 목요일, 10월 29일, 오후 2:00입니다. 사용자가 시간이 비어 있고 '예'라고 하면 캘린더에 "Harbor Lane Dental x Your Agency, 목요일, 10월 29일, 오후 2:00~2:30, Google Meet, 게스트 Dana Ortiz 및 귀하"가 표시됩니다. (설명용: Dana와 Harbor Lane Dental은 가상 인물입니다.)

절대 하지 않는 일

  • 해당 이벤트에 대한 사용자의 명시적인 승인 없이는 이벤트를 예약, 이동 또는 취소하지 않습니다.
  • 사용자 캘린더에 이미 있는 일정과 중복 예약하지 않습니다.
  • 시간대를 찾기 위해 busy/free 시간 외의 캘린더 세부 정보를 읽지 않습니다.

동의 및 진실

  • 해당 메시지, 초대장 또는 문서에 대한 사용자의 명시적인 '예' 승인 없이는 아무것도 전송, 예약 또는 서명되지 않습니다. Claude가 초안을 작성하고 사용자가 '예'라고 말한 후에야 사용자 계정에서 전송됩니다: 캘린더 초대는 사용자 자신의 캘린더를 통해 전송됩니다. 메시지당 하나의 '예'. 절대 "전체 동의"는 없습니다.
  • 첫 번째 '아니오' 또는 관심 없음의 징후가 보이면 즉시 중단합니다. 중단 요청은 모든 스킬에서 영구적으로 존중됩니다.
  • 누군가 동의한 시간을 절대 임의로 만들지 않습니다. 불명확할 경우 물어보세요.

관련 스킬