Agent skill

Jalali Calendar

by TronIsHere in TronIsHere/vibefarsiui

Handle dates and times for Iranian users: the Jalali / Solar Hijri calendar (تقویم شمسی، هجری خورشیدی), Saturday-first weeks, Tehran time (+03:30, no DST), Persian month and weekday names…

MITAuto-check: warnings

Install Jalali Calendar

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add TronIsHere/vibefarsiui --skill jalali-calendar -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TronIsHere/vibefarsiui jalali-calendar --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/TronIsHere/vibefarsiui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/registry/skills/jalali-calendar .claude/skills/jalali-calendar && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
jalali-calendar
GitHub stars
212
Token cost
~1.6k tokens
SKILL.md length
880 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Handle dates and times for Iranian users: the Jalali / Solar Hijri calendar (تقویم شمسی، هجری خورشیدی), Saturday-first weeks, Tehran time (+03:30, no DST), Persian month and weekday names…

  • Works in 10 steps: The calendar in one table → Week and weekend → Time zone → …
  • Age appears in a Persian (Farsi) product
  • SKILL.md covers 1. The calendar in one table, 2. Week and weekend, 3. Time zone and 4. Storage and transport, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Jalali Calendar is an agent skill from TronIsHere/vibefarsiui. Handle dates and times for Iranian users: the Jalali / Solar Hijri calendar (تقویم شمسی، هجری خورشیدی), Saturday-first weeks, Tehran time (+03:30, no DST), Persian month and weekday names, formatting, storage, ranges, reports and holidays. Use whenever a date, time, calendar, date picker, deadline, booking, report period or age appears in a Persian (Farsi) product, or the user says تاریخ شمسی، تقویم فارسی، jalali، شنبه، نوروز.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The licence is MIT.

When your agent uses it

  • Age appears in a Persian (Farsi) product
  • The user says تاریخ شمسی، تقویم فارسی، jalali، شنبه، نوروز

Example prompts

  • “/jalali-calendar”

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. The calendar in one table
  2. Week and weekend
  3. Time zone
  4. Storage and transport
  5. Display formats
  6. Using Intl correctly
  7. Date pickers and ranges
  8. Reports, fiscal periods, age
  9. Holidays
  10. Checklist

What it can do on your machine

Read from SKILL.md and the folder at commit 7d56b50. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Jalali Calendar loads about 1.6k tokens when it runs. Until then it costs about 112 tokens; SKILL.md has 880 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~112
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningContains zero-width charactersSKILL.md:46
    Weekday order: شنبه، یکشنبه، دوشنبه، سه⟨U+200C⟩شنبه، چهارشنبه، پنجشنبه، جمعه.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from TronIsHere/vibefarsiui at commit 7d56b50, republished under its MIT licence (© TronIsHere). 880 words, ~1,604 tokens.

