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 Астрономия
Затмения, лунные фазы, солнцестояния — для знающих пользователей.
Как подписаться
- Скопируйте URL с API-ключом:
https://calendar.e-replika.ru/api/v1/ical/prayers.ics?lat=55.75&lon=37.61&method=MWL&key=YOUR_KEY - В Apple Calendar: File → New Calendar Subscription → Paste URL
- В Google Calendar: Other calendars → + → From URL
- В Outlook: Add calendar → Subscribe from web → Paste URL
- Частота обновления — раз в сутки (Apple), раз в 12 часов (Google)
Особенности формата
Каждый файл валиден по RFC 5545 и проходит icalendar-validator. Ключевые поля:
X-WR-CALNAME— имя календаря в клиентеX-WR-TIMEZONE— таймзона (для time-based VEVENT)VTIMEZONE— полноценный блок с DST-правилами (для городов с переходом на летнее)UID— стабильный для каждого события, чтобы клиент не дублировал при обновленииCATEGORIES—PRAYER,HAJJ,OBSERVANCE,ASTRONOMYдля фильтровVALARM— опциональные алерты (через query-paramalert=15)
All-day события (праздники) используют DTSTART;VALUE=DATE без таймзоны,
как требует RFC для «весь день» событий.
ETag + Last-Modified выдаются серверу кеширования. Google/Apple при повторном fetch получают 304 и не тратят ресурсы.