Awesome-omni-skill get-dates
Resolve target date from argument and return all date formats needed for planning rituals.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/get-dates" ~/.claude/skills/diegosouzapw-awesome-omni-skill-get-dates && rm -rf "$T"
manifest:
skills/development/get-dates/SKILL.mdsource content
Get Dates
This sub-skill resolves a target date from user arguments and returns all date-related fields needed by planning rituals.
Input
The
$ARGUMENTS variable contains the raw date argument:
→ today(empty)
→ todaytoday
→ tomorrowtomorrow
,monday
, etc. → next occurrence (including today if matches)tuesday
,next monday
, etc. → next occurrence after todaynext tuesday
→ specific dateYYYY-MM-DD
Instructions
-
Parse
to determine the target date$ARGUMENTS -
Use macOS
commands to resolve relative dates:date# For "tomorrow" date -v+1d +"%Y-%m-%d" # For next weekday (e.g., "monday") # Calculate days until next occurrence -
Calculate all date fields for the resolved target date:
# Day of week date -j -f "%Y-%m-%d" "$TARGET_DATE" +"%A" # ISO week number date -j -f "%Y-%m-%d" "$TARGET_DATE" +"%Y-W%V" # Month date -j -f "%Y-%m-%d" "$TARGET_DATE" +"%Y-%m" # Quarter # Q1: Jan-Mar, Q2: Apr-Jun, Q3: Jul-Sep, Q4: Oct-Dec -
Determine relationship to today:
: target date equals current dateis_today
: target date is after current dateis_future
: target date is before current dateis_past
Output
Return structured JSON:
{ "target_date": "2026-02-15", "day_name": "Sunday", "day_short": "Sun", "week": "2026-W07", "month": "2026-02", "month_name": "February", "quarter": "2026-Q1", "year": "2026", "is_today": false, "is_future": true, "is_past": false, "days_from_today": 1 }
Error Cases
- Invalid date format: Return error with valid format examples
- Past date: Allow but set
for caller to handleis_past: true
Example Resolutions
| Input | Target Date | Notes |
|---|---|---|
| 2026-02-14 | Today |
| 2026-02-14 | Today |
| 2026-02-15 | +1 day |
| 2026-02-16 | Next Monday (including today if Monday) |
| 2026-02-16 | Next Monday (always future) |
| 2026-02-20 | Specific date |
Week Resolution (for weekly rituals)
When
scope=week is passed in arguments or the input contains an ISO week format:
Week Input Formats
→ current week(empty)
→ previous weeklast week
→ specific ISO week (e.g., 2026-W07)YYYY-Www
Week Calculations
# Get current ISO week date +"%G-W%V" # Get week start (Monday) from ISO week # Use: date command with week calculation # Get week end (Sunday) from ISO week # week_end = week_start + 6 days
Extended Output for Weekly Scope
When resolving weeks, include these additional fields:
{ "target_date": "2026-02-14", "day_name": "Saturday", "day_short": "Sat", "week": "2026-W07", "week_start": "2026-02-09", "week_end": "2026-02-15", "is_current_week": true, "is_past_week": false, "month": "2026-02", "month_name": "February", "quarter": "2026-Q1", "year": "2026", "is_today": false, "is_future": true, "is_past": false, "days_from_today": 1 }
Week Resolution Examples
| Input | Target Week | Week Start | Week End |
|---|---|---|---|
scope=week | 2026-W07 | 2026-02-09 | 2026-02-15 |
| 2026-W06 | 2026-02-02 | 2026-02-08 |
| 2026-W05 | 2026-01-26 | 2026-02-01 |
Week Resolution Logic
- If input matches
pattern → use directlyYYYY-Www - If input is
→ current week minus 1last week - If
with empty input → current weekscope=week - Calculate
as the Monday of that weekweek_start - Calculate
as the Sunday of that weekweek_end