Agent skill
calendar-today
Show all of today's events in time order. Use when user asks what's on their schedule today, what meetings they have, or what's happening today.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/calendar-today
Metadata
Additional technical details for this skill
- openclaw
-
{ "requires": { "bins": [ "sqlite3", "python3" ] } }
SKILL.md
Calendar Today — Today's Schedule
Show all events scheduled for today, all-day events first, then timed events in chronological order.
Steps
DB="$HOME/Library/Group Containers/group.com.apple.calendar/Calendar.sqlitedb"
# CoreData epoch: seconds since 2001-01-01
# Today's window: midnight to midnight local time
TODAY_START=$(python3 -c "
from datetime import datetime, date
import calendar, time
d = date.today()
epoch_2001 = 978307200
start = int(datetime(d.year, d.month, d.day, 0, 0, 0).timestamp()) - epoch_2001
end = int(datetime(d.year, d.month, d.day, 23, 59, 59).timestamp()) - epoch_2001
print(start, end)
")
NOW_CD=$(echo $TODAY_START | cut -d' ' -f1)
END_CD=$(echo $TODAY_START | cut -d' ' -f2)
sqlite3 "$DB" "
SELECT
ci.all_day,
COALESCE(
strftime('%H:%M', oc.occurrence_start_date + 978307200, 'unixepoch', 'localtime'),
strftime('%H:%M', oc.occurrence_date + 978307200, 'unixepoch', 'localtime')
) as start_time,
COALESCE(
strftime('%H:%M', oc.occurrence_end_date + 978307200, 'unixepoch', 'localtime'),
''
) as end_time,
ci.summary as title,
COALESCE(l.title, '') as location,
COALESCE(ci.conference_url, '') as conf_url,
c.title as calendar,
ci.invitation_status,
ci.ROWID as id
FROM OccurrenceCache oc
JOIN CalendarItem ci 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
LEFT JOIN Location l ON ci.location_id = l.ROWID
WHERE oc.occurrence_date >= $NOW_CD
AND oc.occurrence_date <= $END_CD
AND ci.hidden = 0
AND ci.status != 2
AND s.type != 5
AND s.disabled = 0
GROUP BY ci.ROWID
ORDER BY ci.all_day DESC, oc.occurrence_date, COALESCE(oc.occurrence_start_date, oc.occurrence_date);
"
Output Format
Present as two sections:
All-Day List all-day events by name and calendar (no time needed).
Timed Events
Table with columns: Time (HH:MM–HH:MM), Event, Location, Calendar.
Flag pending invites (invitation_status = 3) with "(pending)" note.
If conf_url is set, note "📍 Meet/Zoom link" or just say "has video link."
Show total event count at the bottom. If no events: "Nothing on the calendar today."
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?