learning

package module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 1, 2026 License: GPL-2.0 Imports: 11 Imported by: 0

README

hebcal/learning

Build Status Go Report Card GoDoc

Daily learning schedules for the Hebcal Jewish calendar, implemented in Go.

This module supplies daily Torah/Talmud learning schedules and registers them with the daily learning registry in github.com/hebcal/hebcal-go. It is the Go counterpart of the TypeScript @hebcal/learning package, and mirrors the relationship between @hebcal/core and @hebcal/learning: hebcal-go contains no schedules itself, and this module plugs them in.

Schedules

  • dafyomi — Daf Yomi, a daily page of the Babylonian Talmud (Bavli).
  • mishnayomi — Mishna Yomi, two Mishnayot per day (~6-year cycle).
  • nachyomi — Nach Yomi, a daily chapter of Nevi'im (Prophets) and Ketuvim (Writings).
  • yerushalmi — Yerushalmi Yomi, a daily page of the Jerusalem Talmud, in both the Vilna and Schottenstein editions.
  • nine29 — 929 (Tanakh B'Yachad), a daily chapter of the Hebrew Bible, Sun–Thu, covering all 929 chapters in ~3.5 years.
  • rambam — Daily Rambam (Mishneh Torah), in both the 1-chapter-a-day and 3-chapters-a-day cycles.
  • dafweekly — Daf-a-Week, the same page of the Babylonian Talmud studied for an entire week (~52-year cycle).
  • perekyomi — Perek Yomi, one chapter of the Mishnah per day (~17-month cycle).
  • psalms — Daily Psalms (Tehillim) in the traditional 30-day cycle, completing the book of Psalms each Hebrew month.
  • pirkeiavot — Pirkei Avot ("Ethics of the Fathers"), one chapter on each Shabbat of the summer between Pesach and Rosh Hashana.
  • tanakhyomi — Tanakh Yomi, completing the Tanakh annually by the Masoretic division into sedarim (skips Shabbat and major festivals).

Usage

Each schedule registers itself with the dailylearning registry in hebcal-go via a package init function. Import the top-level learning package for its side effects to enable every schedule:

import (
	"github.com/hebcal/hebcal-go/hebcal"
	_ "github.com/hebcal/learning" // registers all learning schedules
)

opts := &hebcal.CalOptions{
	Start:         hdate.New(5783, hdate.Cheshvan, 18),
	End:           hdate.New(5783, hdate.Cheshvan, 23),
	DailyLearning: []string{"dafYomi", "rambam3"},
}
events, err := hebcal.HebrewCalendar(opts)

To register only a subset of schedules, blank-import the individual sub-packages instead:

import _ "github.com/hebcal/learning/dafyomi"

The schedules can also be used directly without going through the calendar:

daf, _ := dafyomi.New(hdate.FromGregorian(1995, time.December, 17))
fmt.Println(daf) // Avodah Zarah 68

Registered calendar names

The schedules register the following case-insensitive names with the dailylearning registry, matching the names used by @hebcal/learning:

  • dafYomi
  • mishnaYomi
  • nachYomi
  • yerushalmi-vilna
  • yerushalmi-schottenstein
  • 929
  • rambam1
  • rambam3
  • dafWeekly
  • dafWeeklySunday
  • perekYomi
  • psalms
  • pirkeiAvotSummer
  • tanakhYomi

Roadmap

The goal is to eventually port all of the daily learning schedules from the TypeScript @hebcal/learning package. Still to port: Arukh HaShulchan Yomi, Sefer HaMitzvot, Chofetz Chaim, Shemirat HaLashon, Kitzur Shulchan Aruch, Dirshu Amud Yomi, etc.

License

GPL-2.0-or-later. See LICENSE.

Documentation

Overview

Package learning registers all of Hebcal's daily learning schedules (Daf Yomi, Mishna Yomi, Nach Yomi, Yerushalmi Yomi, 929, Daily Rambam, Daf-a-Week, Perek Yomi, Daily Psalms, Pirkei Avot, and Tanakh Yomi) with the dailylearning registry in github.com/hebcal/hebcal-go.

Import this package for its side effects to make every schedule available to hebcal-go's calendar generation:

import _ "github.com/hebcal/learning"

To register only a subset of schedules, import the individual sub-packages (e.g. github.com/hebcal/learning/dafyomi) instead.

This mirrors the relationship between the @hebcal/core and @hebcal/learning TypeScript packages.

Directories

Path Synopsis
Hebcal's dafweekly package calculates the Daf-a-Week schedule, a slower regimen of learning the Babylonian Talmud in which the same page (daf) is studied for an entire week.
Hebcal's dafweekly package calculates the Daf-a-Week schedule, a slower regimen of learning the Babylonian Talmud in which the same page (daf) is studied for an entire week.
Hebcal's dafyomi package calculates the Daf Yomi, a daily regimen of learning the Babylonian Talmud.
Hebcal's dafyomi package calculates the Daf Yomi, a daily regimen of learning the Babylonian Talmud.
Hebcal's mishnayomi package calculates the Mishna Yomi, a program of daily learning in which participants study two Mishnayot each day in order to finish the entire Mishnah in ~6 years.
Hebcal's mishnayomi package calculates the Mishna Yomi, a program of daily learning in which participants study two Mishnayot each day in order to finish the entire Mishnah in ~6 years.
Hebcal's nachyomi package calculates the Nach Yomi, a daily regimen of learning the books of Nevi'im (Prophets) and Ketuvim (Writings).
Hebcal's nachyomi package calculates the Nach Yomi, a daily regimen of learning the books of Nevi'im (Prophets) and Ketuvim (Writings).
Hebcal's nine29 package calculates the 929 (Tanakh B'Yachad) daily learning schedule: one chapter of the Hebrew Bible per day, Sunday through Thursday (skipping Friday and Saturday), covering all 929 chapters in about 3.5 years.
Hebcal's nine29 package calculates the 929 (Tanakh B'Yachad) daily learning schedule: one chapter of the Hebrew Bible per day, Sunday through Thursday (skipping Friday and Saturday), covering all 929 chapters in about 3.5 years.
Hebcal's perekyomi package calculates the Perek Yomi, a daily regimen of learning one chapter (perek) of the Mishnah each day, completing the entire Mishnah in 525 days (~17 months).
Hebcal's perekyomi package calculates the Perek Yomi, a daily regimen of learning one chapter (perek) of the Mishnah each day, completing the entire Mishnah in 525 days (~17 months).
Hebcal's pirkeiavot package calculates the Pirkei Avot ("Ethics of the Fathers") summer schedule: one chapter studied on each Shabbat between Pesach and Rosh Hashana, the six-chapter cycle repeating with doubled chapters at the end to fill the season.
Hebcal's pirkeiavot package calculates the Pirkei Avot ("Ethics of the Fathers") summer schedule: one chapter studied on each Shabbat between Pesach and Rosh Hashana, the six-chapter cycle repeating with doubled chapters at the end to fill the season.
Hebcal's psalms package calculates the Daily Psalms (Tehillim) reading in the traditional 30-day cycle, indexed by Hebrew day of the month so that the entire book of Psalms is completed each Hebrew month.
Hebcal's psalms package calculates the Daily Psalms (Tehillim) reading in the traditional 30-day cycle, indexed by Hebrew day of the month so that the entire book of Psalms is completed each Hebrew month.
Hebcal's rambam package calculates the Daily Rambam (Mishneh Torah) learning schedule in both the 1-chapter-a-day and 3-chapters-a-day cycles instituted by the Lubavitcher Rebbe in 1984.
Hebcal's rambam package calculates the Daily Rambam (Mishneh Torah) learning schedule in both the 1-chapter-a-day and 3-chapters-a-day cycles instituted by the Lubavitcher Rebbe in 1984.
Hebcal's tanakhyomi package calculates Tanakh Yomi, a schedule for completing the Tanakh annually according to the ancient Masoretic division into sedarim.
Hebcal's tanakhyomi package calculates Tanakh Yomi, a schedule for completing the Tanakh annually according to the ancient Masoretic division into sedarim.
Hebcal's yerushalmi package calculates the Yerushalmi Yomi, a daily regimen of learning the Jerusalem Talmud.
Hebcal's yerushalmi package calculates the Yerushalmi Yomi, a daily regimen of learning the Jerusalem Talmud.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL