UAE working days, holidays with confirmation status, Hijri dates, Ramadan hours, deadlines.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
API key from [email protected] (catalogue and free tools work without it)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Compute the date N working days after (or before, if N is negative) a start date for a UAE emirate/sector, skipping weekends and public holidays, and list every skipped day with its reason. Use for SLAs, delivery promises, HR processing times and 'within X business days' wording. Example: {start_date:'2026-05-21', days:3, emirate:'federal', sector:'public'} → end_date 2026-06-02 (Eid Al Adha week skipped). Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
Working days to add. Negative counts backwards.
ISO date to count from.
Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged).
Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend.
If true and start_date is a working day, it counts as day 1. Default false (start the day after).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http uae-calendar-oracle https://oracle.noahsarch.tech/mcp
Headers
X-API-Key (optional, not in the config above): API key from [email protected] (catalogue and free tools work without it)Compute the date N working days after (or before, if N is negative) a start date for a UAE emirate/sector, skipping weekends and public holidays, and list every skipped day with its reason. Use for SLAs, delivery promises, HR processing times and 'within X business days' wording. Example: {start_date:'2026-05-21', days:3, emirate:'federal', sector:'public'} → end_date 2026-06-02 (Eid Al Adha week skipped). Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| days* | integer | Working days to add. Negative counts backwards. |
| sector | string | Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged). |
| emirate | string | Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend. |
| start_date* | string | ISO date to count from. |
| count_start_day | boolean | If true and start_date is a working day, it counts as day 1. Default false (start the day after). |
{
"type": "object",
"title": "add_working_daysArguments",
"required": [
"start_date",
"days"
],
"properties": {
"days": {
"type": "integer",
"title": "Days",
"maximum": 10000,
"minimum": -10000,
"description": "Working days to add. Negative counts backwards."
},
"sector": {
"enum": [
"public",
"private"
],
"type": "string",
"title": "Sector",
"default": "public",
"description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged)."
},
"emirate": {
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"type": "string",
"title": "Emirate",
"default": "federal",
"description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend."
},
"start_date": {
"type": "string",
"title": "Start Date",
"description": "ISO date to count from."
},
"count_start_day": {
"type": "boolean",
"title": "Count Start Day",
"default": false,
"description": "If true and start_date is a working day, it counts as day 1. Default false (start the day after)."
}
}
}Compute a deadline from a start date and a period in calendar days, working days, Gregorian months or Hijri months, applying the counting rules YOU specify (exclude start day, extend past weekends/holidays, half-day handling, estimated-holiday handling). Returns the deadline, the raw date before extension, every skipped day and a step-by-step explanation. Use when drafting contract, notice, appeal or payment deadlines in the UAE. This is date arithmetic only; it does not state what any law requires, and every response carries a disclaimer field. Example: {start_date:'2026-11-26', period:7, unit:'calendar_days', emirate:'federal', sector:'public'} → raw 2026-12-03 (National Day, estimated) → deadline 2026-12-04, data_confidence 'medium'. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| unit* | string | calendar_days | working_days | months (Gregorian) | hijri_months. |
| rules | any | Counting conventions. Pass what the contract/rule says; defaults are the common convention. |
| period* | integer | Length of the period in `unit`. Negative counts backwards. |
| sector | string | Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged). |
| emirate |
Convert a Gregorian date to the Hijri (Islamic) calendar using the Umm al-Qura tables, with month names in English and Arabic. The result is COMPUTED: the official UAE date is set by moon sighting and may differ by ±1 day, so data_confidence is 'medium'. Use for Hijri-dated documents and to estimate Islamic holidays. Example: {date:'2026-03-20'} → 1 Shawwal 1447 AH. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| date* | string | ISO Gregorian date 'YYYY-MM-DD' between 1924-08-01 and 2077-11-16. |
{
"type": "object",
"title": "gregorian_to_hijriArguments",
"required": [
"date"
],
"properties": {
"date": {
"type": "string",
"title": "Date",
"description": "ISO Gregorian date 'YYYY-MM-DD' between 1924-08-01 and 2077-11-16."
}
}
}Convert a Hijri date 'YYYY-MM-DD' (1343–1500 AH) to Gregorian using the Umm al-Qura tables, with the weekday. COMPUTED, ±1 day versus the moon-sighted UAE date; data_confidence 'medium'. Example: {hijri_date:'1448-01-01'} → 2026-06-16 (Tue). Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| hijri_date* | string | Hijri date 'YYYY-MM-DD', e.g. '1448-01-01' (year 1343–1500 AH). |
{
"type": "object",
"title": "hijri_to_gregorianArguments",
"required": [
"hijri_date"
],
"properties": {
"hijri_date": {
"type": "string",
"title": "Hijri Date",
"description": "Hijri date 'YYYY-MM-DD', e.g. '1448-01-01' (year 1343–1500 AH)."
}
}
}Tell whether a date is a working day in the UAE for a given emirate and sector, and why not (weekend, named public holiday with its status, or Friday half day). Call this before scheduling, promising delivery, booking, or filing anything on a UAE date. Islamic holidays depend on moon sighting: the result says whether the holiday is 'estimated' (not yet announced) or 'confirmed'. Example: {date:'2026-05-25', emirate:'federal', sector:'public'} → is_working_day=false, reason 'Eid Al Adha (extended federal break)', status confirmed; the same date for sector 'private' → true. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| date* | string | ISO date 'YYYY-MM-DD' (or ISO datetime; converted to Asia/Dubai). |
| sector | string | Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged). |
| emirate | string | Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend. |
| apply_optional_overlays | boolean | Apply optional entity-level schedules such as Dubai's summer 4-day week. Default false. |
List all public holidays for a Gregorian year, emirate and sector, with English and Arabic names, dates, status (estimated | announced | confirmed | moved, with original dates when moved), official source URL and last-checked time. Use for annual planning, HR calendars and to show users which dates are still provisional. Example: {year:2026, emirate:'federal', sector:'private'} → 8 holidays, National Day still 'estimated'. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| year* | integer | Gregorian year, e.g. 2026. |
| sector | string | Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged). |
| emirate | string | Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend. |
| include_estimated | boolean | Include not-yet-announced holidays with status 'estimated' (default true). |
{
"type": "object",
"title": "list_holidaysArguments",
"required": [
"year"
],
"properties": {
"year": {
"type": "integer",
"title": "Year",
"maximum": 2100,
"minimum": 1900,
"description": "Gregorian year, e.g. 2026."
},
"sector": {
"enum": [
"public",
"private"
],
"type": "string",
"title": "Sector",
"default": "public",
"description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged)."
},
"emirate": {
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"type": "string",
"title": "Emirate",
"default": "federal",
"description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend."
},
"include_estimated": {
"type": "boolean",
"title": "Include Estimated",
"default": true,
"description": "Include not-yet-announced holidays with status 'estimated' (default true)."
}
}
}Return the next public holiday on or after a date for an emirate/sector: names (EN/AR), dates, status, days until, source. Use for 'when is the next long weekend / holiday' questions and to warn about upcoming closures. Example: {from_date:'2026-10-31', emirate:'federal', sector:'public'} → Eid Al Etihad 2–3 Dec 2026, estimated, 32 days away. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| sector | string | Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged). |
| emirate | string | Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend. |
| from_date* | string | ISO date to search from (inclusive). Usually today. |
{
"type": "object",
"title": "next_holidayArguments",
"required": [
"from_date"
],
"properties": {
"sector": {
"enum": [
"public",
"private"
],
"type": "string",
"title": "Sector",
"default": "public",
"description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged)."
},
"emirate": {
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"type": "string",
"title": "Emirate",
"default": "federal",
"description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend."
},
"from_date": {
"type": "string",
"title": "From Date",
"description": "ISO date to search from (inclusive). Usually today."
}
}
}Return Ramadan start/end for a Gregorian year (observed or estimated) and the officially published reduced working-hour rules for the emirate/sector (e.g. federal 09:00–14:30 Mon–Thu, 09:00–12:00 Fri; private sector −2 hours/day). If no rule has been published for that profile the response says 'not_announced' instead of guessing. Use for scheduling during Ramadan and for HR policy questions. Example: {year:2026, emirate:'federal', sector:'public'} → 18 Feb–19 Mar 2026, confirmed, FAHR Circular 1/2026 hours. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| year* | integer | Gregorian year, e.g. 2027. |
| sector | string | Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged). |
| emirate | string | Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend. |
{
"type": "object",
"title": "ramadan_infoArguments",
"required": [
"year"
],
"properties": {
"year": {
"type": "integer",
"title": "Year",
"maximum": 2100,
"minimum": 1900,
"description": "Gregorian year, e.g. 2027."
},
"sector": {
"enum": [
"public",
"private"
],
"type": "string",
"title": "Sector",
"default": "public",
"description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged)."
},
"emirate": {
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"type": "string",
"title": "Emirate",
"default": "federal",
"description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend."
}
}
}Count working days between two dates for a UAE emirate/sector (choose which endpoints to include), with the number of Friday half days and the list of non-working days in the range. Use for leave calculations, payroll, project durations and lateness. Example: {start_date:'2026-05-18', end_date:'2026-06-05', emirate:'federal', sector:'public'} → working_days 10, of_which_half_days 2. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| sector | string | Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged). |
| emirate | string | Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend. |
| end_date* | string | ISO date. May be before start_date (result is negative). |
| inclusive | string | Which endpoints to count: both (default) | start | end | none. |
| start_date* | string | ISO date. |
Tell whether a specific datetime falls within standard working hours for an emirate/sector, taking into account weekends, holidays, the federal Friday half day (07:30–12:00) and official Ramadan hours. Private-sector hours are employer-specific; a default schedule is used and flagged. Use before calling a government office, scheduling a meeting or promising same-day action. Example: {datetime:'2026-03-05T13:00:00+04:00', emirate:'federal', sector:'public'} → within_working_hours true, hours_today 09:00–14:30 (Ramadan). Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.
| Argument | Type | Description |
|---|---|---|
| sector | string | Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged). |
| emirate | string | Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend. |
| datetime* | string | ISO datetime, e.g. '2026-03-05T13:00:00+04:00'. Naive values are read as Asia/Dubai; 'Z' is UTC. |
{
"type": "object",
"title": "working_hoursArguments",
"required": [
"datetime"
],
"properties": {
"sector": {
"enum": [
"public",
"private"
],
"type": "string",
"title": "Sector",
"default": "public",
"description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged)."
},
"emirate": {
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"type": "string",
"title": "Emirate",
"default": "federal",
"description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend."
},
"datetime": {
"type": "string",
"title": "Datetime",
"description": "ISO datetime, e.g. '2026-03-05T13:00:00+04:00'. Naive values are read as Asia/Dubai; 'Z' is UTC."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 31, 2026.
| string |
| Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend. |
| start_date* | string | ISO date the period starts from (e.g. date of notification). |
{
"type": "object",
"$defs": {
"DeadlineRulesIn": {
"type": "object",
"title": "DeadlineRulesIn",
"properties": {
"month_end_clamp": {
"type": "boolean",
"title": "Month End Clamp",
"default": true,
"description": "For month units: clamp 31 Jan + 1 month to 28/29 Feb (default true)."
},
"exclude_start_day": {
"type": "boolean",
"title": "Exclude Start Day",
"default": true,
"description": "Day 1 is the day after start_date (true, default) or start_date itself."
},
"treat_half_day_as_working": {
"type": "boolean",
"title": "Treat Half Day As Working",
"default": true,
"description": "Friday half days count as working days (default true)."
},
"include_estimated_holidays": {
"type": "boolean",
"title": "Include Estimated Holidays",
"default": true,
"description": "Count not-yet-announced (estimated) holidays as non-working days (default true)."
},
"extend_if_ends_on_non_working_day": {
"type": "boolean",
"title": "Extend If Ends On Non Working Day",
"default": true,
"description": "Roll a deadline that lands on a weekend/holiday forward to the next working day (default true)."
}
},
"additionalProperties": false
}
},
"title": "compute_deadlineArguments",
"required": [
"start_date",
"period",
"unit"
],
"properties": {
"unit": {
"enum": [
"calendar_days",
"working_days",
"months",
"hijri_months"
],
"type": "string",
"title": "Unit",
"description": "calendar_days | working_days | months (Gregorian) | hijri_months."
},
"rules": {
"anyOf": [
{
"$ref": "#/$defs/DeadlineRulesIn"
},
{
"type": "null"
}
],
"default": null,
"description": "Counting conventions. Pass what the contract/rule says; defaults are the common convention."
},
"period": {
"type": "integer",
"title": "Period",
"description": "Length of the period in `unit`. Negative counts backwards."
},
"sector": {
"enum": [
"public",
"private"
],
"type": "string",
"title": "Sector",
"default": "public",
"description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged)."
},
"emirate": {
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"type": "string",
"title": "Emirate",
"default": "federal",
"description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend."
},
"start_date": {
"type": "string",
"title": "Start Date",
"description": "ISO date the period starts from (e.g. date of notification)."
}
}
}{
"type": "object",
"title": "is_working_dayArguments",
"required": [
"date"
],
"properties": {
"date": {
"type": "string",
"title": "Date",
"description": "ISO date 'YYYY-MM-DD' (or ISO datetime; converted to Asia/Dubai)."
},
"sector": {
"enum": [
"public",
"private"
],
"type": "string",
"title": "Sector",
"default": "public",
"description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged)."
},
"emirate": {
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"type": "string",
"title": "Emirate",
"default": "federal",
"description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend."
},
"apply_optional_overlays": {
"type": "boolean",
"title": "Apply Optional Overlays",
"default": false,
"description": "Apply optional entity-level schedules such as Dubai's summer 4-day week. Default false."
}
}
}{
"type": "object",
"title": "working_days_betweenArguments",
"required": [
"start_date",
"end_date"
],
"properties": {
"sector": {
"enum": [
"public",
"private"
],
"type": "string",
"title": "Sector",
"default": "public",
"description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged)."
},
"emirate": {
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"type": "string",
"title": "Emirate",
"default": "federal",
"description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend."
},
"end_date": {
"type": "string",
"title": "End Date",
"description": "ISO date. May be before start_date (result is negative)."
},
"inclusive": {
"enum": [
"both",
"start",
"end",
"none"
],
"type": "string",
"title": "Inclusive",
"default": "both",
"description": "Which endpoints to count: both (default) | start | end | none."
},
"start_date": {
"type": "string",
"title": "Start Date",
"description": "ISO date."
}
}
}