AgentSkillsCN

sync-pto-calendar

通过在 PTO 日拒绝会议,将 Workday 的带薪休假与 Google Calendar 同步。Workday 使用浏览器,Calendar 使用 API。当用户说“同步 PTO”、“在 PTO 日拒绝会议”或“PTO 日历”时,可使用此功能。

SKILL.md
--- frontmatter
name: sync-pto-calendar
description: Sync Workday PTO with Google Calendar by declining meetings on PTO days. Uses browser for Workday, API for Calendar. Use when user says "sync PTO", "decline meetings on PTO days", or "PTO calendar".

Sync PTO Calendar

Fetch approved PTO from Workday, find meetings on those days, and decline them with an automatic message.

Inputs

InputTypeDefaultPurpose
dry_runbooltruePreview without declining
days_aheadint90Days to check for PTO
decline_messagestring"I'll be out of office on PTO..."Message when declining
skip_all_dayboolfalseSkip all-day events
skip_organizer_selfbooltrueSkip meetings you organized

Workflow

1. Load Persona

  • persona_load("meetings") — Google Calendar tools

2. Check Calendar

  • google_calendar_status — verify API accessible
  • If not available → return error with setup instructions

3. Fetch PTO from Workday

  • browser_navigate(url="https://wd5.myworkday.com/redhat/d/home.htmld")
  • browser_wait_for(selector="body")
  • browser_snapshot — check for auth (sign in, login)
  • If auth needed → return "Please log in to Workday manually first"
  • browser_click(text="Time Off")
  • browser_wait_for(text="My Time Off")
  • browser_click(text="My Time Off")
  • browser_snapshot — parse for approved PTO dates (YYYY-MM-DD, MM/DD/YYYY, DD-Mon-YYYY)

4. Get Calendar Events

  • google_calendar_list_events(days=days_ahead, max_results=100)

5. Match Meetings to PTO Days

  • Parse events; for each event on a PTO date → add to decline list
  • Apply skip_all_day, skip_organizer_self

6. Dry Run (dry_run=true)

  • Return: PTO dates found, meetings to decline, decline message
  • Suggest: skill_run("sync_pto_calendar", '{"dry_run": false}')

7. Decline (dry_run=false)

  • For each PTO date: google_calendar_decline_meetings_on_date(date, message=decline_message, dry_run=false, skip_all_day, skip_organizer_self)
  • Process up to 5 dates per run

8. Post-Action

  • memory_session_log("PTO Calendar Sync", "PTO dates: X, Meetings declined: Y")

Key Details

  • Workday: May require SSO; user must be logged in
  • Date parsing: Look for "Approved" near date patterns in snapshot
  • Rate limit: Process 5 dates per run; if more, suggest running again