datetime-formatting

A date-and-time formatting guide for meeting confirmation messages.

In plain words
What is it for?
Use it to format dates like Thursday, January 08, 2026 and time ranges like 09:00 AM - 10:30 AM.
Why use it?
It prevents inconsistent dates, day names, times, and AM/PM spacing in confirmations.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/cxcscmu/skilllearnbench/datetime-formatting
Any agent
npx skills add cxcscmu/SkillLearnBench --skill datetime-formatting
Clone the repo
git clone --depth 1 https://github.com/cxcscmu/SkillLearnBench

Made for: Claude Code, Codex.

Per session 15 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,594 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00015 $0.01594
Opus 5 $0.00008 $0.00797
Sonnet 5 $0.00003 $0.00319
Haiku 4.5 $0.00002 $0.00159

Measured 2d ago against content hash 73946ddbeeac, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

datetime-formatting scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/b1-one-shot-claude-haiku-4-5/schedule-planning/datetime-formatting/SKILL.md · 177 lines

How it starts

The opening of the file, as written. The whole thing — 177 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Date/Time Formatting Skill

Overview

This skill covers formatting dates and times in the specific formats required for meeting confirmation replies, including proper day names, 12-hour AM/PM format, and date formatting.

Key Concepts

Required Format Specifications

Date Format: {day_name}, {month} {DD}, {YYYY}

  • Example: Thursday, January 08, 2026
  • NOT: January 8th, 2026 or January 8, 2026
  • Two-digit day with leading zero
  • Full month name (not abbreviated)
  • Full day name (not abbreviated)

Time Format: {HH:MM AM/PM} - {HH:MM AM/PM}

  • Example: 09:00 AM - 10:30 AM
  • Two-digit hour with leading zero
  • Two-digit minute with leading zero (never just 9:00 AM)
  • Uppercase AM/PM with space before it

Code Examples

Format Date

from datetime import datetime

def format_date(date_obj):
    """Format datetime to 'Thursday, January 08, 2026' format"""
    return date_obj.strftime('%A, %B %d, %Y')

# Example
d = datetime(2026, 1, 8)
print(format_date(d))  # Thursday, January 08, 2026

Format Time Range

def format_time(hour, minute, use_am_pm=True):
    """Format single time as 'HH:MM AM/PM'"""
    time_obj = datetime(2026, 1, 1, hour, minute)
    if use_am_pm:
        return time_obj.strftime('%I:%M %p')
    else:
        return time_obj.strftime('%H:%M')

def format_time_range(start_hour, start_minute, end_hour, end_minute):
    """Format time range as 'HH:MM AM/PM - HH:MM AM/PM'"""
    start_time = format_time(start_hour, start_minute)
    end_time = format_time(end_hour, end_minute)
    return f'{start_time} - {end_time}'

# Example
print(format_time_range(9, 0, 10, 30))  # 09:00 AM - 10:30 AM
print(format_time_range(13, 30, 15, 0))  # 01:30 PM - 03:00 PM

Format Duration in Hours

def format_duration(duration_hours):
    """Format duration as 'X hour(s)' - match request format"""
    if duration_hours == int(duration_hours):
        hours = int(duration_hours)
        return f'{hours} hour' if hours == 1 else f'{hours} hours'
    else:
        # Handle fractional hours
        total_minutes = int(duration_hours * 60)
        if total_minutes % 60 == 0:
            hours = total_minutes // 60
            return f'{hours} hours'
        else:
            return f'{duration_hours} hours'

# Examples
print(format_duration(1.0))    # 1 hour
print(format_duration(1.5))    # 1.5 hours
print(format_duration(0.75))   # 0.75 hours

Read the full file on GitHub · 177 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 177 lines · 15 tokens per session scan A 73946ddbeeac

Subscribe to this mod's changes

datetime-formatting is a skill published in the GitHub repository cxcscmu/SkillLearnBench (82 stars, last pushed 1mo ago), licensed MIT. It adds 15 tokens to every session and 1,594 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

creating-skills

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Letta Code's capabilities with specialized knowledge, workflows, or tool integrations.

letta-ai/letta-code · 47 tokens

Context Doctor

Identify and repair degradation in system prompt, external memory, and skills preventing you from following instructions or remembering information as well as you should.

letta-ai/letta-code · 30 tokens

image-generation

Generate images from text prompts (and optionally edit/remix input images). Use when the user asks to create, generate, draw, render, or edit an image, illustration, logo, icon, diagram, or photo.

letta-ai/letta-code · 47 tokens

adding-models

Guide for adding new LLM models to Letta Code. Use when the user wants to add support for a new model, needs to know valid model handles, or wants to update model-specific compatibility behavior. Covers runtime catalog sources, CI test matrices, and handle validation.

letta-ai/letta-code · 58 tokens

hotpath_init

Configure hotpath profiling in a Rust project. Adds the hotpath dependency with feature-gated setup, instruments main with hotpath::main, functions with measure/measureall, and wraps channels, mutexes, rwlocks, streams, futures, reqwest clients, axum routers and byte-level I/O with hotpath macros. Use when the user…

pawurb/hotpath-rs · 88 tokens

writing-bench-task-judge

Use when writing or modifying checkgoals() / getanswer() / App check methods in benchenv/task/, or when reviewing a draft task's judge correctness. Triggers include adding a new task, editing a judge method, or diagnosing a judge false-positive/negative.

Purewhiter/mobilegym · 68 tokens