Skip to content

Repository files navigation

PrayCalendar

Sync accurate prayer times to Google, Apple, or Outlook calendars

Live Demo License Next.js TypeScript

Subscribe once. Get accurate prayer times synced to your calendar — updated automatically.

Live Demo · Report Bug · Request Feature


Features

Calendar Integration

  • One-click subscribe to Google Calendar, Apple Calendar, or Outlook
  • QR code for easy mobile subscription
  • PDF export for printable timetables
  • Shareable presets for mosques and communities

Prayer Customization

  • 14+ calculation methods — Egyptian, ISNA, MWL, Umm Al-Qura, Diyanet, and more
  • Customizable alarms — at prayer time or 5/10/15/20/30 minutes before
  • Select specific prayers — Fajr, Sunrise, Dhuhr, Asr, Maghrib, Isha, Midnight
  • Weekday filtering — generate events for specific days only
  • Custom event duration — 5 to 60 minutes

Special Modes

  • Ramadan Mode — automatic Iftar, Tarawih, and Suhoor events
  • Travel Mode (Qasr) — shortened prayers for travelers
  • Jumu'ah Mode — Friday prayer replacing Dhuhr
  • Busy Status — block calendar availability during prayers

Enrichments

  • Qibla direction — compass bearing in event descriptions
  • Du'a & Adhkar — authentic supplications from Hisn al-Muslim
  • Iqama offsets — separate Iqama events for each prayer
  • Hijri date — Islamic calendar date display

Multi-Language Support

English, Arabic (RTL), Turkish, French, Urdu, and Indonesian

45+ Pre-configured Cities

Quick access pages for major cities worldwide with optimized calculation methods:

  • Makkah, Madinah, Cairo, Istanbul, Dubai, London, New York, and many more

Developer Features

  • JSON API — RESTful endpoint for prayer times data
  • Embeddable Widget — iframe/JS widget with generator tool
  • Home Assistant — smart home integration guide

Quick Start

Use Online

Visit pray.ahmedelywa.com to generate your calendar subscription link.

Self-Host

Prerequisites

  • Bun (recommended) or Node.js 18+
  • Redis (optional, for caching)

Installation

# Clone the repository
git clone https://github.com/AhmedElywa/prayCalendar.git
cd prayCalendar

# Install dependencies
bun install

# Start development server
bun dev

The app will be available at http://localhost:3300

Environment Variables

# Optional: Redis for caching
REDIS_URL=redis://localhost:6379

# Optional: Admin dashboard access
ADMIN_KEY=your-secret-key

API Reference

ICS Calendar Feed

GET /api/prayer-times.ics
Parameter Type Default Description
address string City or address (e.g., "Cairo, Egypt")
latitude number Latitude (alternative to address)
longitude number Longitude (alternative to address)
method number 5 Calculation method
duration number 25 Event duration in minutes
months number 3 Calendar length (1-11)
alarm string 5 Alarm offsets, comma-separated
events string all Prayer indices (0=Fajr...6=Midnight)
lang string en Language (en/ar/tr/fr/ur/id)
traveler boolean false Enable Qasr mode
jumuah boolean false Enable Friday prayer
ramadanMode boolean false Enable Ramadan events
qibla boolean false Include Qibla direction
dua boolean false Include Du'a/Adhkar
busy boolean false Mark as busy status

Example:

https://pray.ahmedelywa.com/api/prayer-times.ics?address=Cairo,Egypt&method=5&alarm=5,10

JSON API

GET /api/prayer-times.json

Returns today's timings, next prayer countdown, and Hijri date.

Full Documentation

See API Docs for complete parameter reference.


Tech Stack


Scripts

bun dev          # Start development server
bun build        # Production build
bun start        # Start production server
bun test         # Run unit tests
bun test:watch   # Run tests in watch mode
bun lint         # Run linter
bun format       # Format code
bun check:fix    # Fix linting issues

Contributing

Contributions are welcome! Please read our Contributing Guide for details on:

  • How to submit bug reports and feature requests
  • Development workflow and code style
  • Pull request process

License

This project is licensed under the ISC License - see the LICENSE file for details.


Acknowledgments

  • Prayer times calculated using the AlAdhan API
  • Du'a and Adhkar sourced from Hisn al-Muslim

pray.ahmedelywa.com

Made with care by Ahmed Elywa

About

Free prayer times calendar subscription for Google, Apple & Outlook. Features: Ramadan mode, Qibla direction, multi-language, 45+ cities, JSON API, Home Assistant integration.

Topics

Resources

Contributing

Stars

38 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages