prayer schedule in Oujda: all prayer times
Prayer Times Oujda structure daily, family, and professional life. In Oujda, they are based on a recognized calculation (Fajr at 18° and Isha at 17°) and align with the Africa/Ceuta time zone (GMT+1), providing reliable references for Salat Oujda throughout the seasons.
Respecting these moments strengthens personal and collective balance. For inter-city trips or shared schedules, it is recommended to consult prayer times available on Employeur.ma in more than 50 cities across the Kingdom, including prayer times in Casablanca and prayer times in Rabat.
Prayer Times in Oujda Today: Oujda Azan Times and Salat Windows
/* Conteneur global limité en hauteur */ .widget-prieres-maroc { max-height: 1900px; /* div { height: 100%; width: 0%; background: #1f8ceb; transition: width .2s ease; } .table-wrap { max-height: 900px; /* limite l’affichage des 50 villes */ overflow: auto; border: 1px solid #eee; border-radius: 10px; } table { width: 100%; border-collapse: collapse; } th, td { white-space: nowrap; } tbody tr:nth-child(odd) { background: #fff; } tbody tr:nth-child(even) { background: #f6f6f6; } .badge { display: inline-block; padding: .25rem .5rem; border-radius: 999px; background: #eaf4ff; color: #1f8ceb; font-size: .8rem; } .sr-only { position: absolute; width: 1px; height: 1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; } .inline-note { font-size: .9rem; color: #666; } .sticky-top { position: sticky; top: 0; background: inherit; z-index: 2; } /* Free API used: Aladhan Endpoint: https://api.aladhan.com/v1/timingsByCity?city={CITY}&country=Morocco&date={DD-MM-YYYY} Doc: https://aladhan.com/prayer-times-api Example call: https://api.aladhan.com/v1/timingsByCity?city=Casablanca&country=Morocco&date=10-10-2025 Sample JSON response (excerpt): { “code”: 200, “status”: “OK”, “data”: { “timings”: { “Fajr”: “05:38”, “Sunrise”: “07:04”, “Dhuhr”: “13:22”, “Asr”: “16:33”, “Maghrib”: “19:34”, “Isha”: “20:56” }, “date”: { “readable”: “10 Oct 2025”, “timestamp”: “1696896000” }, “meta”: { “timezone”: “Africa/Casablanca” } } } */ /* =============================== Data for the 50 largest cities (FR label / API name) =============================== */ const VILLES_MAROC = [ { label: “Casablanca”, city: “Casablanca” }, { label: “Rabat”, city: “Rabat” }, { label: “Fès”, city: “Fes” }, { label: “Salé”, city: “Sale” }, { label: “Tanger”, city: “Tangier” }, { label: “Marrakech”, city: “Marrakech” }, { label: “Meknès”, city: “Meknes” }, { label: “Oujda”, city: “Oujda” }, { label: “Kénitra”, city: “Kenitra” }, { label: “Agadir”, city: “Agadir” }, { label: “Tétouan”, city: “Tetouan” }, { label: “Témara”, city: “Temara” }, { label: “Safi”, city: “Safi” }, { label: “Mohammédia”, city: “Mohammedia” }, { label: “Khouribga”, city: “Khouribga” }, { label: “El Jadida”, city: “El Jadida” }, { label: “Béni Mellal”, city: “Beni Mellal” }, { label: “Nador”, city: “Nador” }, { label: “Taza”, city: “Taza” }, { label: “Settat”, city: “Settat” }, { label: “Berrechid”, city: “Berrechid” }, { label: “Ksar El Kébir”, city: “Ksar el Kebir” }, { label: “Larache”, city: “Larache” }, { label: “Khemisset”, city: “Khemisset” }, { label: “Guelmim”, city: “Guelmim” }, { label: “Ouarzazate”, city: “Ouarzazate” }, { label: “Al Hoceïma”, city: “Al Hoceima” }, { label: “Taroudant”, city: “Taroudant” }, { label: “Essaouira”, city: “Essaouira” }, { label: “Fnideq”, city: “Fnideq” }, { label: “Martil”, city: “Martil” }, { label: “Sidi Slimane”, city: “Sidi Slimane” }, { label: “Sidi Kacem”, city: “Sidi Kacem” }, { label: “Oulad Teima”, city: “Oulad Teima” }, { label: “Youssoufia”, city: “Youssoufia” }, { label: “Midelt”, city: “Midelt” }, { label: “Berkane”, city: “Berkane” }, { label: “Guercif”, city: “Guercif” }, { label: “Taourirt”, city: “Taourirt” }, { label: “Errachidia”, city: “Errachidia” }, { label: “Fquih Ben Salah”, city: “Fkih Ben Salah” }, { label: “Sefrou”, city: “Sefrou” }, { label: “Azrou”, city: “Azrou” }, { label: “Oued Zem”, city: “Oued Zem” }, { label: “Ouazzane”, city: “Ouazzane” }, { label: “Tiznit”, city: “Tiznit” }, { label: “Chichaoua”, city: “Chichaoua” }, { label: “Skhirat”, city: “Skhirat” }, { label: “Benslimane”, city: “Benslimane” }, { label: “Bouznika”, city: “Bouznika” } ]; /* =============================== Constants & helpers =============================== */ const API_BASE = “https://api.aladhan.com/v1/timingsByCity”; const cache = new Map(); // key: city|date -> timings const $ = (sel, ctx=document) => ctx.querySelector(sel); const $$ = (sel, ctx=document) => Array.from(ctx.querySelectorAll(sel)); function toDDMMYYYY(date) { const d = String(date.getDate()).padStart(2, ‘0’); const m = String(date.getMonth() + 1).padStart(2, ‘0’); const y = date.getFullYear(); return `${d}-${m}-${y}`; } function fromInputDate(val) { // val: YYYY-MM-DD const [y,m,d] = val.split(‘-‘).map(Number); return new Date(y, m-1, d); } function formatHumanDateFR(date) { return date.toLocaleDateString(‘fr-MA’, { weekday: ‘long’, year: ‘numeric’, month: ‘long’, day: ‘numeric’ }); } function stripTZ(t) { // Aladhan sometimes returns “05:38 (+01)” -> keep HH:MM return String(t).split(‘ ‘)[0]; } /* =============================== Fetch timings (with cache) =============================== */ async function fetchTimings(city, dateStr) { const key = `${city}|${dateStr}`; if (cache.has(key)) return cache.get(key); const url = `${API_BASE}?city=${encodeURIComponent(city)}&country=Morocco&date=${encodeURIComponent(dateStr)}`; const resp = await fetch(url); if (!resp.ok) throw new Error(`Network error (${resp.status})`); const json = await resp.json(); if (json.code !== 200 || !json.data) throw new Error(‘Invalid API response’); const t = json.data.timings; const timings = { Fajr: stripTZ(t.Fajr), Sunrise: stripTZ(t.Sunrise), Dhuhr: stripTZ(t.Dhuhr), Asr: stripTZ(t.Asr), Maghrib: stripTZ(t.Maghrib), Isha: stripTZ(t.Isha), timezone: json.data.meta?.timezone || ‘Africa/Casablanca’ }; cache.set(key, timings); return timings; } /* =============================== Render main card (selected city) =============================== */ function renderTimingsTiles(container, timings) { container.innerHTML = ”; const items = [ { k: ‘Fajr’, label: ‘Fajr’ }, { k: ‘Sunrise’, label: ‘Sunrise’ }, { k: ‘Dhuhr’, label: ‘Dhuhr’ }, { k: ‘Asr’, label: ‘Asr’ }, { k: ‘Maghrib’, label: ‘Maghrib’ }, { k: ‘Isha’, label: ‘Isha’ } ]; items.forEach(item => { const div = document.createElement(‘div’); div.className = ‘time-pill’; div.innerHTML = `${item.label}${timings[item.k] || ‘–:–‘}`; container.appendChild(div); }); } async function updateMainCard() { const select = $(‘#select-ville’); const dateInput = $(‘#input-date’); const cityObj = VILLES_MAROC[select.selectedIndex] || VILLES_MAROC[0]; const apiCity = cityObj.city; const label = cityObj.label; const date = dateInput.value ? fromInputDate(dateInput.value) : new Date(); const dateStr = toDDMMYYYY(date); $(‘#titre-ville’).textContent = `${label} — schedule for ${formatHumanDateFR(date)}`; $(‘#badge-date’).textContent = formatHumanDateFR(date); const grid = $(‘#grille-horaires’); grid.innerHTML = ‘- Oujda Adhan: set reminders 10–15 min before each prayer to avoid rushing.
- Prayer Morocco Oujda: in winter, times are closer; in summer, Fajr advances and Isha shifts.
- Oujda Salat App: favor an app with 18°/17° method and fixed GMT+1 timezone.
- Oujda Azan Times: the recommended angle at this latitude ensures useful accuracy for home‑work commuting.
Useful local references for the faithful and the active
Around Bab Al Gharbi, the medina, and Mohammed V boulevard, several mosques allow performing Salat on time, even during busy days. Local transportation is denser approaching Maghrib, so anticipating a 10-minute margin facilitates access to the nearest Mosque in Oujda.
- Coordinate meetings to end before Dhuhr or Asr.
- For students, schedule light revision between Maghrib and Isha.
- For businesses, adjust traffic just after Maghrib (peak time).
To track inter-regional trips, easily compare with other cities: consult Salat times in Casablanca and Salat times in Rabat to maintain a homogeneous schedule.
Integrate Oujda Prayer Times into Work and Study Days
In Oujda, coordinating work time, mobility, and worship practice enhances focus and team cohesion. Employers gain punctuality and well-being when a defined slot is allocated for Salat Oujda, especially around Dhuhr and Maghrib.
- Favor a quiet space for prayer at work or on campus, close to operational stations.
- Configure an Oujda Salat App with alerts for Oujda Adhan and a 5-minute margin.
- For external missions, compare with Rabat salat times or Casablanca calendar to optimize appointments and trips.
- Include Oujda Prayer Times in internal schedules for shared visibility.
Calculation Methods and Local Compliance
The calculation chosen in Oujda favors an angle of 18° for Fajr and 17° for Isha, robust up to ~48.5° latitude. This choice balances astronomical precision and community use, facilitating HR planning and urban mobility.
| Reference | Fajr | Isha | Common use |
|---|---|---|---|
| Muslim World League | 18° | 17° | Widely used standard in Morocco |
| Umm Al‑Qura | 18.5° | 90 min after Maghrib (120 min in Ramadan) | Arabian Peninsula |
| UOIF/France | 12° | 12° | Adaptation for higher latitudes |
- Time zone used: GMT+1 (Africa/Ceuta) with official seasonal adjustment.
- Oujda coordinates: 34.69°N, −1.91°E, useful for calculation apps.
- For business trips, also check Casablanca prayer times and Rabat timetable.
Respecting prayer times strengthens collective discipline and workplace well-being. To prepare meetings, classes, or national travel, refer to dedicated pages like Salat Rabat today and daily times in Casablanca, and consult on Employeur.ma the schedules available in 50 Moroccan cities.