Download SKILL.mdSave it as .claude/skills/jalali-calendar/SKILL.md (or your agent's skills folder).
name
jalali-calendar
description
Handle dates and times for Iranian users: the Jalali / Solar Hijri calendar (تقویم شمسی، هجری خورشیدی), Saturday-first weeks, Tehran time (+03:30, no DST), Persian month and weekday names, formatting, storage, ranges, reports and holidays. Use whenever a date, time, calendar, date picker, deadline, booking, report period or age appears in a Persian (Farsi) product, or the user says تاریخ شمسی، تقویم فارسی، jalali، شنبه، نوروز.

Jalali calendar (تقویم شمسی)

Iran runs on the Solar Hijri (Jalali) calendar. Users think in it, laws and invoices use it, fiscal years follow it. Gregorian is for storage and APIs only. Getting this wrong is visible on every screen with a date.

1. The calendar in one table

MonthNameDays
1فروردین31
2اردیبهشت31
3خرداد31
4تیر31
5مرداد31
6شهریور31
7مهر30
8آبان30
9آذر30
10دی30
11بهمن30
12اسفند29, or 30 in a leap year
  • The year starts at Nowruz (نوروز), the March equinox, on 20 or 21 March.
  • Year 1405 began on 21 March 2026. As a sanity anchor: 20 September 2026 is ۲۹ شهریور ۱۴۰۵.
  • Leap years do not follow a simple % 4 rule; use a tested conversion algorithm (VibeFarsi ships lib/jalali.ts, dependency-free and verified). Do not implement leap logic from memory.

2. Week and weekend

  • The week starts on Saturday (شنبه). Calendars, date pickers, weekly charts and "this week" ranges all start on Saturday, never Monday.
  • Weekday order: شنبه، یکشنبه، دوشنبه، سهشنبه، چهارشنبه، پنجشنبه، جمعه.
  • Friday is the weekend. Many offices close Thursday afternoon or all day. "Business days" means Saturday–Wednesday (or Thursday, ask the user).
  • Intl locales for fa-IR already report Saturday as the first day; do not override it with a Monday-first library default.

3. Time zone

  • Iran is UTC+03:30 all year. Daylight saving was abolished; do not apply a summer offset.
  • IANA zone: Asia/Tehran. Store instants in UTC (ISO 8601) and convert to Asia/Tehran for display.
  • Half-hour offset means naive "round to the hour" logic breaks; always convert through the zone, never by adding hours.

4. Storage and transport

  • Database and API: ISO 8601 / Unix time, Gregorian, UTC. Never store a Jalali string as the source of truth.
  • Convert to Jalali at the edge (server render or client display).
  • If a Jalali date must travel (a filter param, a form field), send it as 1405-06-29 with Latin digits, and validate it with a converter round-trip.
  • Birth dates and contract dates entered in Jalali are converted once on input; keep the original Jalali string only for display audit if needed.

5. Display formats

ContextFormatExample
Short numericyyyy/mm/dd with Persian digits۱۴۰۵/۰۶/۲۹
Longday, month name, year۲۹ شهریور ۱۴۰۵
With weekdayweekday firstیکشنبه ۲۹ شهریور ۱۴۰۵
Time24-hour, Persian digits۱۴:۳۰
Date and timedate، ساعت time۲۹ شهریور ۱۴۰۵، ساعت ۱۴:۳۰
RelativePersian words«۲ ساعت پیش»، «دیروز»، «فردا»، «۳ روز دیگر»
Range«از … تا …»از ۱ مهر تا ۱۵ مهر ۱۴۰۵
Month label in chartsmonth name (+ year if it changes)مهر، آبان، آذر ۱۴۰۵
  • Persian digits everywhere the user reads; Latin digits in values.
  • Month names are never translated or transliterated; take them from a table.
  • Never show «Sep 20, 2026» to an Iranian user, even as a secondary line, unless the product is bilingual by design.

6. Using Intl correctly

Intl.DateTimeFormat with the Persian calendar is fine for labels:

ts
new Intl.DateTimeFormat("fa-IR-u-ca-persian", {
  dateStyle: "long",
  timeZone: "Asia/Tehran",
}).format(date); // «۲۹ شهریور ۱۴۰۵»

// Latin digits when you need them (inputs, logs):
new Intl.DateTimeFormat("fa-IR-u-ca-persian-nu-latn", { dateStyle: "short" }).format(date);

Limits: Intl formats but does not give you year/month/day integers for arithmetic, month grids or validation. For a date picker, ranges, "add one month", leap checks and age, use a converter (toJalali / toGregorian).

Show full SKILL.md (347 more words)Show less

7. Date pickers and ranges

  • Grid starts on Saturday; header shows «مهر ۱۴۰۵»; navigation arrows flip in RTL (previous month points right, next points left).
  • Today, selected and disabled states are visible without color alone.
  • Range picker: start and end inclusive, «از تاریخ / تا تاریخ» labels, presets like «۷ روز گذشته»، «این ماه»، «ماه گذشته» computed in Jalali.
  • Typing is allowed with Persian or Latin digits and / or - separators; normalize before parsing.
  • Min/max and disabled days (Fridays, holidays) are data, not hard-coded.

8. Reports, fiscal periods, age

  • Monthly reports group by Jalali month, not Gregorian; quarterly = بهار، تابستان، پاییز، زمستان.
  • Fiscal year for most Iranian companies is the Jalali year (1 فروردین to 29/30 اسفند). Ask before assuming otherwise.
  • Age and durations: compute from the Gregorian instants, then say it in Persian: «۲۴ سال»، «۳ ماه و ۱۰ روز».
  • «سال ۱۴۰۵» in prose, «۱۴۰۵» in tables; never «۰۵».

9. Holidays

  • Fixed Jalali holidays exist (Nowruz 1–4 فروردین, 12 and 13 فروردین, 14 and 15 خرداد, 22 بهمن, 29 اسفند), but most public holidays are religious and follow the lunar calendar, so they move ~11 days earlier every year.
  • Never hard-code a full holiday list from memory. Load it from an official calendar source the user provides or an API, keyed by Gregorian date, and cache per year.
  • VibeFarsi ships this as data you can audit: the hijri lib holds Iran's official lunar month starts (moon sighting, so no formula is exact) and the iran-holidays lib derives every holiday from rules on top of it. Jalali 1404 and 1405 match the official calendar day for day; other years are computed and lunar days are flagged approximate, so show «تقریبی».
  • Mark holidays in the picker as data (disabled + a tooltip with the name).

10. Checklist

  1. Storage Gregorian/UTC; display Jalali via a converter.
  2. Week starts Saturday; Friday is the weekend.
  3. Asia/Tehran, +03:30, no DST.
  4. Persian digits and month names in every visible date.
  5. Formats from section 5; no English month names.
  6. Leap years from the algorithm, not % 4.
  7. Holidays from data, not memory.

© TronIsHere, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. 1 hidden character (zero-width or bidirectional) removed. Raw file

Files

Just SKILL.md in registry/skills/jalali-calendar of TronIsHere/vibefarsiui.

Open the folder on GitHubat commit 7d56b50

Compare with similar skills

Jalali Calendar next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Jalali Calendar compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Jalali Calendar this skillTronIsHere/vibefarsiui212—~1.6kAutomated safety check: WarnMIT
Error Handlingaffaan-m/ECC277k1 repos~2.7kAutomated safety check: PassMIT
Google Calendarcodewhale-hq/Codewhale41k—~512Automated safety check: PassMIT
Team Calendarsickn33/agentic-awesome-skills47k1 repos~3.3kAutomated safety check: PassMIT
Time Ledgersickn33/agentic-awesome-skills47k1 repos~1.8kAutomated safety check: PassMIT
Error Handlingthedaviddias/Front-End-Checklist74k—~416Automated safety check: PassMIT

Similar skills

  • Error Handling

    affaan-m/ECC

    Patterns for robust error handling across TypeScript, Python, and Go.

    277k GitHub starsUsed in 1 repo~2.7k tokens
    DevelopmentAuto-check passed
  • Google Calendar

    codewhale-hq/Codewhale

    Reads schedules, checks free and busy time, and creates or updates Google Calendar events through the Calendar API, with care around invites and recurring series.

    41k GitHub stars~512 tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Team Calendar

    sickn33/agentic-awesome-skills

    Team calendar: event, type, date and time with time zone, attendees, organizer, location and source module.

    47k GitHub starsUsed in 1 repo~3.3k tokens
    Productivity & AutomationAuto-check passed
  • Time Ledger

    sickn33/agentic-awesome-skills

    Natural-language time tracking: parse what the user says they did into Activity/Minutes/Date rows in their own Notion database — asking instead of guessing when unsure.

    47k GitHub starsUsed in 1 repo~1.8k tokens
    Productivity & AutomationAuto-check passed
  • Error Handling

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing scripts, client components, bundles, or runtime behavior related to Implement proper error handling.

    74k GitHub stars~416 tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Error Handling

    affaan-m/ECC

    TypeScript、Python、Goにわたる堅牢なエラー処理のパターン。型付きエラー、エラー境界、リトライ、サーキットブレーカー、ユーザー向けエラーメッセージをカバーします。

    276k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed

More from TronIsHere/vibefarsiui

  • Iran Validation

    TronIsHere/vibefarsiui

    Validate and format Iranian identifiers correctly: national ID (کد ملی) checksum, mobile numbers (۰۹…), landlines with area codes, IBAN / Sheba (شبا) mod-97, bank card numbers with Luhn and…

    212 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check: warnings
  • Persian Formal

    TronIsHere/vibefarsiui

    Write formal Persian that still sounds human: proposals, contracts, invoices, official letters (نامه اداری), formal email, company website copy, terms and policies.

    212 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check: warnings
  • Persian SEO

    TronIsHere/vibefarsiui

    Technical and on-page SEO for Persian (Farsi) websites: lang and hreflang for fa-IR, RTL-safe metadata, Persian titles and descriptions, slug and URL strategy for Persian content, ZWNJ and keyword…

    212 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check: warnings
  • Persian Conversational

    TronIsHere/vibefarsiui

    Write colloquial written Persian (محاورهنویسی): the Farsi people actually type in chat, Instagram captions, Telegram posts, consumer-app onboarding and friendly support replies.

    212 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check: warnings
  • Persian Rtl UI

    TronIsHere/vibefarsiui

    Build right-to-left Persian (Farsi) UI in React and Tailwind the way an Iranian product team would: logical CSS only, Persian fonts without letter-spacing, Persian digits and «تومان», Jalali dates…

    212 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check: warnings
  • Persian UI Copy

    TronIsHere/vibefarsiui

    Write Persian (Farsi) UI microcopy: button labels, field labels and placeholders, validation and error messages, empty states, loading and success toasts, confirmations, notifications.

    212 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check: warnings

Questions about Jalali Calendar

What does Jalali Calendar do?

Handle dates and times for Iranian users: the Jalali / Solar Hijri calendar (تقویم شمسی، هجری خورشیدی), Saturday-first weeks, Tehran time (+03:30, no DST), Persian month and weekday names…. Jalali Calendar is an agent skill from TronIsHere/vibefarsiui. Handle dates and times for Iranian users: the Jalali / Solar Hijri calendar (تقویم شمسی، هجری خورشیدی), Saturday-first weeks, Tehran time (+03:30, no DST), Persian month and weekday names, formatting, storage, ranges, reports and holidays.

When should I use Jalali Calendar?

Jalali Calendar fits situations like: age appears in a Persian (Farsi) product; the user says تاریخ شمسی، تقویم فارسی، jalali، شنبه، نوروز.

How do I install Jalali Calendar in Claude Code?

Run `npx skills add TronIsHere/vibefarsiui --skill jalali-calendar -a claude-code`. Or copy the skill folder (registry/skills/jalali-calendar in TronIsHere/vibefarsiui) into .claude/skills/jalali-calendar in your project. Claude Code loads it when a task matches its description.

How do I install Jalali Calendar in Codex?

Run `npx skills add TronIsHere/vibefarsiui --skill jalali-calendar -a codex`. Or copy the skill folder (registry/skills/jalali-calendar in TronIsHere/vibefarsiui) into .agents/skills/jalali-calendar in your project. Codex loads it when a task matches its description.

Can I use Jalali Calendar in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TronIsHere/vibefarsiui --skill jalali-calendar -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jalali-calendar, .gemini/skills/jalali-calendar, .github/skills/jalali-calendar and .opencode/skills/jalali-calendar in your project.

What does Jalali Calendar need to run?

SKILL.md names no scripts, command-line tools or credentials: Jalali Calendar is instructions for the agent only.

Does Jalali Calendar access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Jalali Calendar safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): contains zero-width characters. Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Jalali Calendar use?

Jalali Calendar is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Jalali Calendar use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Jalali Calendar?

Skills that share tags, products or a category with Jalali Calendar: Error Handling (affaan-m/ECC, 277k stars), Google Calendar (codewhale-hq/Codewhale, 41k stars), Team Calendar (sickn33/agentic-awesome-skills, 47k stars) and Time Ledger (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Jalali Calendar?

TronIsHere (a GitHub user) maintains it in TronIsHere/vibefarsiui, which has 212 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 10, 2026.

Source: TronIsHere/vibefarsiui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.