| Wk | Virtue | Aquinas Name | Cardinal | Liturgical Context | Connection |
|---|---|---|---|---|---|
| 1 | Foresight | Foresight | Prudence | Advent 1 — "Stay awake, be ready" | Advent opens with the command to watch. Foresight is the virtue of looking ahead, reading the signs, and anticipating what God is bringing. |
| 2 | Preparedness | Caution | Prudence | Advent 2 — John the Baptist: "Prepare the way" | The Baptist's entire mission is preparation. Preparedness (caution) means taking practical steps now for what lies ahead. |
| 3 | Prayer | Prayer | Justice | Advent 3 (Gaudete) — "Rejoice always, pray without ceasing" | Gaudete Sunday calls us to rejoice — and the means is prayer. Paul's command in 1 Thessalonians 5:17 makes prayer the virtue of this joyful week. |
| 4 | Humility | Humility | Temperance | Advent 4 — The Annunciation to Mary | Mary's fiat — "Let it be done to me" — is the supreme act of humility. She receives the greatest mission in history without a trace of self-assertion. |
| Wk | Virtue | Aquinas Name | Cardinal | Liturgical Context | Connection |
|---|---|---|---|---|---|
| 5 | Adoration | Adoration | Justice | Christmas / Holy Family — The Nativity | Shepherds fall to their knees. Angels sing. The only fitting response to the Incarnation is adoration — giving God the worship that is His due. |
| 6 | Generosity | Generosity | Justice | Epiphany / Baptism of the Lord — The Magi bring gifts | The Magi travel far and offer their finest treasures. Epiphany reveals that the generous heart recognizes the King. |
| Wk | Virtue | Aquinas Name | Cardinal | Liturgical Context | Connection |
|---|---|---|---|---|---|
| 7 | Teachability | Docility | Prudence | OT Week 2 — "Come and see" / Calling of disciples | The first disciples drop everything to learn from Jesus. Teachability is the willingness to be formed by a master — the starting point of discipleship. |
| 8 | Courage | Fortitude | Fortitude | OT Week 3 — "Follow me" / Early ministry | Leaving nets, tax booths, and families requires fortitude. The call to follow Christ is always a call to be brave. |
| 9 | Truthfulness | Truthfulness | Justice | OT Week 4 — The Beatitudes | The Beatitudes turn the world's values upside down. Only the truthful person can receive these hard sayings without flinching. |
| 10 | Integrity | Honesty/Beauty | Justice | OT Week 5 — "You are salt and light" | Salt that loses its flavor is thrown out. Light hidden under a basket serves no one. Integrity means being the same person inside and out — radiant and uncompromised. |
| 11 | Reasoning | Reason (Prudence) | Prudence | OT Week 6 — "You have heard it said… but I say to you" | Jesus deepens the Mosaic Law through rigorous moral reasoning. He does not abolish but fulfills — showing that reason illuminated by faith goes deeper than the letter. |
| 12 | Forgiveness | Clemency | Temperance | OT Week 7 — "Love your enemies" | The most radical command in the Gospel. Forgiveness is the temperance virtue that restrains our instinct for retaliation and frees us to love beyond merit. |
| 13 | Practical Wisdom | Prudence | Prudence | OT Week 8 — "The wise man built on rock" | The capstone of the Sermon on the Mount. Prudence — practical wisdom — is the master virtue that builds one's life on the solid foundation of Christ's teaching. |
| Wk | Virtue | Aquinas Name | Cardinal | Liturgical Context | Connection |
|---|---|---|---|---|---|
| 14 | Restraint | Abstinence | Temperance | Lent 1 — Ash Wednesday / Temptation in the Desert | Lent begins with fasting. Jesus refuses bread, spectacle, and power. Restraint — the habit of saying no to legitimate goods for a higher purpose — is the gateway to Lenten conversion. |
| 15 | Fasting | Fasting | Temperance | Lent 2 — The Transfiguration | The disciples glimpse glory on Tabor but must descend. Fasting strips away comfort so that we can see clearly — the Transfiguration reveals what fasting prepares us to behold. |
| 16 | Self-Discipline | Temperance | Temperance | Lent 3 — Conversion and repentance | Mid-Lent deepens the call to interior conversion. Self-discipline is the cardinal virtue itself — the ordering of desires so that what we want serves what we love. |
| 17 | Gentlefirmness | Meekness | Temperance | Lent 4 (Laetare) — The Prodigal Son / Healing | The father runs to meet his wayward son — gentle in embrace yet firm in truth. Meekness is not weakness but strength held in check by love. Laetare's joy springs from this tender reunion. |
| 18 | Perseverance | Perseverance | Fortitude | Lent 5 — "Unless a grain of wheat falls and dies…" | Jesus sets his face toward Jerusalem. The grain must fall. Perseverance is the fortitude to keep going when the cost becomes clear and the road narrows. |
| 19 | Sacrifice | Sacrifice | Justice | Holy Week / Palm Sunday — The Passion | Christ lays down His life — the just offering that restores what sin has broken. Sacrifice is the justice virtue of giving to God what is most costly because He is most worthy. |
| Wk | Virtue | Aquinas Name | Cardinal | Liturgical Context | Connection |
|---|---|---|---|---|---|
| 20 | Gratitude | Gratitude | Justice | Easter Sunday — The Resurrection | Alleluia! Death is conquered. Gratitude is the only adequate response — not earning, not striving, but receiving the gift of life with overflowing thanks. |
| 21 | Big-Souledness | Magnanimity | Fortitude | Easter 2 (Divine Mercy Sunday) — Thomas touches the wounds | Thomas moves from doubt to "My Lord and my God!" — the most expansive act of faith in the Gospels. Magnanimity, big-souledness, is the courage to believe greatly. |
| 22 | Understanding | Understanding | Prudence | Easter 3 — The Road to Emmaus | "Were not our hearts burning?" The Emmaus disciples' eyes are opened through Scripture. Understanding — the prudence virtue that grasps the meaning beneath the surface — turns grief into recognition. |
| 23 | Devotion | Devotion | Justice | Easter 4 (Good Shepherd Sunday) — "I am the Good Shepherd" | The shepherd lays down his life for the sheep. Devotion is the prompt willingness to give oneself entirely to God's service — the shepherd's defining quality. |
| 24 | Commitment | Vows | Justice | Easter 5 — "I am the vine, you are the branches" | "Abide in me." To remain on the vine is a choice renewed daily. Commitment is the justice virtue of following through on what we have promised — staying grafted to Christ. |
| 25 | Friendliness | Friendliness | Justice | Easter 6 — "I call you friends" / The New Commandment | "I no longer call you servants but friends." The risen Christ elevates His disciples into friendship. Friendliness is the virtue that makes us approachable, warm, and present to others. |
| 26 | Diligence | Studiousness | Temperance | Ascension / Easter 7 — "Go and make disciples of all nations" | The Great Commission demands industrious effort. Diligence — the measured, sustained application of energy to the work at hand — is how the Church carries out the Ascension mandate. |
| 27 | Creativity | Shrewdness | Prudence | Pentecost — The Holy Spirit descends in fire and wind | The Spirit speaks in every tongue, invents new ways to reach every heart. Creativity — the prudence virtue of finding unexpected solutions — is the Spirit's signature gift. |
| Wk | Virtue | Aquinas Name | Cardinal | Liturgical Context | Connection |
|---|---|---|---|---|---|
| 28 | Memory | Memory | Prudence | Trinity Sunday | The Church recalls the deepest mystery of God's inner life. Memory — the prudence virtue of holding truth present in the mind — is how we treasure what has been revealed. |
| 29 | Generous Giving | Tithing | Justice | Corpus Christi — "This is my Body, given for you" | God holds nothing back. In the Eucharist, He gives His entire self. Generous giving — the habit of offering our substance, not just our surplus — mirrors this total gift. |
| 30 | Worship | Religion | Justice | Sacred Heart of Jesus (mid-June) | The Solemnity of the Sacred Heart invites us into the burning love of Christ's own heart. Worship — the virtue of rendering God the honor due to Him — is our entry into that fire. |
| 31 | Justice | Justice | Justice | Sts. Peter and Paul (June 29) | Peter the rock. Paul the apostle to the nations. Together they establish the Church's order in truth and right relationship. Justice itself — giving each person what is due — is their shared legacy. |
| 32 | Sound Judgment | Sound Judgment | Prudence | St. Thomas the Apostle (July 3) | Thomas demanded evidence. Jesus honored the demand. Sound judgment — the capacity to assess a situation rightly — leads Thomas from skepticism to the greatest confession of faith. |
| 33 | Obedience | Obedience | Justice | St. Benedict (July 11) | "Listen" — the first word of St. Benedict's Rule. Benedictine obedience is not servile compliance but the deep listening that orients the whole person toward God's will. |
| 34 | Respect | Observance | Justice | St. Mary Magdalene (July 22) | "Rabboni!" — Mary Magdalene greets the risen Lord with reverent awe. Respect (observance) is the justice virtue of honoring those who are set above us, beginning with Christ Himself. |
| 35 | Filial Piety | Piety (Filial) | Justice | Sts. Joachim and Anne (July 26) | The grandparents of Jesus. Filial piety — the love and honor owed to parents and ancestors — is embodied in the hidden faithfulness of Joachim and Anne, who prepared the way for Mary. |
| 36 | Good Counsel | Good Counsel | Prudence | OT Week 18 — Summer parables of the kingdom | The kingdom parables (treasure in a field, pearl of great price) invite deliberation: what is worth everything? Good counsel is the virtue of seeking and giving wise advice before acting. |
| 37 | Alertness | Circumspection | Prudence | The Transfiguration (Aug 6) / St. Dominic (Aug 8) | "This is my beloved Son — listen to Him!" Alertness — attentiveness to all the circumstances around us — is what the drowsy disciples on Tabor most needed, and what Dominic exercised in founding the Order of Preachers. |
| 38 | Poise | Shamefacedness | Temperance | The Assumption (August 15) | Mary is taken up body and soul into heaven — the ultimate composure before God. Poise is the temperance virtue of carrying oneself with dignity and grace, neither anxious nor presumptuous. |
| 39 | Self-Control | Continence | Temperance | St. Augustine (August 28) | "Grant me chastity and continence — but not yet." Augustine's long struggle and eventual victory make him the patron of self-control: the power to master disordered desires through grace. |
| 40 | Gracefulness | Modesty of Movement | Temperance | Birth of the Blessed Virgin Mary (September 8) | Mary enters the world with quiet grace. Gracefulness — beauty in movement and manner — reflects the inner order of one who is "full of grace." |
| 41 | Patience | Patience | Fortitude | Exaltation of the Holy Cross (September 14) | The Cross is not just endured but exalted. Patience is the fortitude to bear suffering without being broken — transforming pain into offering. |
| 42 | Sobriety | Sobriety | Temperance | Our Lady of Sorrows (September 15) | Mary stands at the foot of the Cross with clear-eyed grief — no hysteria, no denial. Sobriety is the temperance of a mind that remains unclouded even in the deepest pain. |
| 43 | Strategic Wisdom | Military Prudence | Prudence | Sts. Michael, Gabriel, and Raphael (September 29) | Michael battles the dragon. Gabriel delivers the message. Raphael guides the journey. Strategic wisdom — the capacity to coordinate complex efforts toward victory — is the archangels' gift. |
| 44 | Orderliness | Orderliness | Temperance | St. Thérèse of Lisieux (October 1) | The "Little Way" — doing small things with great love, in order. St. Thérèse found holiness not in grand gestures but in the careful ordering of daily life toward God. |
| 45 | Playing Well | Eutrapelia | Temperance | St. Francis of Assisi (Oct 4) / Our Lady of the Rosary (Oct 7) | Francis preached to birds, danced with Brother Sun, and called death "Sister." Playing well — the virtue of wholesome recreation and joy — is the Franciscan charism: finding delight in God's creation. |
| 46 | Personal Wisdom | Personal Prudence | Prudence | St. Teresa of Ávila (October 15) | Teresa mapped the soul's journey through seven mansions. Personal wisdom — prudence directed at one's own spiritual growth — is the interior knowledge she cultivated and taught. |
| 47 | Equity | Epikeia | Justice | St. Luke the Evangelist (October 18) | Luke, the physician-evangelist, tells the stories of the poor, the outcast, the Samaritan. Equity — the virtue of applying the spirit of the law when the letter falls short — pervades his Gospel. |
| 48 | Fair Exchange | Commutative Justice | Justice | Sts. Simon and Jude (October 28) | The "hidden apostles" gave their lives for the Gospel and received the crown. Fair exchange — the justice of equal giving and receiving — is fulfilled in martyrdom: life given, eternal life received. |
| 49 | Modesty | Modesty of Dress | Temperance | All Saints (November 1) | The saints include kings and beggars, doctors and peasants — but all are clothed in white. Modesty, the virtue of presenting oneself appropriately, reminds us that holiness is the only garment that matters. |
| 50 | Chasteness | Chastity | Temperance | All Souls / OT Week 32 — Parable of the wise and foolish virgins | The wise virgins kept their lamps burning. Chasteness — purity of heart and body — is the oil that keeps the flame alive as we await the Bridegroom. |
| 51 | Just Correction | Vindication | Justice | OT Week 33 — Parable of the talents / End-time accountability | The master returns and settles accounts. Just correction — the virtue of righting wrongs and holding others accountable with fairness — is the theme of these eschatological parables. |
| 52 | Fair Distribution | Distributive Justice | Justice | Christ the King — "Whatever you did for the least of these…" | The final Sunday of the liturgical year. Christ the King judges the nations: did you feed the hungry, clothe the naked, visit the prisoner? Fair distribution — giving to each according to their need — is the measure of His kingdom. |
The Catholic liturgical year does not align with the calendar year. It begins on the First Sunday of Advent (late November) and ends the Saturday before the next Advent 1. Within that year, the length of Ordinary Time varies because Easter moves. Developers need a reliable way to map any calendar date → virtue week (1–52).
| Phase | Virtue Weeks | Fixed? | Notes |
|---|---|---|---|
| Advent | 1–4 | Fixed (4 wks) | Advent Sunday 1 → Week 1, etc. |
| Christmas | 5–6 | Fixed (2 wks) | Christmas octave → Week 5, Epiphany/Baptism → Week 6 |
| Ordinary Time I | 7–13 | Flex (5–9 wks) | Between Baptism of the Lord and Ash Wednesday |
| Lent | 14–19 | Fixed (6 wks) | Ash Wednesday week → Week 14, … Holy Week → Week 19 |
| Easter | 20–27 | Fixed (8 wks) | Easter → Week 20, … Pentecost → Week 27 |
| Ordinary Time II | 28–52 | Flex (24–28 wks) | Day after Pentecost through Saturday before next Advent 1 |
Ordinary Time I has 7 virtue-week slots (weeks 7–13) but the actual number of calendar weeks varies from ~5 to ~9.
Ordinary Time II has 25 virtue-week slots (weeks 28–52) but the actual number of calendar weeks varies from ~24 to ~28.
Rule: Distribute virtue weeks proportionally across the actual calendar weeks in each flex zone:
virtue_week = start_virtue_week + floor(days_elapsed / total_phase_days * num_virtue_slots)
function getVirtueWeek(date):
1. Find the current liturgical year:
- If date >= Advent1(current_calendar_year), liturgical year starts this year
- Else, liturgical year started last year's Advent 1
2. Calculate key dates for this liturgical year:
- advent1 = First Sunday of Advent
- christmas = Dec 25
- baptism = Sunday after Epiphany (see formula below)
- ashWednesday = Easter - 46 days
- easter = Computus algorithm
- pentecost = Easter + 49 days
- nextAdvent1 = First Sunday of Advent next year
3. Determine phase and virtue week:
IF date is in [advent1, Dec 24]:
virtue_week = floor((date - advent1) / 7) + 1 // 1-4
ELSE IF date is in [Dec 25, baptism - 1]:
virtue_week = 5 + floor((date - Dec 25) / 7) // 5-6
ELSE IF date is in [baptism, ashWednesday - 1]: // FLEX ZONE
virtue_week = 7 + floor(days_elapsed / total * 7)
clamp(7, 13)
ELSE IF date is in [ashWednesday, easter - 1]:
virtue_week = 14 + floor((date - ashWed) / 7) // 14-19
ELSE IF date is in [easter, pentecost + 6]:
virtue_week = 20 + floor((date - easter) / 7) // 20-27
ELSE IF date is in [pentecost + 7, nextAdvent1 - 1]: // FLEX ZONE
virtue_week = 28 + floor(days_elapsed / total * 25)
clamp(28, 52)
Advent 1 — Sunday nearest to November 30 (always Nov 27 – Dec 3)
Easter — Anonymous Gregorian algorithm (Meeus/Jones/Butcher). Always March 22 – April 25.
Ash Wednesday — Easter minus 46 days
Pentecost — Easter plus 49 days (7 Sundays after Easter)
Baptism of the Lord (US) — Epiphany is Sunday between Jan 2–8. Baptism is the following Sunday (or Monday if Epiphany is Jan 7/8).
Lectionary Cycle — Based on the year Advent 1 falls in: mod 3 = 0 → Year C (Luke), mod 3 = 1 → Year A (Matthew), mod 3 = 2 → Year B (Mark)
Complete implementation ready for use in the TruePresence app. Includes the Computus algorithm for Easter, Advent 1 calculation, Baptism of the Lord (US), and flex-zone proportional mapping.
// === Date Helpers ===
function getEasterDate(year) {
// Anonymous Gregorian algorithm (Meeus/Jones/Butcher)
const a = year % 19;
const b = Math.floor(year / 100);
const c = year % 100;
const d = Math.floor(b / 4);
const e = b % 4;
const f = Math.floor((b + 8) / 25);
const g = Math.floor((b - f + 1) / 3);
const h = (19 * a + b - d - g + 15) % 30;
const i = Math.floor(c / 4);
const k = c % 4;
const l = (32 + 2 * e + 2 * i - h - k) % 7;
const m = Math.floor((a + 11 * h + 22 * l) / 451);
const month = Math.floor((h + l - 7 * m + 114) / 31);
const day = ((h + l - 7 * m + 114) % 31) + 1;
return new Date(year, month - 1, day);
}
function getAdvent1(year) {
const nov30 = new Date(year, 10, 30);
const dow = nov30.getDay();
if (dow === 0) return nov30;
if (dow <= 3) return new Date(year, 10, 30 - dow);
return new Date(year, 10, 30 + (7 - dow));
}
function getBaptismOfLord(year) {
const jan2 = new Date(year, 0, 2);
const dow = jan2.getDay();
const epiphany = dow === 0 ? jan2 : new Date(year, 0, 2 + (7 - dow));
const epDay = epiphany.getDate();
if (epDay >= 7) return new Date(year, 0, epDay + 1);
return new Date(year, 0, epDay + 7);
}
function daysBetween(a, b) {
return Math.floor((b - a) / (1000 * 60 * 60 * 24));
}
function clamp(val, min, max) {
return Math.max(min, Math.min(max, val));
}
// === Main Function ===
function getVirtueWeek(date) {
const d = new Date(date.getFullYear(), date.getMonth(), date.getDate());
const advent1ThisYear = getAdvent1(d.getFullYear());
let liturgicalYearStart = d >= advent1ThisYear
? d.getFullYear() : d.getFullYear() - 1;
const advent1 = getAdvent1(liturgicalYearStart);
const christmas = new Date(liturgicalYearStart, 11, 25);
const easterYear = liturgicalYearStart + 1;
const baptism = getBaptismOfLord(easterYear);
const easter = getEasterDate(easterYear);
const ashWed = new Date(easter.getTime() - 46 * 86400000);
const pentecost = new Date(easter.getTime() + 49 * 86400000);
const nextAdvent1 = getAdvent1(liturgicalYearStart + 1);
if (d >= nextAdvent1) return 1;
// ADVENT (1-4)
if (d >= advent1 && d < christmas)
return clamp(Math.floor(daysBetween(advent1, d) / 7) + 1, 1, 4);
// CHRISTMAS (5-6)
if (d >= christmas && d < baptism)
return clamp(5 + Math.floor(daysBetween(christmas, d) / 7), 5, 6);
// ORDINARY TIME I (7-13) — flex
if (d >= baptism && d < ashWed) {
const total = daysBetween(baptism, ashWed);
const elapsed = daysBetween(baptism, d);
return clamp(7 + Math.floor((elapsed / total) * 7), 7, 13);
}
// LENT (14-19)
if (d >= ashWed && d < easter)
return clamp(14 + Math.floor(daysBetween(ashWed, d) / 7), 14, 19);
// EASTER (20-27)
const pentEnd = new Date(pentecost.getTime() + 7 * 86400000);
if (d >= easter && d < pentEnd)
return clamp(20 + Math.floor(daysBetween(easter, d) / 7), 20, 27);
// ORDINARY TIME II (28-52) — flex
if (d >= pentEnd && d < nextAdvent1) {
const total = daysBetween(pentEnd, nextAdvent1);
const elapsed = daysBetween(pentEnd, d);
return clamp(28 + Math.floor((elapsed / total) * 25), 28, 52);
}
return 1;
}
| Liturgical Year | Advent 1 | Baptism | Ash Wed | Easter | Pentecost | Next Advent 1 | Cycle |
|---|---|---|---|---|---|---|---|
| 2025–2026 | 2025-11-30 | 2026-01-11 | 2026-02-18 | 2026-04-05 | 2026-05-24 | 2026-11-29 | Year A |
| 2026–2027 | 2026-11-29 | 2027-01-10 | 2027-02-10 | 2027-03-28 | 2027-05-16 | 2027-11-28 | Year B |
| 2027–2028 | 2027-11-28 | 2028-01-09 | 2028-03-01 | 2028-04-16 | 2028-06-04 | 2028-12-03 | Year C |
| 2028–2029 | 2028-12-03 | 2029-01-08 | 2029-02-14 | 2029-04-01 | 2029-05-20 | 2029-12-02 | Year A |
| 2029–2030 | 2029-12-02 | 2030-01-13 | 2030-03-06 | 2030-04-21 | 2030-06-09 | 2030-12-01 | Year B |
| 2030–2031 | 2030-12-01 | 2031-01-12 | 2031-02-26 | 2031-04-13 | 2031-06-01 | 2031-11-30 | Year C |
| 2031–2032 | 2031-11-30 | 2032-01-11 | 2032-02-11 | 2032-03-28 | 2032-05-16 | 2032-11-28 | Year A |
| 2032–2033 | 2032-11-28 | 2033-01-09 | 2033-03-02 | 2033-04-17 | 2033-06-05 | 2033-11-27 | Year B |
| 2033–2034 | 2033-11-27 | 2034-01-09 | 2034-02-22 | 2034-04-09 | 2034-05-28 | 2034-12-03 | Year C |
| 2034–2035 | 2034-12-03 | 2035-01-08 | 2035-02-07 | 2035-03-25 | 2035-05-13 | 2035-12-02 | Year A |
| 2035–2036 | 2035-12-02 | 2036-01-13 | 2036-02-27 | 2036-04-13 | 2036-06-01 | 2036-11-30 | Year B |
| Date Range | Phase | Virtue Weeks |
|---|---|---|
| 2025-11-30 – Dec 24 | Advent | 1–4 |
| Dec 25 – 2026-01-11 | Christmas | 5–6 |
| 2026-01-11 – day before 2026-02-18 | Ordinary Time I | 7–13 |
| 2026-02-18 – day before 2026-04-05 | Lent | 14–19 |
| 2026-04-05 – 2026-05-24 +6d | Easter | 20–27 |
| After Pentecost week – 2026-11-29 | Ordinary Time II | 28–52 |
| Date Range | Phase | Virtue Weeks |
|---|---|---|
| 2026-11-29 – Dec 24 | Advent | 1–4 |
| Dec 25 – 2027-01-10 | Christmas | 5–6 |
| 2027-01-10 – day before 2027-02-10 | Ordinary Time I | 7–13 |
| 2027-02-10 – day before 2027-03-28 | Lent | 14–19 |
| 2027-03-28 – 2027-05-16 +6d | Easter | 20–27 |
| After Pentecost week – 2027-11-28 | Ordinary Time II | 28–52 |
| Date Range | Phase | Virtue Weeks |
|---|---|---|
| 2027-11-28 – Dec 24 | Advent | 1–4 |
| Dec 25 – 2028-01-09 | Christmas | 5–6 |
| 2028-01-09 – day before 2028-03-01 | Ordinary Time I | 7–13 |
| 2028-03-01 – day before 2028-04-16 | Lent | 14–19 |
| 2028-04-16 – 2028-06-04 +6d | Easter | 20–27 |
| After Pentecost week – 2028-12-03 | Ordinary Time II | 28–52 |
| Date Range | Phase | Virtue Weeks |
|---|---|---|
| 2028-12-03 – Dec 24 | Advent | 1–4 |
| Dec 25 – 2029-01-08 | Christmas | 5–6 |
| 2029-01-08 – day before 2029-02-14 | Ordinary Time I | 7–13 |
| 2029-02-14 – day before 2029-04-01 | Lent | 14–19 |
| 2029-04-01 – 2029-05-20 +6d | Easter | 20–27 |
| After Pentecost week – 2029-12-02 | Ordinary Time II | 28–52 |
| Virtue | Reason |
|---|---|
| Exceptional Judgment | Substantially overlaps with Sound Judgment |
| Household Wisdom | Too domain-specific for a universal weekly calendar |
| Civic Wisdom | Too domain-specific for a universal weekly calendar |
| Magnificence | Substantially overlaps with Big-Souledness and Generosity |
| Consecrated Purity | Specific to the vocation of religious life |
Gap between liturgical years: There can be 0–6 days between the last Saturday of OT II and the next Advent 1. During this gap, continue showing Week 52 (Fair Distribution / Christ the King) until the new Advent 1 begins.
Ordinary Time flex zones: In years with an early Easter (e.g., March 28), OT I is short (~5 weeks) and OT II is long (~28 weeks). In years with a late Easter (e.g., April 21), OT I is long (~9 weeks) and OT II is short (~24 weeks). The proportional mapping algorithm handles both cases — every virtue week still appears, just with slightly different durations.
Liturgical year spans two calendar years: The liturgical year always begins in November/December and ends in November of the next. Easter always falls in the second calendar year. The getVirtueWeek() function handles this automatically.