ICS-подписки

Весь расчётный модуль доступен как RFC 5545 iCalendar — подписка работает в Google Calendar, Apple Calendar, Outlook, Mozilla Thunderbird. 10 типов экспорта.

Вместо мобильного приложения — просто добавьте URL в Календарь. Он сам обновится раз в сутки, не требует push-нотификаций, работает в оффлайн.

10 типов экспорта

/v1/ical/prayers.ics

Ежедневные намазы

Fajr/Dhuhr/Asr/Maghrib/Isha как события на 30/90/365 дней. Алерт за N минут.

/v1/ical/events.ics

Исламские события

30+ записей: Ramadan, Eid, Arafah, Ashura, Mawlid и др. All-day.

/v1/hajj/milestones.ics

Хадж

13 дней Зуль-хиджа с ритуалами в DESCRIPTION.

/v1/ical/month

Месячный срез

Один месяц намазов в плотном виде (для повторяющегося импорта).

/v1/ical/week

Недельный срез

Только на текущую неделю — маленький файл.

/v1/ical/year

Годовой

Полный год намазов. ~1800 VEVENT, больше файл.

/v1/ical/ramadan

Рамадан

Sehri (imsak) + Iftar на весь месяц, с duration = день поста.

/v1/ical/holidays

Праздники

Только Eid al-Fitr, Eid al-Adha, Ashura, Mawlid.

/v1/ical/observance-planner

Observance planner

Все рекомендуемые дни поста (Айям аль-Бид, понедельник/четверг, Арафа, Ашура, 6 Шаууаль).

/v1/ical/astronomy

Астрономия

Затмения, лунные фазы, солнцестояния — для знающих пользователей.

Как подписаться

  1. Скопируйте URL с API-ключом: https://calendar.e-replika.ru/api/v1/ical/prayers.ics?lat=55.75&lon=37.61&method=MWL&key=YOUR_KEY
  2. В Apple Calendar: File → New Calendar Subscription → Paste URL
  3. В Google Calendar: Other calendars → + → From URL
  4. В Outlook: Add calendar → Subscribe from web → Paste URL
  5. Частота обновления — раз в сутки (Apple), раз в 12 часов (Google)

Особенности формата

Каждый файл валиден по RFC 5545 и проходит icalendar-validator. Ключевые поля:

  • X-WR-CALNAME — имя календаря в клиенте
  • X-WR-TIMEZONE — таймзона (для time-based VEVENT)
  • VTIMEZONE — полноценный блок с DST-правилами (для городов с переходом на летнее)
  • UID — стабильный для каждого события, чтобы клиент не дублировал при обновлении
  • CATEGORIESPRAYER, HAJJ, OBSERVANCE, ASTRONOMY для фильтров
  • VALARM — опциональные алерты (через query-param alert=15)

All-day события (праздники) используют DTSTART;VALUE=DATE без таймзоны, как требует RFC для «весь день» событий.

ETag + Last-Modified выдаются серверу кеширования. Google/Apple при повторном fetch получают 304 и не тратят ресурсы.