smithery/bennoloeffler

time-formatter

Automatically detect time/date mentions in user messages and convert them to multiple timezones or formats. Use when user mentions times, dates, or asks about timezone conversions. Examples: "15:00 Berlin time", "What time is 3 PM EST in Tokyo?", "Convert 2025-01-15 10:00 CET to PST".

Installation

$ npx skills add smithery/bennoloeffler --skill time-formatter

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/bennoloeffler.

npx skills add smithery/bennoloeffler

Browse all from smithery/bennoloeffler

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsmcp__datetime__get_current_time, mcp__datetime__convert_timezone, mcp__datetime__calculate_duration

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,014 B
  • docs SUMMARY.md 310 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Time Formatter Skill

When to Use

Activate this skill automatically when user:

  • Mentions specific times with timezone ("15:00 CET", "3 PM EST")
  • Asks "what time is..." questions
  • Requests timezone conversions
  • Provides dates/times for scheduling
  • Compares times across locations

Detection Patterns

Explicit Timezone Mentions

  • "15:00 Berlin"
  • "3 PM EST"
  • "10:30 America/New_York"
  • "noon CET"

Implicit Conversions

  • "What time is it in Tokyo?"
  • "When is 5 PM here in New York?"
  • "Convert 14:00 to PST"

Scheduling Context

  • "Let's meet at 3 PM my time" (need to detect user timezone)
  • "Schedule for tomorrow 9 AM Berlin"

Instructions

Step 1: Detect Time/Timezone in Input

Parse user message for:

  1. Time: HH:MM format or descriptive (e.g., "noon", "5 PM")
  2. Timezone: Name, abbreviation, or location
  3. Date: Optional date reference

Timezone Mapping:

CET/CEST → Europe/Berlin
EST/EDT → America/New_York
PST/PDT → America/Los_Angeles
JST → Asia/Tokyo
GMT/UTC → UTC

Step 2: Use MCP DateTime Tools

For "current time" queries:

Use: get_current_time
Parameters:
  - timezone: detected location
  - format: "human" (readable)

For "convert time" queries:

Use: convert_timezone
Parameters:
  - time: extracted time (ISO format)
  - from_tz: source timezone
  - to_tz: target timezone

For "time difference" queries:

Use: calculate_duration
Parameters:
  - start: first time
  - end: second time
  - unit: "hours" (default)

Step 3: Format Output

Single Timezone Query:

Current time in Tokyo:
Tuesday, 15. January 2025 18:30:00 JST
(2025-01-15T18:30:00+09:00)

Timezone Conversion:

3 PM EST (America/New_York)
  = 9 PM CET (Europe/Berlin)
  = 5 AM JST (Asia/Tokyo, next day)

Duration Calculation:

From: 9:00 AM Berlin
To: 5:00 PM Berlin
Duration: 8.0 hours (28800 seconds)

Step 4: Handle Edge Cases

Ambiguous Input:

  • "What time is it?" → Ask: "Which timezone?"
  • "3 PM" → Ask: "Which timezone? (assuming user's local)"

Invalid Timezone:

  • "3 PM XYZ" → Suggest valid timezones
  • Show list of common zones

Date Handling:

  • "tomorrow 3 PM" → Calculate tomorrow's date
  • "next Monday" → Infer date

Examples

Example 1: Simple Current Time

Input: "What time is it in Berlin?"

Actions:

  1. Detect timezone: "Berlin" → "Europe/Berlin"
  2. Call: getcurrenttime(timezone="Europe/Berlin", format="human")
  3. Format output:

`` Current time in Berlin (Europe/Berlin): Tuesday, 15. January 2025 14:30:45 CET ``

Example 2: Timezone Conversion

Input: "Convert 3 PM EST to CET"

Actions:

  1. Parse:

- Time: "3 PM" → "15:00" - From: "EST" → "America/New_York" - To: "CET" → "Europe/Berlin"

  1. Get current date (if not specified)
  2. Call: converttimezone(time="2025-01-15T15:00:00", fromtz="America/NewYork", totz="Europe/Berlin")
  3. Output:

``` 3:00 PM EST (New York) = 9:00 PM CET (Berlin)

(+6 hours difference) ```

Example 3: Multi-Timezone Display

Input: "Show me 10 AM Berlin in all major timezones"

Actions:

  1. Base time: "10:00" Berlin
  2. Convert to:

- UTC - EST (New York) - PST (Los Angeles) - JST (Tokyo)

  1. Output table:

``` 10:00 AM Berlin (CET) is:

UTC: 09:00 AM New York: 04:00 AM (EST) Los Angeles: 01:00 AM (PST) Tokyo: 06:00 PM (JST) ```

Example 4: Meeting Duration

Input: "How long from 9 AM to 5:30 PM?"

Actions:

  1. Parse times (assume same timezone)
  2. Call: calculate_duration(start="2025-01-15T09:00:00", end="2025-01-15T17:30:00", unit="hours")
  3. Output:

``` Duration: 8.5 hours

From: 09:00 AM To: 05:30 PM

(That's 8 hours 30 minutes / 30600 seconds) ```

Example 5: Complex Scheduling

Input: "If the meeting starts at 2 PM Berlin time and lasts 90 minutes, what time does it end in Tokyo?"

Actions:

  1. Start time: "14:00" Berlin
  2. Duration: 90 minutes
  3. Calculate end time: 14:00 + 1:30 = 15:30 Berlin
  4. Convert to Tokyo:

``` Meeting Schedule:

Start: 2:00 PM Berlin (14:00 CET) = 10:00 PM Tokyo (22:00 JST)

End: 3:30 PM Berlin (15:30 CET) = 11:30 PM Tokyo (23:30 JST)

Duration: 1.5 hours (90 minutes) ```

Error Handling

Unknown Timezone

Input: "What time is it in Atlantis?" Response:

⚠️ Unknown timezone: "Atlantis"

Did you mean:
- Atlanta (America/New_York, EST)
- Atlantic Standard Time (America/Halifax, AST)

Or try: Europe/Berlin, America/New_York, Asia/Tokyo

Invalid Time Format

Input: "Convert 25:00 to EST" Response:

⚠️ Invalid time: "25:00"

Please use 24-hour format (00:00 - 23:59)
or 12-hour format with AM/PM (e.g., "1:00 PM")

Ambiguous Date

Input: "3 PM next week" Response:

⚠️ "next week" is ambiguous.

Please specify:
- Day of week (e.g., "next Monday")
- Exact date (e.g., "2025-01-22")

Performance

  • ✅ Instant responses (no network calls for MCP)
  • ✅ Works offline (local datetime calculations)
  • ✅ Handles 200+ timezone names
  • ✅ Supports DST (Daylight Saving Time) automatically

Tips

  1. Always be proactive: If you see ANY time/date mention, consider using this skill
  2. Show multiple formats: Users appreciate seeing both human and ISO formats
  3. Timezone abbreviations: Always clarify (EST vs EDT, CET vs CEST)
  4. Visual formatting: Use tables for multi-timezone comparisons