shabbat-times

安装量: 44
排名: #16800

安装

npx skills add https://github.com/hoodini/ai-agents-skills --skill shabbat-times

Jewish Calendar & Shabbat Times

Access Shabbat times and Jewish calendar data via the Hebcal API.

Quick Start // Get Shabbat times for a location const response = await fetch( 'https://www.hebcal.com/shabbat?cfg=json&geonameid=5128581&M=on' ); const data = await response.json();

Shabbat Times API By GeoNames ID (Recommended) const url = new URL('https://www.hebcal.com/shabbat'); url.searchParams.set('cfg', 'json'); url.searchParams.set('geonameid', '5128581'); // New York url.searchParams.set('M', 'on'); // Include Havdalah

const response = await fetch(url); const data = await response.json();

// Response { "title": "Hebcal New York January 2025", "items": [ { "title": "Candle lighting: 4:28pm", "date": "2025-01-10T16:28:00-05:00", "category": "candles" }, { "title": "Parashat Shemot", "date": "2025-01-11", "category": "parashat" }, { "title": "Havdalah: 5:31pm", "date": "2025-01-11T17:31:00-05:00", "category": "havdalah" } ] }

By Coordinates const url = new URL('https://www.hebcal.com/shabbat'); url.searchParams.set('cfg', 'json'); url.searchParams.set('latitude', '32.0853'); url.searchParams.set('longitude', '34.7818'); url.searchParams.set('tzid', 'Asia/Jerusalem');

Jewish Calendar API const url = new URL('https://www.hebcal.com/hebcal'); url.searchParams.set('cfg', 'json'); url.searchParams.set('v', '1'); url.searchParams.set('year', '2025'); url.searchParams.set('month', 'x'); // All months

// Optional parameters url.searchParams.set('maj', 'on'); // Major holidays url.searchParams.set('min', 'on'); // Minor holidays url.searchParams.set('mod', 'on'); // Modern holidays url.searchParams.set('nx', 'on'); // Rosh Chodesh url.searchParams.set('ss', 'on'); // Special Shabbatot url.searchParams.set('s', 'on'); // Weekly parsha

const response = await fetch(url); const holidays = await response.json();

Hebrew Date Conversion // Gregorian to Hebrew const url = new URL('https://www.hebcal.com/converter'); url.searchParams.set('cfg', 'json'); url.searchParams.set('gy', '2025'); url.searchParams.set('gm', '1'); url.searchParams.set('gd', '15');

const response = await fetch(url); const data = await response.json(); // { "hy": 5785, "hm": "Tevet", "hd": 15, "hebrew": "ט״ו בטבת תשפ״ה" }

React Hook import { useState, useEffect } from 'react';

interface ShabbatTimes { candleLighting: Date | null; havdalah: Date | null; parsha: string | null; }

function useShabbatTimes(geonameid: string) { const [times, setTimes] = useState(null); const [loading, setLoading] = useState(true);

useEffect(() => { async function fetchTimes() { const url = new URL('https://www.hebcal.com/shabbat'); url.searchParams.set('cfg', 'json'); url.searchParams.set('geonameid', geonameid); url.searchParams.set('M', 'on');

  const response = await fetch(url);
  const data = await response.json();

  const result: ShabbatTimes = {
    candleLighting: null,
    havdalah: null,
    parsha: null
  };

  for (const item of data.items) {
    if (item.category === 'candles') {
      result.candleLighting = new Date(item.date);
    } else if (item.category === 'havdalah') {
      result.havdalah = new Date(item.date);
    } else if (item.category === 'parashat') {
      result.parsha = item.title.replace('Parashat ', '');
    }
  }

  setTimes(result);
  setLoading(false);
}

fetchTimes();

}, [geonameid]);

return { times, loading }; }

Common GeoNames IDs City GeoNames ID Jerusalem 281184 Tel Aviv 293397 New York 5128581 Los Angeles 5368361 London 2643743 Paris 2988507 Resources Hebcal API Docs: https://www.hebcal.com/home/developer-apis

返回排行榜