UAE Calendar Oracle
UAE working days, holidays with confirmation status, Hijri dates, Ramadan hours, deadlines.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"uae-calendar-oracle": {
"url": "https://oracle.noahsarch.tech/mcp"
}
}
}Puntos de conexión remotos
https://oracle.noahsarch.tech/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (10)
🟢is_working_day(date, emirate, sector, apply_optional_overlays)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"date": {
"description": "ISO date 'YYYY-MM-DD' (or ISO datetime; converted to Asia/Dubai).",
"title": "Date",
"type": "string"
},
"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.",
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"title": "Emirate",
"type": "string"
},
"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).",
"enum": [
"public",
"private"
],
"title": "Sector",
"type": "string"
},
"apply_optional_overlays": {
"default": false,
"description": "Apply optional entity-level schedules such as Dubai's summer 4-day week. Default false.",
"title": "Apply Optional Overlays",
"type": "boolean"
}
},
"required": [
"date"
],
"title": "is_working_dayArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "is_working_dayDictOutput"
}🟢add_working_days(start_date, days, emirate, sector, count_start_day)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"description": "ISO date to count from.",
"title": "Start Date",
"type": "string"
},
"days": {
"description": "Working days to add. Negative counts backwards.",
"maximum": 10000,
"minimum": -10000,
"title": "Days",
"type": "integer"
},
"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.",
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"title": "Emirate",
"type": "string"
},
"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).",
"enum": [
"public",
"private"
],
"title": "Sector",
"type": "string"
},
"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).",
"title": "Count Start Day",
"type": "boolean"
}
},
"required": [
"start_date",
"days"
],
"title": "add_working_daysArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "add_working_daysDictOutput"
}🟢working_days_between(start_date, end_date, emirate, sector, inclusive)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"description": "ISO date.",
"title": "Start Date",
"type": "string"
},
"end_date": {
"description": "ISO date. May be before start_date (result is negative).",
"title": "End Date",
"type": "string"
},
"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.",
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"title": "Emirate",
"type": "string"
},
"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).",
"enum": [
"public",
"private"
],
"title": "Sector",
"type": "string"
},
"inclusive": {
"default": "both",
"description": "Which endpoints to count: both (default) | start | end | none.",
"enum": [
"both",
"start",
"end",
"none"
],
"title": "Inclusive",
"type": "string"
}
},
"required": [
"start_date",
"end_date"
],
"title": "working_days_betweenArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "working_days_betweenDictOutput"
}🟢compute_deadline(start_date, period, unit, emirate, sector, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"description": "ISO date the period starts from (e.g. date of notification).",
"title": "Start Date",
"type": "string"
},
"period": {
"description": "Length of the period in `unit`. Negative counts backwards.",
"title": "Period",
"type": "integer"
},
"unit": {
"description": "calendar_days | working_days | months (Gregorian) | hijri_months.",
"enum": [
"calendar_days",
"working_days",
"months",
"hijri_months"
],
"title": "Unit",
"type": "string"
},
"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.",
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"title": "Emirate",
"type": "string"
},
"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).",
"enum": [
"public",
"private"
],
"title": "Sector",
"type": "string"
},
"rules": {
"anyOf": [
{
"$ref": "#/$defs/DeadlineRulesIn"
},
{
"type": "null"
}
],
"default": null,
"description": "Counting conventions. Pass what the contract/rule says; defaults are the common convention."
}
},
"required": [
"start_date",
"period",
"unit"
],
"$defs": {
"DeadlineRulesIn": {
"additionalProperties": false,
"properties": {
"exclude_start_day": {
"default": true,
"description": "Day 1 is the day after start_date (true, default) or start_date itself.",
"title": "Exclude Start Day",
"type": "boolean"
},
"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).",
"title": "Extend If Ends On Non Working Day",
"type": "boolean"
},
"treat_half_day_as_working": {
"default": true,
"description": "Friday half days count as working days (default true).",
"title": "Treat Half Day As Working",
"type": "boolean"
},
"include_estimated_holidays": {
"default": true,
"description": "Count not-yet-announced (estimated) holidays as non-working days (default true).",
"title": "Include Estimated Holidays",
"type": "boolean"
},
"month_end_clamp": {
"default": true,
"description": "For month units: clamp 31 Jan + 1 month to 28/29 Feb (default true).",
"title": "Month End Clamp",
"type": "boolean"
}
},
"title": "DeadlineRulesIn",
"type": "object"
}
},
"title": "compute_deadlineArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "compute_deadlineDictOutput"
}🟢list_holidays(year, emirate, sector, include_estimated)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"year": {
"description": "Gregorian year, e.g. 2026.",
"maximum": 2100,
"minimum": 1900,
"title": "Year",
"type": "integer"
},
"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.",
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"title": "Emirate",
"type": "string"
},
"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).",
"enum": [
"public",
"private"
],
"title": "Sector",
"type": "string"
},
"include_estimated": {
"default": true,
"description": "Include not-yet-announced holidays with status 'estimated' (default true).",
"title": "Include Estimated",
"type": "boolean"
}
},
"required": [
"year"
],
"title": "list_holidaysArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "list_holidaysDictOutput"
}🟢next_holiday(from_date, emirate, sector)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"from_date": {
"description": "ISO date to search from (inclusive). Usually today.",
"title": "From Date",
"type": "string"
},
"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.",
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"title": "Emirate",
"type": "string"
},
"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).",
"enum": [
"public",
"private"
],
"title": "Sector",
"type": "string"
}
},
"required": [
"from_date"
],
"title": "next_holidayArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "next_holidayDictOutput"
}🟢gregorian_to_hijri(date)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"date": {
"description": "ISO Gregorian date 'YYYY-MM-DD' between 1924-08-01 and 2077-11-16.",
"title": "Date",
"type": "string"
}
},
"required": [
"date"
],
"title": "gregorian_to_hijriArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "gregorian_to_hijriDictOutput"
}🟢hijri_to_gregorian(hijri_date)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"hijri_date": {
"description": "Hijri date 'YYYY-MM-DD', e.g. '1448-01-01' (year 1343–1500 AH).",
"title": "Hijri Date",
"type": "string"
}
},
"required": [
"hijri_date"
],
"title": "hijri_to_gregorianArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "hijri_to_gregorianDictOutput"
}🟢ramadan_info(year, emirate, sector)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"year": {
"description": "Gregorian year, e.g. 2027.",
"maximum": 2100,
"minimum": 1900,
"title": "Year",
"type": "integer"
},
"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.",
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"title": "Emirate",
"type": "string"
},
"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).",
"enum": [
"public",
"private"
],
"title": "Sector",
"type": "string"
}
},
"required": [
"year"
],
"title": "ramadan_infoArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "ramadan_infoDictOutput"
}🟢working_hours(datetime, emirate, sector)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"datetime": {
"description": "ISO datetime, e.g. '2026-03-05T13:00:00+04:00'. Naive values are read as Asia/Dubai; 'Z' is UTC.",
"title": "Datetime",
"type": "string"
},
"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.",
"enum": [
"federal",
"abu_dhabi",
"dubai",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
],
"title": "Emirate",
"type": "string"
},
"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).",
"enum": [
"public",
"private"
],
"title": "Sector",
"type": "string"
}
},
"required": [
"datetime"
],
"title": "working_hoursArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "working_hoursDictOutput"
}Comunidad
Evidencia