A personalized dashboard application that displays Jewish/Hebrew calendar information, weather, news, email, and calendar data. This dashboard is designed for users who want to keep track of Hebrew dates, Zmanim (prayer times), Shabbat times, Israeli holidays, and integrate their Google services.
- Hebrew Calendar: Display current Hebrew date in English or Hebrew characters
- Zmanim: Daily prayer times for Jerusalem (configurable location)
- Shabbat Times: Candle lighting, Havdalah, and weekly Torah portion
- Israeli Holidays: Upcoming Jewish and Israeli national holidays
- Red Alerts: Israeli emergency alert system integration (requires configuration)
- Weather: Current weather and forecast (using Open-Meteo API)
- Air Quality: PM2.5 and AQI data (requires WAQI API key)
- Google Integration: Gmail and Google Calendar integration
- News: Israeli news feed from Google News
- Responsive Design: Works on desktop and mobile devices
Nav Bar
- Python 3.8 or higher
- Google Cloud Console account (for Gmail/Calendar integration)
- WAQI API key (optional, for air quality data)
- Clone the repository:
git clone <repository-url>
cd Hebrew-Dash- Build and install the executable:
# Build the executable (creates venv with uv and installs dependencies)
./build.sh
# Install to ~/.local/bin and create desktop launcher
./install.shAlternatively, use the update script to build and install in one step:
./update.sh- The application is now installed and can be launched:
- From terminal:
hebrew-dashboard - From application menu: "Hebrew Dashboard"
- From terminal:
- Clone the repository:
git clone <repository-url>
cd Hebrew-Dash- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Copy the example environment file:
cp .env.example .env- Edit the
.envfile with your configuration:
GOOGLE_CLIENT_ID: Your Google OAuth Client IDGOOGLE_CLIENT_SECRET: Your Google OAuth Client SecretGOOGLE_PROJECT_ID: Your Google Cloud Project ID
WAQI_API_KEY: API key from https://aqicn.org/api/RED_ALERT_HISTORY_URL: JSON endpoint for Israeli Red Alert data (see Red Alert Setup below)PERSONAL_EMAIL: Your personal Gmail addressBUSINESS_EMAIL: Your business Gmail addressHEBREW_DATE_LANGUAGE: Set toenglishorhebrew
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Gmail API and Google Calendar API
- Create OAuth 2.0 credentials:
- Go to "Credentials" → "Create Credentials" → "OAuth 2.0 Client IDs"
- Choose "Desktop application"
- Download the client configuration
- Copy the
client_id,client_secret, andproject_idto your.envfile
To enable Israeli Red Alert functionality:
- Visit the official Pikud HaOref (Israeli Home Front Command) website
- Look for their developer resources or API documentation
- Find the JSON endpoint for alert history data
- Add the URL to your
.envfile asRED_ALERT_HISTORY_URL
Note: You must find this URL yourself from official sources. The dashboard will not display Red Alert data without this configuration.
hebrew-dashboardpython app.pyThe dashboard will be available at http://localhost:5000
- Visit the Settings page (
/settings) - Configure your API keys if not set in environment variables
- Connect your Google accounts using the "Connect Personal" and "Connect Business" buttons
- Choose your Hebrew date display preference (English or Hebrew characters)
- Home: Overview dashboard with time, weather, and quick info
- Email: View recent emails from connected Gmail accounts
- Calendar: Today's and upcoming calendar events
- Zmanim: Daily prayer times and Hebrew calendar information
- News: Latest Israeli news headlines
- Weather: Detailed weather information and forecast
- Settings: Configure API keys, accounts, and preferences
You can choose between two display formats:
- English: "22 Elul 5785"
- Hebrew: "כ״ב אלול תשפ״ה"
Change this setting in the Settings page or by setting HEBREW_DATE_LANGUAGE=hebrew in your .env file.
- Google APIs: Gmail and Calendar (free with Google account)
- WAQI (World Air Quality Index): Free API for air quality data
- Sign up at https://aqicn.org/api/
- Add your token to
WAQI_API_KEYin.env
- Open-Meteo: Weather data (no API key required)
- HebCal: Hebrew calendar and Zmanim data (no API key required)
- Google News RSS: News headlines (no API key required)
| Variable | Description | Default |
|---|---|---|
APP_TITLE |
Application title | "Hebrew Dashboard" |
HOST |
Server host | "127.0.0.1" |
PORT |
Server port | "5000" |
FLASK_DEBUG |
Debug mode | "1" |
HEBREW_DATE_LANGUAGE |
Hebrew date format | "english" |
RED_ALERT_HISTORY_URL |
Red alert API URL | Required for Red Alert functionality |
The dashboard is configured for Jerusalem by default. To change the location for weather and Zmanim:
- Weather: Modify
DEFAULT_LATandDEFAULT_LONinapp.py - Zmanim: Change the
geonameidparameter in the HebCal API calls (currently set to 281184 for Jerusalem)
-
Google Authentication Fails:
- Verify your OAuth credentials are correct
- Ensure Gmail and Calendar APIs are enabled in Google Cloud Console
- Check that redirect URIs include
http://localhost
-
No Weather Data:
- Check your internet connection
- Verify the Open-Meteo API is accessible
-
Missing Hebrew Dates:
- Ensure HebCal API is accessible
- Check your internet connection
-
Air Quality Data Missing:
- Verify your WAQI API key is correct
- Ensure the key is properly set in your
.envfile
The application logs errors to the console. Run with FLASK_DEBUG=1 for detailed error messages.
Hebrew-Dash/
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
├── templates/ # HTML templates
│ ├── index.html # Main dashboard
│ ├── settings.html # Settings page
│ └── ... # Other page templates
└── static/ # CSS, JavaScript, and other static files
- Add new routes in
app.py - Create corresponding HTML templates in
templates/ - Add navigation links in
templates/_bottom_nav.html - Update CSS in
static/css/style.css
This project is open source. Feel free to modify and distribute according to your needs.












