Block your calendar for solat.
Prayer times for all 60 JAKIM zones, as a calendar feed that keeps itself current. Subscribe once.
Free to use, with no account, cookies or ads.
- Subuh
- Syuruk
- Zohor
- Asar
- Maghrib
- Isyak
إِنَّ ٱلصَّلَوٰةَ كَانَتْ عَلَى ٱلْمُؤْمِنِينَ كِتَـٰبًا مَّوْقُوتًا
Indeed, performing prayers is a duty on the believers at the appointed times.
Quran 4:103 Translation by Dr Mustafa Khattab, The Clear Quran
سَأَلْتُ النَّبِيَّ صلى الله عليه وسلم أَىُّ الْعَمَلِ أَحَبُّ إِلَى اللَّهِ قَالَ " الصَّلاَةُ عَلَى وَقْتِهَا ".
I asked the Prophet (ﷺ) "Which deed is the dearest to Allah?" He replied,
"To offer the prayers at their early stated fixed times."
Sahih al-Bukhari 527, narrated by Abdullah ibn Mas'ud Translation by Dr Muhammad Muhsin Khan
Build your calendar feed
Pick your zone and prayers, then choose when each event starts and how long it lasts. The calendar beside the options redraws as you change them.
Today in your calendar
Subscribe
A subscription re-reads the feed on its own, so next year's times arrive without you doing anything.
Other ways to add it
Copy the feed URL
Paste it into any calendar app that can subscribe to a URL.
Download a file
A file is a snapshot and does not update itself. Pick how far ahead it covers.
The first sync
The first sync can take a little while. Google Calendar may need a few minutes and a refresh, and Apple Calendar a few minutes and sometimes a restart of the app. Outlook usually shows events straight away.
How it behaves in your calendar
Three rules decide what a subscription does over a year. Each one is visible in the feed itself.
-
Re-importing is safe
Every event carries a stable identifier built from the zone, date and prayer. Import the same feed twice and your calendar updates those events rather than adding a second copy of them.
In the feed -
It refreshes itself
The feed asks calendar apps to re-read it twice a day. Times for the rest of the year are always in there, and the window rolls forward as the year goes on.
In the feed REFRESH-INTERVAL;VALUE=DURATION:PT12H X-PUBLISHED-TTL:PT12H -
The real time travels with the event
Even when you snap events to 15 minute blocks, each event's notes hold the exact JAKIM time, your zone, the hijri date and a link back to e-Solat. The block only moves the event in your calendar; the exact time stays in its notes.
In the event notes
Bring your AI assistant
Your assistant can look up zones, read prayer times and build your feed URL for you. Point it at this endpoint.
Tools
-
find_zoneFind the zone for any town, district or state in Malaysia. -
list_zonesList all 60 zones by state, with the districts in each. -
get_prayer_timesRead one day of prayer times for a zone or a town, with the hijri date. -
get_calendar_feedTurn a set of options into a subscribable feed URL.
Also for developers: the API docs, the OpenAPI spec, and llms.txt in plain text for any LLM.
Add it to Claude Code
claude mcp add --transport http solatcal /mcp
Any MCP client works. The server is stateless, needs no key and keeps no session.
Common questions
Is SolatCal free?
Yes. SolatCal is free, has no accounts and shows no ads. It reformats the official JAKIM e-Solat prayer times for Malaysia into a calendar feed, and that is all it does.
How is SolatCal different from a prayer times app?
It uses JAKIM's published times as they are, rather than calculating them on your phone with a method you have to choose. It puts them in the calendar you already plan your day in, where colleagues can see the time is taken. Every live feed is checked against JAKIM's published times, and the About page gives the latest result.
Which JAKIM zones are covered?
All 60 official e-Solat zones, across every state. WLY01 covers Kuala Lumpur and Putrajaya, SGR01 covers Gombak and Petaling, JHR02 covers Johor Bahru, PNG01 covers Pulau Pinang and SWK08 covers Kuching. Pick yours from the zone list, which is grouped by state.
How do the prayer times stay up to date?
Subscribe once and your calendar app re-reads the feed about twice a day. Times for the rest of the year are always in the feed, so a subscribed calendar rolls into the next year on its own. Downloading an .ics file gives you a snapshot instead, which you will need to replace later.
Can I show prayer times as free instead of busy?
Yes. Show as Free keeps the events visible without blocking your availability, so colleagues can still book over them. Show as Busy is the default and protects the slot.
Where do the prayer times come from?
Every time comes straight from JAKIM e-Solat, the official Malaysian source. SolatCal calculates nothing of its own, and each event carries the exact JAKIM time, the hijri date and a link back to e-Solat.
Can my AI assistant use SolatCal?
Yes. SolatCal runs an MCP server at /mcp, which lets an assistant look up JAKIM zones, read the prayer times for a day and build a calendar feed URL. There is also an llms.txt describing the whole API in plain text, so a model can work from it without MCP at all.
Build your feedوَأَقِمِ ٱلصَّلَوٰةَ لِذِكْرِىٓ
…and establish prayer for My remembrance.
Quran 20:14 Translation by Dr Mustafa Khattab, The Clear Quran