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.md
source 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:

  • (empty)
    → today
  • today
    → today
  • tomorrow
    → tomorrow
  • monday
    ,
    tuesday
    , etc. → next occurrence (including today if matches)
  • next monday
    ,
    next tuesday
    , etc. → next occurrence after today
  • YYYY-MM-DD
    → specific date

Instructions

  1. Parse

    $ARGUMENTS
    to determine the target date

  2. Use macOS

    date
    commands to resolve relative dates:

    # For "tomorrow"
    date -v+1d +"%Y-%m-%d"
    
    # For next weekday (e.g., "monday")
    # Calculate days until next occurrence
    
  3. 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
    
  4. Determine relationship to today:

    • is_today
      : target date equals current date
    • is_future
      : target date is after current date
    • is_past
      : target date is before current date

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
    is_past: true
    for caller to handle

Example Resolutions

InputTarget DateNotes
(empty)
2026-02-14Today
today
2026-02-14Today
tomorrow
2026-02-15+1 day
monday
2026-02-16Next Monday (including today if Monday)
next monday
2026-02-16Next Monday (always future)
2026-02-20
2026-02-20Specific date

Week Resolution (for weekly rituals)

When

scope=week
is passed in arguments or the input contains an ISO week format:

Week Input Formats

  • (empty)
    → current week
  • last week
    → previous week
  • YYYY-Www
    → specific ISO week (e.g., 2026-W07)

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

InputTarget WeekWeek StartWeek End
(empty)
scope=week
2026-W072026-02-092026-02-15
last week
2026-W062026-02-022026-02-08
2026-W05
2026-W052026-01-262026-02-01

Week Resolution Logic

  1. If input matches
    YYYY-Www
    pattern → use directly
  2. If input is
    last week
    → current week minus 1
  3. If
    scope=week
    with empty input → current week
  4. Calculate
    week_start
    as the Monday of that week
  5. Calculate
    week_end
    as the Sunday of that week