976-tuna / custom-calendar
Custom 13-month, 28-day calendar package
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.4
- laravel/framework: ^12.0
- livewire/livewire: ^3.0
- dev-main
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.9
- v1.4.8
- v1.4.7
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.9
- v1.3.8
- v1.3.7
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.0.7.8
- v1.0.7.7
- v1.0.7.6
- v1.0.7.5
- v1.0.7.4
- v1.0.7.3
- v1.0.7.2
- v1.0.7.1
- v1.0.7
- v1.0.6.9
- v1.0.6.8
- v1.0.6.7
- v1.0.6.6
- v1.0.6.5
- v1.0.6.4
- v1.0.6.3
- v1.0.6.2
- v1.0.6.1
- v1.0.6
- v1.0.5
- v1.0.4.1
- v1.0.4
- v1.0.3.9
- v1.0.3.8
- v1.0.3.7
- v1.0.3.6
- v1.0.3.5
- v1.0.3.4
- v1.0.3.3
- v1.0.3.2
- v1.0.3.1
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2025-05-08 18:54:52 UTC
README
A calendar for humans
A standalone Laravel package for integrating a custom 13-month, 28-day calendar. This package overlays the normal Gregorian calendar, incorporates solunar and tide data, and includes moon phases. It uses NOAA data to enrich the calendar with real-world astronomical information.
Features
- 13-month, 28-day calendar system: Each month has 28 days, and the year consists of 13 months.
- 1 day of rest: Each year has one day of rest, usually placed between months.
- First day of the year is the Vernal Equinox.
- Solunar data: The calendar includes solunar information, which is crucial for determining optimal fishing and hunting times.
- Tide Data: Tidal information is included to show high and low tides for each day.
- Moon Phases: The calendar shows moon phase information, including new moon, full moon, etc.
- Normal Calendar Overlay: Allows you to overlay the custom calendar on the regular Gregorian calendar for comparison.
Installation
1. Via Composer
Run the following command to install the package via Composer:
composer require 976-tuna/custom-calendar
Custom 13-Month Calendar (Laravel Package)
A standalone Laravel package for integrating a custom 13-month, 28-day calendar. This package overlays the Gregorian calendar, incorporates solunar and tide data, and includes moon phases. It also uses NOAA data to enrich the calendar with real-world astronomical information.
🌟 Features
- ✅ 13-month, 28-day calendar system – Each month has 28 days, and the year consists of 13 months.
- ✅ 1 day of rest – Each year has one extra day of rest, usually placed between months.
- ✅ First day of the year is the Vernal Equinox – The calendar starts with the March Equinox.
- ✅ Solunar data – Includes best fishing and hunting times.
- ✅ Tide data – Shows high and low tide levels & times (fetched from NOAA API).
- ✅ Moon Phases – Displays New Moon, Full Moon, First Quarter, etc.
- ✅ NOAA integration – Fetches water temperature, wind speed, and sunrise/sunset times.
- ✅ Normal Calendar Overlay – Allows overlaying with the Gregorian calendar.
📀 Installation
1. Install via Composer
composer require 976-tuna/custom-calendar
2. Import Solar Events Data
php artisan migrate php artisan calendar-data:import
This will import solar events (equinoxes and solstices) into the database.
3. Fetch & Store NOAA Stations
php artisan noaa:fetch-stations php artisan fetch:noaa-current-stations php artisan match:noaa-currents
4. Fetch & Store NOAA Data (Tides, Wind, Moon Phases)
php artisan noaa:fetch {days=7}
This fetches NOAA tide and weather data for the next 7 days (or a custom number of days).
This retrieves **all NOAA stations** and their **available data products**.
---
## **📊 Viewing Stored Data & Statistics**
### **5. View Last Imported Solar Events**
```sh
php artisan tinker
>>> \App\Models\SolarEvent::latest()->first();
6. View Last Fetched NOAA Tide Data
php artisan tinker >>> \App\Models\NOAATideForecast::latest()->first();
7. View NOAA Stations
php artisan tinker >>> \App\Models\NOAAStation::all();
📅 Usage in Blade Template
You can load the calendar in a Blade view like this:
@php $calendarData = \Tuna976\CustomCalendar\CustomCalendar::generateCalendar(); @endphp @include('custom-calendar::calendar', ['calendarData' => $calendarData])
🚀 Next Steps
- Improve mobile responsiveness for small screens.
- Optimize NOAA data fetching to reduce API requests.
- Add dynamic user selection for NOAA stations.
💬 Need Help?
For issues, feel free to create an Issue on GitHub or contact 976-Tuna.