AgentStack
SKILL verified MIT Self-run

Calendar Stats

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

Show calendar statistics — meeting volume, hours in meetings, busiest days, top calendars, and meeting load by day of week. Use when user asks how many meetings they have, how busy they are, or wants a time audit.

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

Install

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

✓ 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 Stats? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Calendar Stats — Meeting Volume and Time Audit

Show meeting statistics for a time period.

Arguments

$ARGUMENTS — time range (default: last 30 days):

  • "last week", "this month", "last 90 days"
  • "2026-01-01 to 2026-03-01" → date range
  • Empty → last 30 days

Steps

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

DAYS=30
if echo "$ARGS" | grep -qiE '[0-9]+ day'; then DAYS=$(echo "$ARGS" | grep -oiE '[0-9]+' | head -1); fi
if echo "$ARGS" | grep -qi 'week'; then DAYS=7; fi
if echo "$ARGS" | grep -qi '90'; then DAYS=90; fi

START_CD=$(( $(date +%s) - DAYS * 86400 - 978307200 ))
END_CD=$(( $(date +%s) - 978307200 ))

echo "=== OVERVIEW ==="
sqlite3 "$DB" "
SELECT
  COUNT(DISTINCT ci.ROWID) as total_events,
  SUM(CASE WHEN ci.all_day = 0 THEN
    MAX(0, MIN(COALESCE(oc.occurrence_end_date, oc.occurrence_date + 3600),
               COALESCE(oc.occurrence_start_date, oc.occurrence_date) + 86400)
        - COALESCE(oc.occurrence_start_date, oc.occurrence_date))
  ELSE 0 END) / 3600.0 as total_hours,
  COUNT(DISTINCT CASE WHEN ci.has_attendees = 1 THEN ci.ROWID END) as meetings_with_others,
  COUNT(DISTINCT CASE WHEN ci.all_day = 1 THEN ci.ROWID END) as all_day_events
FROM OccurrenceCache oc
JOIN CalendarItem ci ON oc.event_id = ci.ROWID
LEFT JOIN Store s ON (SELECT store_id FROM Calendar WHERE ROWID = ci.calendar_id)
WHERE oc.occurrence_date >= $START_CD
  AND oc.occurrence_date = $START_CD AND oc.occurrence_date = $START_CD AND oc.occurrence_date = $START_CD AND oc.occurrence_date 4 timed meetings/day on average = "heavy").

## Source & license

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

- **Author:** [aashari](https://github.com/aashari)
- **Source:** [aashari/ai-agent-skills](https://github.com/aashari/ai-agent-skills)
- **License:** MIT

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.