Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Holidays Laravel Package

spatie/holidays

Calculate public holidays by country (ISO alpha-2) with a simple API. Get an array of Holiday objects including localized name, CarbonImmutable date, and type (e.g., national). Supports multiple countries and is easy to extend by adding new country definitions.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature Development:

    • Expanded Geographic Coverage: Adds Ethiopian holidays (including localized names), enabling support for products serving African markets (e.g., logistics platforms, HR tools, or travel apps targeting Ethiopia). This aligns with global expansion roadmaps or compliance needs for region-specific operations.
    • Non-Gregorian Calendar Support: Reinforces the package’s ability to handle diverse calendars (now including Ethiopian), critical for products with multicultural audiences (e.g., international SaaS, remittance services, or religious event planners).
    • Localization Depth: Strengthens localized holiday names for underrepresented regions, improving UX for apps where cultural context matters (e.g., "Enkutatash" for Ethiopian New Year in notifications or labels).
  • Roadmap Prioritization:

    • Build vs. Buy: Further solidifies the case for adoption over custom development, especially for teams targeting Africa or non-Western markets. The addition of Ethiopian holidays reduces the need for bespoke solutions for unique calendars.
    • Inclusivity: Supports diversity-focused initiatives (e.g., "We now support X countries/calendars") as a differentiator in competitive markets (e.g., HR tech or global e-commerce).
    • Integration Points: Enhances compatibility with packages like spatie/laravel-translatable for multi-language holiday displays or spatie/calendar for Ethiopian-specific event rendering.
  • Use Cases:

    • Logistics/Supply Chain: Adjust delivery routes or warehouse schedules for Ethiopian holidays (e.g., "Enkutatash" closure).
    • Finance/Remitance: Flag Ethiopian holidays for payment processing delays or market closures.
    • Religious/Event Planning: Power apps for Ethiopian Orthodox holidays (e.g., Timket) or cultural event calendars.
    • Academic/HR: Align school closures or work schedules with Ethiopian academic/religious holidays.

When to Consider This Package

  • Adopt When:

    • Your product requires holiday support for Ethiopia or non-Gregorian calendars (e.g., Ethiopian, Islamic, or Chinese).
    • You’re expanding into African markets or need compliance for Ethiopian-specific regulations (e.g., banking, labor laws).
    • Your users need localized holiday names in Ethiopian Amharic for UI/UX (e.g., notifications, labels).
    • You want to avoid maintaining custom holiday logic for unique calendars (e.g., Ethiopian’s 13-month year or holiday dates tied to lunar cycles).
    • Your stack includes Laravel/PHP and you prioritize community-driven, low-maintenance solutions.
  • Look Elsewhere If:

    • You only need Gregorian-based holidays for Western countries (this package’s core value remains for global use, but the marginal gain may not justify adoption).
    • Your holidays are entirely user-defined (e.g., personal calendars; this package is for public/regional holidays).
    • You require holiday analysis (e.g., "Trends in holiday spending"; this package focuses on detection).
    • Your team lacks PHP/Laravel expertise to integrate the package efficiently.
    • You need historical Ethiopian holiday data (this release adds forward-looking data; pair with a database for past years).

How to Pitch It (Stakeholders)

For Executives:

*"This 2.1.0 update extends our holiday logic to Ethiopia, unlocking new opportunities:

  • Market Expansion: Serve Ethiopian users with accurate, localized holidays (e.g., 'Enkutatash' for Ethiopian New Year) in apps like payroll, logistics, or travel—without custom development.
  • Compliance & UX: Automate Ethiopian-specific business rules (e.g., 'Disable bookings on Ethiopian holidays') and display holidays in Amharic, improving inclusivity.
  • Cost Savings: Eliminates the need to build/maintain Ethiopian holiday logic in-house. Free (MIT license) and maintained by the community (396+ stars).
  • Differentiation: Stand out in competitive markets (e.g., global HR or remittance) by supporting non-Gregorian calendars—a gap many competitors overlook.

Example Use Cases:

  • A logistics platform could auto-block deliveries during Ethiopian holidays.
  • A SaaS could localize notifications (e.g., 'Happy Enkutatash!').
  • A remittance service could flag payment delays on Ethiopian bank holidays.

ROI: Minimal lift for high-impact features, especially if targeting Africa or multicultural audiences. Alternatives (custom dev) would require ongoing updates for Ethiopian-specific rules (e.g., leap years in the Ethiopian calendar)."*


For Engineering:

*"Key Additions in 2.1.0:

  • Ethiopian Holidays: Now supports Ethiopia’s unique calendar (13 months, holidays tied to lunar cycles) and localized names (e.g., Enkutatash).
  • Non-Gregorian Ready: Reinforces the package’s ability to handle diverse calendars, reducing the need for custom logic.

How to Leverage This:

  1. Ethiopian-Specific Features:
    // Check if a date is an Ethiopian holiday
    $isHoliday = Holidays::for('et')->isHoliday($date);
    
    // Get Ethiopian holidays for a year (auto-handles leap years)
    $holidays = Holidays::for('et', '2026')->get();
    
  2. Localization:
    • Display holidays in Amharic using the locale() method:
      $holiday->name('et'); // Returns "እንቁጣጣሽ" (Enkutatash)
      
  3. Integration Tips:
    • Frontend: Pair with spatie/laravel-calendar to render Ethiopian holidays in date pickers.
    • Backend: Use in validation (e.g., if (Holidays::for('et')->isHoliday($date)) { rejectOrder(); }).
    • Caching: Cache Ethiopian holidays separately (their calendar’s leap years differ from Gregorian).

Trade-offs:

  • Performance: Ethiopian holiday calculations are slightly heavier (lunar-based), but negligible for most use cases.
  • Coverage: Still no historical data (cache past years if needed).
  • Edge Cases: Some Ethiopian holidays are observed differently by regions (e.g., Addis Ababa vs. rural areas); this package uses standard definitions.

Recommendation:

  • Adopt for Ethiopian support: Replace any custom Ethiopian holiday logic with this package.
  • Avoid for dynamic user calendars: Still not suited for personal/company-specific holidays.
  • Extend further: Contribute new calendars (e.g., Islamic, Hebrew) via PRs if needed.

Example Workflow:

// Ethiopian payroll system
$ethiopianHolidays = Holidays::for('et')->get();
$validWorkdays = collect($dates)->reject(fn ($date) =>
    $ethiopianHolidays->contains(fn ($h) => $h->date->eq($date))
);
```"*

---
**Key Selling Points**:
- **For Execs**: Unlocks African markets and non-Gregorian support with minimal effort; highlights inclusivity and compliance.
- **For Engineers**: Zero maintenance for Ethiopian holidays, seamless Laravel integration, and extensibility for other calendars.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope
anil/file-picker
broqit/fields-ai