Arabic & Hijri Date Toolkit for AI Agents
Pricing
from $1.00 / 1,000 results
Arabic & Hijri Date Toolkit for AI Agents
Umm al-Qura Hijri↔Gregorian conversion, Saudi/GCC business days with official Saudi holidays, Arabic text normalization, transliteration, SAR amount-to-words (tafqit) and Arabic/English day & month names. Batch, fast, structured JSON.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Dodi Abak
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Security
Limited permissionsShare
One fast, low-cost Actor for the Arabic and Saudi data tasks that LLMs and scripts often get wrong: Umm al-Qura Hijri ↔ Gregorian conversion, Saudi/GCC business days with official Saudi holidays, Arabic text normalization, Arabic → Latin transliteration, SAR amount-to-words (tafqit) in Arabic and English, and Arabic/English day and month names.
Send a batch of items and get one clean, structured JSON result per item. Every result includes a one-line summary an AI agent can quote directly. It needs no proxies, no browser and no external APIs, so it runs at 128–256 MB and finishes in seconds.
🇸🇦 النسخة العربية في أسفل الصفحة.
What can this Actor do?
| Operation | What you send | What you get back |
|---|---|---|
gregorianToHijri | "2026-10-19" | 1448-05-08, Arabic and English month and day names, formatted strings, month length |
hijriToGregorian | "1448-09-01" | 2027-02-08, plus all names. Rejects days that don't exist (e.g. 30 in a 29-day month). |
dateNames | any date, either calendar | الاثنين / Monday, أكتوبر (Gulf usage), تشرين الأول (Levantine usage), جمادى الأولى / Jumada al-Ula |
businessDays | {start, end}, {start, addBusinessDays} or {date} | count of working days, the date N working days away, or "is this a working day?" with the reason and the next working day |
normalizeText | Arabic text | text without tashkeel and tatweel, with unified alef, yaa and taa marbuta, digits converted (Arabic-Indic ↔ Western ↔ Persian), plus a count of every change |
transliterate | Arabic text | Latin text in a simple ASCII scheme (Mohammed bin Abdulaziz Al-Qahtani) or ALA-LC (Muḥammad ibn ʻAbd al-ʻAzīz al-Qaḥṭānī), with per-word confidence |
amountToWords | 1250.75, "1,250.75", "١٬٢٥٠٫٧٥" | فقط ألف ومائتان وخمسون ريالاً سعودياً وخمس وسبعون هللةً لا غير and One thousand two hundred fifty Saudi riyals and seventy-five halalas only |
You can mix operations in one run: any item can be an object with its own "operation".
Why use it?
- Correct Umm al-Qura dates. LLMs often guess Hijri dates, and arithmetic ("Kuwaiti") converters can be a day or more off the official Saudi calendar. This Actor uses the Umm al-Qura tables (1300–1599 AH = 12 Nov 1882 – 6 Dec 2173) built into the ICU library (the calendar engine behind Node.js, Chrome and Android).
- Saudi business days that follow the law. Eid al-Fitr, Eid al-Adha, Founding Day and National Day are computed from the rules in the Saudi Labor Law regulations, not a hand-typed list.
- Clean Arabic for search and RAG. Normalize names, addresses and documents before matching, deduplication or embedding.
- Invoices and cheques. Grammatically correct Arabic tafqit (number/noun gender agreement, dual, plural, accusative, construct forms) plus English.
- Agent-friendly. Structured fields, stable error codes, a
summaryline, and one result per input item.
How to use it
- Click Try for free (or open the Input tab).
- Pick an Operation and paste your Items. The prefilled example runs one item of each type.
- Click Start. Results appear in the Output tab, with views for Overview, Dates, Business days, Text and Amounts. Export as JSON, CSV, Excel or via the API.
Input example
{"operation": "gregorianToHijri","items": ["2026-10-19",{ "operation": "hijriToGregorian", "date": "1448-09-01" },{ "operation": "businessDays", "start": "2026-03-18", "addBusinessDays": 5 },{ "operation": "businessDays", "start": "2026-03-01", "end": "2026-03-31" },{ "operation": "businessDays", "date": "2026-10-23", "country": "AE" },{ "operation": "normalizeText", "text": "إِنَّ الْمُعَلِّمَــــةَ فِي الْمَدْرَسَةِ الأُولَى ١٢٣" },{ "operation": "transliterate", "text": "محمد بن عبد العزيز القحطاني", "scheme": "ala-lc" },{ "operation": "amountToWords", "amount": "15,750.25" }]}
Date formats: YYYY-MM-DD, YYYY/MM/DD, DD/MM/YYYY, an optional هـ/AH or م/AD suffix, Arabic-Indic digits, or { "year": 1448, "month": 5, "day": 8 }. With dateNames and businessDays, years up to 1650 are read as Hijri and years from 1700 as Gregorian. Set "calendar": "hijri" or "gregorian" on an item to force one.
Options (top level, or per item to override): country (SA, AE, QA, KW, BH, OM), weekendDays, includeOfficialHolidays, compensateWeekendOverlap, customHolidays, normalization switches, transliterationScheme (simple or ala-lc), capitalize, guessShortVowels, chequeStyle, includeSaudiAdjective, arabicDigitsInFormatted.
Output example
{"index": 0,"operation": "gregorianToHijri","ok": true,"input": "2026-10-19","gregorianDate": "2026-10-19","hijriDate": "1448-05-08","hijriMonthLength": 30,"hijriMonthNameAr": "جمادى الأولى","hijriMonthNameEn": "Jumada al-Ula","weekdayAr": "الاثنين","weekdayEn": "Monday","gregorianMonthNameAr": "أكتوبر","gregorianMonthNameArLevant": "تشرين الأول","formattedHijriAr": "الاثنين 8 جمادى الأولى 1448 هـ","formattedGregorianEn": "Monday, 19 October 2026","summary": "2026-10-19 = Monday, 8 Jumada al-Ula 1448 AH / الاثنين 8 جمادى الأولى 1448 هـ","error": null}
{"operation": "businessDays","mode": "addBusinessDays","country": "SA","startDate": "2026-03-18","addBusinessDays": 5,"resultDate": "2026-03-29","resultHijriDate": "1447-10-10","holidaysInRange": [{ "date": "2026-03-19", "name": "Eid al-Fitr holiday (day 1 of 4)", "nameAr": "إجازة عيد الفطر (اليوم 1 من 4)", "source": "official-rule" }],"summary": "5 business days after 2026-03-18 in SA is Sunday 2026-03-29 (1447-10-10 AH)."}
Bad items don't fail the run. They come back with "ok": false and an error such as {"code": "INVALID_DATE", "message": "2026-02-30 is not a valid Gregorian date."}.
Use it with AI agents (Apify MCP server)
Add the Apify MCP server to Claude Desktop, Cursor, VS Code, or any MCP client, and load this Actor as a tool:
https://mcp.apify.com?tools=actors,dodiabak/arabic-hijri-toolkit
Your agent can then call it directly. Example prompts:
- "What is today's date in the Hijri calendar, and is it a working day in Riyadh?"
- "Add 15 Saudi business days to 2026-05-20 and list the holidays skipped."
- "Write 48,250.50 SAR in Arabic words for this invoice."
- "Transliterate these 200 Arabic customer names for our CRM."
Tip for agents: put many items in one run. It's cheaper and faster than many single-item runs.
API, Make, Zapier, n8n
Use the standard Apify API (run-sync-get-dataset-items) or any Apify integration. Example:
curl -X POST "https://api.apify.com/v2/acts/dodiabak~arabic-hijri-toolkit/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"operation":"amountToWords","items":[1250.75, 99]}'
How much does it cost?
This Actor uses pay per event: you pay $0.001 per result, which is $1 per 1,000 items, plus Apify's small standard start fee. There are no proxies or browsers, so there are no hidden compute costs. A batch of 100 dates costs about $0.10. You can cap spending with Max cost per run. The Actor never produces more results than your limit allows.
FAQ
How accurate is the Hijri conversion? It follows the official Umm al-Qura tables for 1300–1599 AH. Dates outside that range are rejected rather than estimated. Religious dates (start of Ramadan, Eid, Day of Arafat) are announced by moon sighting and can differ from Umm al-Qura by a day.
Which Saudi holidays are included? For the private and non-profit sectors, the HRSD Implementing Regulations of the Labor Law, Article 24, provide:
- Eid al-Fitr: 4 days starting the day after 29 Ramadan (Umm al-Qura)
- Eid al-Adha: 4 days starting on the Day of Arafat
- Founding Day: 22 February
- National Day: 23 September
These are built in for 2022–2076. Turn on compensateWeekendOverlap to add the days granted when a holiday falls on the weekend. They are placed on the next working days; the regulation allows before or after.
What about government holidays or other GCC countries? Government-sector holidays are set each year by royal order and are usually longer, so they are not built in. For UAE, Qatar, Kuwait, Bahrain and Oman, only the weekend is built in, because Islamic holidays there are announced each year. Add announced dates with customHolidays (Gregorian or Hijri), and the result includes a warning to remind you.
Why does a transliterated word say "method": "guessed"? Arabic is usually written without short vowels. Common names, families and Saudi/GCC places come from a built-in dictionary ("dictionary"). Text with tashkeel is read exactly ("vocalized"). Other words are spelled by rule and flagged so you know to check them.
Is my data stored? Only in your own Apify run dataset. The Actor makes no external calls.
Limitations
- Umm al-Qura range: 1300–1599 AH (12 Nov 1882 – 6 Dec 2173). Built-in Saudi holidays: 2022–2076.
- Actual Eid and Arafat dates follow official moon-sighting announcements and may shift by a day. Pass the announced dates in
customHolidayswhen exact payroll accuracy matters. - The holiday rules cover the Saudi private and non-profit sectors only. Company-specific days off are not included.
- Transliteration of unvocalized text outside the dictionary is approximate. The Actor does no named-entity recognition or machine translation.
- Amount-to-words covers 0 to 999,999,999,999.99 SAR, rounded to the nearest halala.
- Up to 10,000 items per run, 100,000 characters per text for normalization and 20,000 for transliteration.
Sources
- Umm al-Qura calendar: ICU
islamic-umalquracalendar data (Unicode CLDR/ICU), as shipped in Node.js. - Saudi holidays: HRSD, Holidays and Leaves; Implementing Regulations of the Labor Law (PDF), Art. 24; HRSD awareness guide (2025) (Founding Day, 22 Feb).
- Transliteration: ALA-LC Arabic romanization table (Library of Congress).
Found a wrong result or need another country or feature? Open an issue in the Issues tab. Fixes usually ship within days.
🇸🇦 أداة التاريخ الهجري واللغة العربية لوكلاء الذكاء الاصطناعي
أداة سريعة ومنخفضة التكلفة تنفّذ المهام العربية والسعودية التي تخطئ فيها النماذج اللغوية كثيراً، وتعيد نتائج JSON منظّمة لكل عنصر:
- تحويل التاريخ من الميلادي إلى الهجري والعكس وفق تقويم أم القرى الرسمي (من 1300 إلى 1599هـ)، مع أسماء الأيام والأشهر بالعربية والإنجليزية.
- حساب أيام العمل في السعودية ودول الخليج. تشمل الأداة إجازات القطاع الخاص الرسمية في المملكة وفق المادة 24 من اللائحة التنفيذية لنظام العمل: عيد الفطر 4 أيام تبدأ من اليوم التالي لـ29 رمضان، وعيد الأضحى 4 أيام تبدأ من يوم عرفة، ويوم التأسيس في 22 فبراير، واليوم الوطني في 23 سبتمبر.
- تطبيع النص العربي: إزالة التشكيل والتطويل، وتوحيد الألف والياء والتاء المربوطة، وتحويل الأرقام بين الهندية والعربية (الغربية).
- النقحرة (الكتابة بالحروف اللاتينية) بنظام مبسّط أو بنظام ALA-LC المعتمد في مكتبة الكونغرس، مع قاموس للأسماء والعائلات والمدن الشائعة.
- تفقيط المبالغ بالريال السعودي بالعربية الفصحى الصحيحة وبالإنجليزية، مثل: «فقط ألف ومائتان وخمسون ريالاً سعودياً وخمس وسبعون هللةً لا غير».
السعر: 0.001 دولار لكل نتيجة، أي دولار واحد لكل 1,000 عنصر.
ملاحظات: قد تختلف مواعيد الأعياد الفعلية يوماً واحداً بسبب رؤية الهلال. إجازات القطاع الحكومي وإجازات دول الخليج الأخرى غير مضمّنة، ويمكن إضافتها عبر حقل customHolidays.