Block your calendar for solat.

Prayer times for all 60 JAKIM zones, as a calendar feed that keeps itself current. Subscribe once.

Build your feed

Pick your zone, then decide how the events should sit in your day.

Today in your calendar

Loading times

The 60 official JAKIM e-Solat zones, grouped by state.

Period

Period shapes the download. A subscription ignores it and always carries the rest of the year, rolling forward on its own.

Prayers

Event start

15 min blocks snap the event down to the quarter hour it falls in, so it lines up with the rest of your grid. The true solat time is always written into the event.

How it behaves in your calendar

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 growing a second copy of them.
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.
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 is for your grid, the truth is in the event.

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.

Any MCP client works. The server is stateless, needs no key and keeps no session.

The same thing in plain text for any LLM: llms.txt.

Tools

  • list_zones Find the zone code for any district in Malaysia.
  • get_prayer_times Read one day of prayer times, with the hijri date.
  • get_calendar_feed Turn a set of options into a subscribable feed URL.

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.

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 SWK09 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.

And establish prayer for My remembrance.

Quran 20:14