Nathan Woodburn 9b9b03c4a9
All checks were successful
Build Docker / BuildImage (push) Successful in 46s
feat: Add status endpoint for health checks
2026-04-01 12:44:25 +11:00
2025-09-29 20:51:18 +10:00
2025-09-29 21:32:49 +10:00
2025-09-29 21:32:49 +10:00
2026-02-18 11:23:37 +11:00
2026-02-18 11:23:37 +11:00
2025-09-29 20:51:18 +10:00
2026-02-18 11:58:17 +11:00
2026-02-18 11:23:37 +11:00
2026-04-01 12:41:49 +11:00
2026-02-18 11:23:37 +11:00
2026-02-18 11:23:37 +11:00

Weekly Calendar

Flask app for displaying a weekly Bible study schedule, with optional Google Sheets integration and an automatic upcoming-week highlight.

Features

  • Renders schedule entries with date, leaders, and topic
  • Highlights the next upcoming week automatically
  • Supports theme switching in the UI
  • Loads schedule data from Google Sheets CSV export or local fallback JSON
  • Provides an API endpoint for schedule data

Requirements

  • Python 3.13+ (recommended)

Local Development

  1. Install dependencies using UV
uv sync
  1. Start the development server:
uv run main.py
  1. Open:
http://127.0.0.1:5000

Production Run

Run with Gunicorn via the included launcher:

uv run main.py

Default bind address is 0.0.0.0:5000.

Configuration

Use a .env file or environment variables.

  • GOOGLE_SHEET_URL: Optional. If set, schedule data is fetched from Google Sheets.
  • WORKERS: Optional Gunicorn worker count (default: 1).
  • THREADS: Optional Gunicorn thread count (default: 2).

If GOOGLE_SHEET_URL is not set or fetch/parsing fails, the app falls back to schedule_data.json if present.

Google Sheets Data Format

Expected columns:

  • Date
  • Leaders (comma-separated names)
  • Topic

Supported date formats include:

  • 2026-04-07
  • 7/4/2026, 04/07/2026, 7-4-2026
  • 7 Apr 2026, April 7, 2026
  • April 7 (current year inferred)

API

  • GET /api/v1/schedule

Response shape:

{
	"schedule": [
		{
			"date": "April 7",
			"leaders": ["Alice", "Bob"],
			"topic": "Romans 8"
		}
	]
}

Docker

Build and run:

docker build -t weekly-calendar .
docker run --rm -p 5000:5000 --env-file .env weekly-calendar

Built images are available at: git.woodburn.au/nathanwoodburn/weekly-calendar:latest

Description
An webapp that allows creating and displaying a weekly calendar. Used for weekly meetings, etc
Readme AGPL-3.0 226 KiB
Languages
CSS 42%
Python 31.2%
HTML 22.1%
Dockerfile 4.7%