skills/calendar-manager/SKILL.md
Manage calendar events via Apple Calendar (source of truth). Use when the user wants to check their calendar, schedule interviews, create events, find free time, or manage their schedule. Includes both DreamWorks and personal calendars.
npx skillsauth add szoloth/skills calendar-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage calendars using Apple Calendar via osascript. This is the source of truth - it aggregates both DreamWorks (work) and personal ([email protected]) calendars.
Run this to see all calendars:
osascript -e 'tell application "Calendar" to get name of every calendar'
Common calendars:
Gcal - Primary - Personal ([email protected])[email protected] - Work (DreamWorks)Home, Work - Local calendarsFunemployment - Job search relatedosascript -e '
set todayStart to current date
set time of todayStart to 0
set todayEnd to todayStart + (24 * 60 * 60)
tell application "Calendar"
set output to ""
repeat with cal in calendars
set calEvents to (every event of cal whose start date ≥ todayStart and start date < todayEnd)
repeat with e in calEvents
set output to output & (time string of (start date of e)) & " - " & (summary of e) & " [" & (name of cal) & "]" & linefeed
end repeat
end repeat
return output
end tell
'
osascript -e '
set todayStart to current date
set time of todayStart to 0
set weekEnd to todayStart + (7 * 24 * 60 * 60)
tell application "Calendar"
set output to ""
repeat with cal in calendars
set calEvents to (every event of cal whose start date ≥ todayStart and start date < weekEnd)
repeat with e in calEvents
set eventDate to date string of (start date of e)
set eventTime to time string of (start date of e)
set output to output & eventDate & " " & eventTime & " - " & (summary of e) & linefeed
end repeat
end repeat
return output
end tell
'
osascript -e '
set todayStart to current date
set time of todayStart to 0
set todayEnd to todayStart + (24 * 60 * 60)
tell application "Calendar"
set firstEvent to missing value
set firstTime to todayEnd
repeat with cal in calendars
set calEvents to (every event of cal whose start date ≥ todayStart and start date < todayEnd)
repeat with e in calEvents
if start date of e < firstTime then
set firstTime to start date of e
set firstEvent to e
end if
end repeat
end repeat
if firstEvent is not missing value then
return (time string of (start date of firstEvent)) & " - " & (summary of firstEvent)
else
return "No meetings today"
end if
end tell
'
osascript -e '
set todayStart to current date
set time of todayStart to 0
set todayEnd to todayStart + (24 * 60 * 60)
tell application "Calendar"
set cal to calendar "Gcal - Primary"
set calEvents to (every event of cal whose start date ≥ todayStart and start date < todayEnd)
set output to ""
repeat with e in calEvents
set output to output & (time string of (start date of e)) & " - " & (summary of e) & linefeed
end repeat
return output
end tell
'
osascript -e '
tell application "Calendar"
set targetCal to calendar "Gcal - Primary"
set newEvent to make new event at end of events of targetCal with properties {summary:"Interview with Gusto", start date:date "January 20, 2025 2:00 PM", end date:date "January 20, 2025 3:00 PM", location:"Zoom"}
return "Created: " & summary of newEvent
end tell
'
osascript -e '
tell application "Calendar"
set targetCal to calendar "Gcal - Primary"
set eventStart to date "January 20, 2025"
set eventEnd to date "January 21, 2025"
set newEvent to make new event at end of events of targetCal with properties {summary:"Vacation Day", start date:eventStart, end date:eventEnd, allday event:true}
return "Created all-day event: " & summary of newEvent
end tell
'
osascript -e '
set searchTerm to "interview"
set todayStart to current date
set time of todayStart to 0
set futureEnd to todayStart + (30 * 24 * 60 * 60)
tell application "Calendar"
set output to ""
repeat with cal in calendars
set calEvents to (every event of cal whose start date ≥ todayStart and start date < futureEnd)
repeat with e in calEvents
if (summary of e) contains searchTerm then
set eventDate to date string of (start date of e)
set eventTime to time string of (start date of e)
set output to output & eventDate & " " & eventTime & " - " & (summary of e) & linefeed
end if
end repeat
end repeat
return output
end tell
'
osascript -e '
tell application "Calendar"
set targetCal to calendar "Gcal - Primary"
set eventsToDelete to (every event of targetCal whose summary is "Event Title to Delete")
repeat with e in eventsToDelete
delete e
end repeat
return "Deleted " & (count of eventsToDelete) & " event(s)"
end tell
'
osascript -e '
set todayStart to current date
set time of todayStart to 0
set futureEnd to todayStart + (14 * 24 * 60 * 60)
tell application "Calendar"
set output to ""
repeat with cal in calendars
set calEvents to (every event of cal whose start date ≥ todayStart and start date < futureEnd)
repeat with e in calEvents
set eventSummary to summary of e
if eventSummary contains "interview" or eventSummary contains "Interview" then
set eventDate to date string of (start date of e)
set eventTime to time string of (start date of e)
set output to output & eventDate & " " & eventTime & " - " & eventSummary & linefeed
end if
end repeat
end repeat
if output is "" then
return "No upcoming interviews in next 14 days"
else
return output
end if
end tell
'
osascript -e '
tell application "Calendar"
set targetCal to calendar "Gcal - Primary"
set newEvent to make new event at end of events of targetCal with properties {summary:"Gusto PM Interview", start date:date "January 20, 2025 2:00 PM", end date:date "January 20, 2025 3:00 PM", location:"Zoom link here", description:"Role: PM, Interviewer: [Name]"}
return "Created interview: " & summary of newEvent & " at " & (time string of start date of newEvent)
end tell
'
Gcal - Primary)date "January 20, 2025 2:00 PM" - explicit formatcurrent date - nowcurrent date + (24 * 60 * 60) - tomorrowUses osascript directly via Bash:
Works well with:
Gcal - Primary)content-media
Fetch transcripts from YouTube videos for summarization and analysis.
documentation
This skill should be used when reviewing or editing written drafts to ensure they match Sam's personal style guide. It prioritizes voice preservation and anti-beige detection while catching structural gaps. Triggers on requests to review, edit, or improve written content.
tools
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
development
Web search and content extraction using Brave Search. Use when researching topics, finding documentation, extracting article content, or gathering information from the web. No browser required - works headlessly.