Get the FREE Ultimate OpenClaw Setup Guide →
p

Taiwan Calendar Plugin

Verified

@pigfoot

npx machina-cli add skill @pigfoot/taiwan-calendar --openclaw
Files (1)
SKILL.md
7.3 KB

Taiwan Calendar Skill

Provides accurate Taiwan working day and holiday information by querying government open data APIs in real-time.

Why This Skill Exists

Claude Code frequently makes errors with Taiwan date-related queries due to knowledge cutoff:

  • Gets weekdays wrong (e.g., saying Tuesday when it's Wednesday)
  • Doesn't know current year's national holidays
  • Unaware of make-up workdays (補班日)

This skill queries Taiwan's government administrative calendar API to provide accurate, up-to-date information.


When to Use

Trigger actively when user asks about:

  • Date queries: "今天是幾號?", "What's today's date?", "現在台灣幾點?"
  • Working day queries: "今天是工作日嗎?", "Is tomorrow a working day?", "下週一要上班嗎?"
  • Holiday queries: "1/1 是假日嗎?", "國慶日是哪天?", "下一個連假什麼時候?"
  • Date calculations: "5 個工作日後是哪天?", "這個月有幾個工作日?", "deadline 是五個工作天"
  • Make-up workdays: "有沒有補班?", "這週六要上班嗎?"

Also use for:

  • Schedule/timeline planning that requires working day awareness
  • Deadline calculations mentioning "工作日/工作天"
  • Any Taiwan calendar-related questions

Commands

All commands use: uv run --managed-python scripts/taiwan_calendar.py <command>

Basic Queries

today - Today's date and status

uv run --managed-python scripts/taiwan_calendar.py today

Output example:

2025-01-06 (週一) 是工作日。

check <date> - Check specific date

uv run --managed-python scripts/taiwan_calendar.py check 2025-01-01
uv run --managed-python scripts/taiwan_calendar.py check 01/01

Output example:

2025-01-01 (週三) 是非工作日 - 元旦。

Date formats supported:

  • YYYY-MM-DD (e.g., 2025-01-01)
  • YYYY/MM/DD (e.g., 2025/01/01)
  • MM/DD (assumes current year, e.g., 01/01)

Range Queries

range <start> <end> - Count working days in range

uv run --managed-python scripts/taiwan_calendar.py range 2025-01-01 2025-01-31

Output example:

2025-01-01 到 2025-01-31 共有 23 個工作日。

期間假日:
  - 2025-01-01 (週三) - 元旦
  - 2025-01-29 (週三) - 春節

Advanced Calculations

add-days [date] <n> - Calculate N working days later

# From today
uv run --managed-python scripts/taiwan_calendar.py add-days 5

# From specific date
uv run --managed-python scripts/taiwan_calendar.py add-days 2025-01-06 5

Output example:

從 2025-01-06 算起 5 個工作日後是 2025-01-13 (週一)。

next-working [date] - Find next working day

# From today
uv run --managed-python scripts/taiwan_calendar.py next-working

# From specific date
uv run --managed-python scripts/taiwan_calendar.py next-working 2025-01-03

Output example:

下一個工作日是 2025-01-06 (週一)。

next-holiday [date] - Find next holiday

# From today
uv run --managed-python scripts/taiwan_calendar.py next-holiday

# From specific date
uv run --managed-python scripts/taiwan_calendar.py next-holiday 2025-01-06

Output example:

下一個假日是 2025-01-29 (週三) - 春節。

Usage Examples

Example 1: Simple Date Query

User: "今天是幾號?"

Response:
[Run: uv run --managed-python scripts/taiwan_calendar.py today]
Output: 2025-01-06 (週一) 是工作日。

"今天是 2025 年 1 月 6 日(週一),是工作日。"

Example 2: Holiday Check

User: "元旦是放假嗎?"

Response:
[Run: uv run --managed-python scripts/taiwan_calendar.py check 01/01]
Output: 2025-01-01 (週三) 是非工作日 - 元旦。

"是的,元旦(1/1)是國定假日。"

Example 3: Working Day Calculation

User: "報告要 5 個工作天內交,今天開始算那是哪天?"

Response:
[Run: uv run --managed-python scripts/taiwan_calendar.py add-days 5]
Output: 從 2025-01-06 算起 5 個工作日後是 2025-01-13 (週一)。

"從今天算起 5 個工作日後是 1 月 13 日(週一)。"

Example 4: This Month's Working Days

User: "這個月有幾個工作日?"

Response:
[Run: uv run --managed-python scripts/taiwan_calendar.py range 2025-01-01 2025-01-31]
Output: 2025-01-01 到 2025-01-31 共有 23 個工作日。

期間假日:
  - 2025-01-01 (週三) - 元旦

"這個月(1月)有 23 個工作日,期間有元旦(1/1)放假。"

Example 5: Next Holiday

User: "下一個連假是什麼時候?"

Response:
[Run: uv run --managed-python scripts/taiwan_calendar.py next-holiday]
Output: 下一個假日是 2025-01-29 (週三) - 春節。

"下一個假日是春節,從 1 月 29 日(週三)開始。"

Technical Details

Data Source

  • Primary: Taiwan government open data platform (data.gov.tw)
  • Fallback: New Taipei City open data

Caching

  • Location: System temp directory (cross-platform via tempfile.gettempdir())
  • File: taiwan-calendar-cache.json
  • Expiry: 1 hour
  • Behavior: Automatically refreshes when expired

Timezone

  • All operations use Taiwan timezone (Asia/Taipei, UTC+8)
  • Current time queries reflect Taiwan local time

Error Handling

  • Clear error messages if API unavailable
  • Automatic fallback to secondary API source
  • Uses expired cache with warning if network unavailable

Important Notes

When to Use This Skill

DO use for:

  • Any Taiwan date/calendar queries
  • Working day calculations
  • Holiday information
  • Date arithmetic involving working days

DON'T use for:

  • Non-Taiwan regions/calendars
  • Lunar calendar queries (農曆)
  • 24 solar terms (二十四節氣)
  • Historical dates (use for current/future dates)

Natural Language Output

The script outputs Chinese (Traditional) responses. Use these directly when responding to users, or translate if needed.

Command Execution

Always use the full command with uv run --managed-python:

uv run --managed-python scripts/taiwan_calendar.py <command> [args]

NEVER use:

  • python scripts/taiwan_calendar.py
  • cd scripts && uv run taiwan_calendar.py

The script path is relative to the skill directory.


Troubleshooting

"Failed to fetch calendar data"

Cause: All API sources unavailable

Solution:

  1. Check network connection
  2. Verify government API status
  3. Script will use expired cache if available (with warning)

"Invalid date format"

Cause: Unrecognized date format

Solution: Use supported formats:

  • YYYY-MM-DD (e.g., 2025-01-06)
  • YYYY/MM/DD (e.g., 2025/01/06)
  • MM/DD (e.g., 01/06)

"Unable to parse date"

Cause: Ambiguous date input

Solution: Be explicit with year for dates far from today


Progressive Disclosure

This is the main skill file. All essential information is included here for immediate use.

For implementation details, see: scripts/taiwan_calendar.py

Source

git clone https://clawhub.ai/pigfoot/taiwan-calendarView on GitHub

Overview

透過政府開放資料的實時 API,提供台灣工作日與假日的準確資訊。能回答日期、是否工作日、補班日與連假等問題,並支援日期計算以協助規劃。

How This Skill Works

當用戶提出日期相關需求時,系統呼叫 taiwan_calendar.py 的 today、check、range、add-days、next-working、next-holiday 等指令,以實時查詢政府日曆 API。回傳結果清楚標註日期、星期、工作日狀態與假日名稱,便於對話回覆與日程規劃。

When to Use It

  • 日期查詢:判斷今天/特定日是否為工作日
  • 工作日查詢:判斷明天或下週是否為工作日
  • 假日查詢:查詢特定日期是否放假與假日名稱
  • 日期計算:計算 N 個工作日後的日期
  • 補班日與連假查詢:查詢補班日與下一個假日

Quick Start

  1. Step 1: 選擇指令,如 today、check、range、add-days、next-working、next-holiday,並執行 taiwan_calendar.py
  2. Step 2: 解析輸出,確認日期、星期、工作日狀態與假日名稱
  3. Step 3: 將結果用於回答使用者或作為日程規劃與截止日計算

Best Practices

  • 使用 range、add-days、next-working、next-holiday 等指令,讓計算以工作日為基礎
  • 支援多種日期格式(YYYY-MM-DD、YYYY/MM/DD、MM/DD),避免格式錯誤
  • 回覆中同時標註日期與是否工作日,以及假日名稱
  • 在規劃截止日與排程時,先驗證工作日以避免跨假日
  • 將查詢結果與現實日程結合,定期檢查日期的一致性

Example Use Cases

  • User: 今天是幾號? -> 回傳當天日期與工作日狀態
  • User: 元旦是放假嗎? -> 回傳日期與假日名稱及非工作日狀態
  • User: 5 個工作日後是哪天? -> 回傳起始日期與計算結果日期
  • User: 下一個工作日是什麼時候? -> 回傳下一個工作日日期與星期
  • User: 這個月有多少個工作日? -> 回傳工作日數與假日清單

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers