# man > Date::Manip::Holidays(3pm)

---
type: CommandReference
command: Date::Manip::Holidays
mode: perldoc
section: 3pm
source: perldoc
---

## Quick Reference

- `Jan 1` — Holiday defined as a date without year (every year)
- `1*1:0:1:0:0:0*DWD` — Recurrence for New Year's Day observed on nearest business day
- `May 5, 2000` — One-time holiday defined as full date
- `3rd Sunday in June` — Relative date without year
- `1*12:0:25:0:0:0*NWD` — Christmas on the next business day on or after Dec 25
- `Date;Date` — Event spanning two dates
- `Recur;Delta` — Recurring event with duration
- `YMD` — All-day event on a specific date

## Name

[Date::Manip::Holidays](https://metacpan.org/pod/Date::Manip::Holidays) — describes holidays and events

## Synopsis

This describes the Holidays and Events sections of the config file, and how they are used. Holidays and events are specific days that are named. Holidays are used in business mode calculations; events are not.

## Options

### Holiday definitions

Each line in the holiday section: `STRING = HOLIDAY` where HOLIDAY is the name (or blank for unnamed, treated as holiday). STRING can be one of:

- **Full date** — Specific holiday occurring only once. Example: `May 5, 2000`. Use only as last resort; may misalign with yearly holidays.
- **Date without year** — Holiday occurring every year on the same day. Example: `Jan 1`, `Jul 4th`, `fourth Thu in Nov`. Must be parseable by adding year to end.
- **Recurrence** — Fully specified recurrence. Example: `1*0:0:0:0:0:0*EASTER` for Easter. For business calculations, use modifiers like `*DWD` (nearest working day). Example: `1*12:0:25:0:0:0*DWD` for Christmas.

**Notes:**
- Order of definitions is preserved. Holidays take effect as soon as parsed.
- Multiple holidays can occur on the same day.
- Complex holiday definitions (e.g., US Federal Reserve) can use multiple lines with the same name and different STRINGs; the first matching one is used.
- Recurrences can push a holiday to the previous year (e.g., New Year's observed on previous year's Friday).

### Event definitions

Each line in the events section: `EVENT = NAME`. EVENT can be one of:

- **Date** — A full date/time; event starts at that time and lasts 1 hour.
- **YMD** — A date (year-month-day); event lasts all day.
- **YM** — A date without year; event lasts all day.
- **Recur** — A recurrence; event starts at each occurrence and lasts 1 hour.
- **Date ; Date** — Event spans from first date to second date inclusive.
- **YMD ; YMD** — Event spans from start of first date to end of second.
- **YM ; YM** — Event spans from start of first date to end of second (same year assumed).
- **Date ; Delta** — Event starts at date and lasts for a delta.
- **Recur ; Delta** — Event starts at each recurrence occurrence and lasts for a delta.

**Notes:**
- Events are exactly 1 day long for holidays; events can be any time and duration.
- Events are ignored in business mode calculations.
- Duration longer than 1 year is not supported (no check performed).

## Examples

### Holiday definitions

shell
# Full date (one-time)
May 5, 2000 = A one-time-only holiday

# Date without year (every year)
Jan 1 = New Year's Day
Jul 4th = Independence Day
fourth Thu in Nov = Thanksgiving

# Recurrence
1*0:0:0:0:0:0*EASTER = Easter
1*11:0:11:0:0:0*DWD = Veteran's Day
1*11:4:4:0:0:0 = Thanksgiving
1*11:4:4:0:0:0*FD1 = Day after Thanksgiving

# Complex (US Federal Reserve style)
# Saturday
1*1:0:1:0:0:0*NBD,BD1,IBD,FD1 = New Year's Day
# Sunday (observed Monday)
1*1:0:1:0:0:0*NBD,BD1,NBD,FD2 = New Year's Day
# M-F
1*1:0:1:0:0:0*IBD = New Year's Day
### Event definitions

shell
# All-day event on a specific date
YMD = My Birthday

# Recurring event with duration
Recur;Delta = Event Name
## See Also

- [Date::Manip](https://metacpan.org/pod/Date::Manip) — main module documentation
- [Date::Manip::Date](https://metacpan.org/pod/Date::Manip::Date) — date parsing methods
- [Date::Manip::Problems](https://metacpan.org/pod/Date::Manip::Problems) — bug reporting

## Exit Codes

Not documented.