AgentStack
SKILL verified MIT Self-run

Calendar Attendees

skill-aashari-ai-agent-skills-calendar-attendees · by aashari

Find meetings with a specific person, or list attendees of a specific event. Use when user asks who is in a meeting, whether someone is invited, or what meetings they share with a person.

No reviews yet
0 installs
10 views
0.0% view→install

Install

$ agentstack add skill-aashari-ai-agent-skills-calendar-attendees

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Calendar Attendees? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Calendar Attendees — People and Meeting Roster

Two modes:

  1. Person → Meetings: Find all events where a specific person is an attendee
  2. Event → Attendees: List all attendees of a specific event

Arguments

$ARGUMENTS:

  • Person name or email: "alice", "alice@example.com", "bob"
  • Event ROWID: "1234"
  • Combined: "standup attendees", "who is in the weekly sync"

Steps

Mode 1: Find meetings with a person

DB="$HOME/Library/Group Containers/group.com.apple.calendar/Calendar.sqlitedb"
PERSON="$ARGUMENTS"

NOW_CD=$(( $(date +%s) - 978307200 ))
FUTURE_CD=$(( $(date +%s) + 30 * 86400 - 978307200 ))

echo "=== UPCOMING MEETINGS WITH: $PERSON ==="
sqlite3 -separator '|' "$DB" "
SELECT
  date(COALESCE(oc.occurrence_start_date, oc.occurrence_date) + 978307200, 'unixepoch', 'localtime') as event_date,
  COALESCE(
    strftime('%H:%M', oc.occurrence_start_date + 978307200, 'unixepoch', 'localtime'),
    'all-day'
  ) as start_time,
  ci.summary as title,
  p.email as attendee_email,
  CASE p.status
    WHEN 0 THEN 'pending'
    WHEN 1 THEN 'accepted'
    WHEN 2 THEN 'declined'
    WHEN 3 THEN 'tentative'
  END as their_status,
  c.title as calendar,
  ci.ROWID as id
FROM Participant p
JOIN CalendarItem ci ON p.owner_id = ci.ROWID
JOIN OccurrenceCache oc ON oc.event_id = ci.ROWID
LEFT JOIN Calendar c ON ci.calendar_id = c.ROWID
LEFT JOIN Store s ON c.store_id = s.ROWID
WHERE (p.email LIKE '%${PERSON}%')
  AND p.entity_type = 7
  AND oc.occurrence_date >= $NOW_CD
  AND oc.occurrence_date <= $FUTURE_CD
  AND ci.hidden = 0
  AND ci.status != 2
  AND s.type != 5
  AND s.disabled = 0
GROUP BY ci.ROWID, event_date
ORDER BY oc.occurrence_date;
"

Mode 2: List attendees for a specific event

DB="$HOME/Library/Group Containers/group.com.apple.calendar/Calendar.sqlitedb"
EVENT_ID="$ARGUMENTS"

sqlite3 -separator '|' "$DB" "
SELECT
  CASE entity_type WHEN 8 THEN 'organizer' ELSE 'attendee' END as type,
  email,
  CASE status
    WHEN 0 THEN 'needs-action'
    WHEN 1 THEN 'accepted'
    WHEN 2 THEN 'declined'
    WHEN 3 THEN 'tentative'
  END as status,
  CASE role WHEN 2 THEN 'optional' ELSE 'required' END as attendance
FROM Participant
WHERE owner_id = $EVENT_ID
ORDER BY entity_type DESC, status;
"

Output Format

Person search: Group matches by meeting. Show event title, date/time, and that person's RSVP status. Show total count of shared upcoming meetings.

Event attendees: Group as Organizer, Accepted, Declined, Tentative, Pending. Show counts per group (e.g. "8 accepted, 2 declined, 3 pending").

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.