make_a_calendar_toolkit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/.rspec +1 -0
- data/.rubocop.yml +27 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +6 -0
- data/CODE_OF_CONDUCT.md +7 -0
- data/CONTRIBUTING.md +7 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +21 -0
- data/LICENSE +21 -0
- data/README.md +154 -0
- data/Rakefile +11 -0
- data/SECURITY.md +5 -0
- data/docs/README.md +19 -0
- data/docs/advanced-examples.md +28 -0
- data/docs/api-reference.md +15 -0
- data/docs/architecture.md +5 -0
- data/docs/business-days.md +7 -0
- data/docs/calendar-rendering.md +5 -0
- data/docs/date-converters.md +5 -0
- data/docs/date-semantics.md +21 -0
- data/docs/fiscal-445.md +11 -0
- data/docs/getting-started.md +12 -0
- data/docs/holidays.md +7 -0
- data/docs/ics-export.md +5 -0
- data/docs/online-resources.md +12 -0
- data/docs/payroll-schedules.md +5 -0
- data/docs/printable-calendars.md +11 -0
- data/docs/recurring-dates.md +7 -0
- data/examples/01-monthly-printable.rb +3 -0
- data/examples/02-yearly-svg.rb +3 -0
- data/examples/03-federal-holidays.rb +4 -0
- data/examples/04-business-deadline.rb +4 -0
- data/examples/05-biweekly-payroll.rb +4 -0
- data/examples/06-rotating-shifts.rb +4 -0
- data/examples/07-fiscal-445.rb +4 -0
- data/examples/08-excel-serial.rb +3 -0
- data/examples/09-windows-filetime.rb +3 -0
- data/examples/10-holidays-ics.rb +4 -0
- data/examples/11-rails-style-service.rb +8 -0
- data/examples/12-ink-saver-planner.rb +3 -0
- data/exe/make-calendar +156 -0
- data/lib/make_a_calendar/calendar.rb +187 -0
- data/lib/make_a_calendar/converters.rb +90 -0
- data/lib/make_a_calendar/core/date_math.rb +86 -0
- data/lib/make_a_calendar/errors.rb +7 -0
- data/lib/make_a_calendar/export/ics.rb +52 -0
- data/lib/make_a_calendar/scheduling/business_days.rb +72 -0
- data/lib/make_a_calendar/scheduling/fiscal.rb +67 -0
- data/lib/make_a_calendar/scheduling/holidays.rb +60 -0
- data/lib/make_a_calendar/scheduling/recurring.rb +100 -0
- data/lib/make_a_calendar/version.rb +5 -0
- data/lib/make_a_calendar.rb +52 -0
- data/samples/calendar-2027.svg +982 -0
- data/samples/october-2027-ink-saver.svg +103 -0
- data/samples/october-2027.svg +103 -0
- data/samples/us-federal-holidays-2027.ics +83 -0
- data/samples/us-federal-holidays-2027.json +57 -0
- metadata +139 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="title desc" viewBox="0 0 842 595">
|
|
2
|
+
<title id="title">October 2027</title><desc id="desc">Monthly calendar, October 2027</desc>
|
|
3
|
+
<rect width="100%" height="100%" fill="#ffffff"/>
|
|
4
|
+
<text x="40.0" y="72.0" font-family="Arial,sans-serif" font-size="28" font-weight="700" fill="#000000">October 2027</text>
|
|
5
|
+
<rect x="40.0" y="118.0" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
6
|
+
<text x="94.42857142857143" y="154.21428571428572" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Mo</text>
|
|
7
|
+
<rect x="148.85714285714286" y="118.0" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
8
|
+
<text x="203.28571428571428" y="154.21428571428572" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Tu</text>
|
|
9
|
+
<rect x="257.7142857142857" y="118.0" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
10
|
+
<text x="312.14285714285717" y="154.21428571428572" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">We</text>
|
|
11
|
+
<rect x="366.57142857142856" y="118.0" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
12
|
+
<text x="421.0" y="154.21428571428572" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Th</text>
|
|
13
|
+
<rect x="475.42857142857144" y="118.0" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
14
|
+
<text x="529.8571428571429" y="154.21428571428572" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Fr</text>
|
|
15
|
+
<rect x="584.2857142857143" y="118.0" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
16
|
+
<text x="638.7142857142858" y="154.21428571428572" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Sa</text>
|
|
17
|
+
<rect x="693.1428571428571" y="118.0" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
18
|
+
<text x="747.5714285714286" y="154.21428571428572" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Su</text>
|
|
19
|
+
<rect x="40.0" y="180.42857142857144" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
20
|
+
<text x="49.0" y="200.42857142857144" font-family="Arial,sans-serif" font-size="13" fill="#000000">27</text>
|
|
21
|
+
<rect x="148.85714285714286" y="180.42857142857144" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
22
|
+
<text x="157.85714285714286" y="200.42857142857144" font-family="Arial,sans-serif" font-size="13" fill="#000000">28</text>
|
|
23
|
+
<rect x="257.7142857142857" y="180.42857142857144" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
24
|
+
<text x="266.7142857142857" y="200.42857142857144" font-family="Arial,sans-serif" font-size="13" fill="#000000">29</text>
|
|
25
|
+
<rect x="366.57142857142856" y="180.42857142857144" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
26
|
+
<text x="375.57142857142856" y="200.42857142857144" font-family="Arial,sans-serif" font-size="13" fill="#000000">30</text>
|
|
27
|
+
<rect x="475.42857142857144" y="180.42857142857144" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
28
|
+
<text x="484.42857142857144" y="200.42857142857144" font-family="Arial,sans-serif" font-size="13" fill="#000000">1</text>
|
|
29
|
+
<rect x="584.2857142857143" y="180.42857142857144" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
30
|
+
<text x="593.2857142857143" y="200.42857142857144" font-family="Arial,sans-serif" font-size="13" fill="#000000">2</text>
|
|
31
|
+
<rect x="693.1428571428571" y="180.42857142857144" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
32
|
+
<text x="702.1428571428571" y="200.42857142857144" font-family="Arial,sans-serif" font-size="13" fill="#000000">3</text>
|
|
33
|
+
<rect x="40.0" y="242.85714285714286" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
34
|
+
<text x="49.0" y="262.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">4</text>
|
|
35
|
+
<rect x="148.85714285714286" y="242.85714285714286" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
36
|
+
<text x="157.85714285714286" y="262.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">5</text>
|
|
37
|
+
<rect x="257.7142857142857" y="242.85714285714286" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
38
|
+
<text x="266.7142857142857" y="262.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">6</text>
|
|
39
|
+
<rect x="366.57142857142856" y="242.85714285714286" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
40
|
+
<text x="375.57142857142856" y="262.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">7</text>
|
|
41
|
+
<rect x="475.42857142857144" y="242.85714285714286" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
42
|
+
<text x="484.42857142857144" y="262.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">8</text>
|
|
43
|
+
<rect x="584.2857142857143" y="242.85714285714286" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
44
|
+
<text x="593.2857142857143" y="262.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">9</text>
|
|
45
|
+
<rect x="693.1428571428571" y="242.85714285714286" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
46
|
+
<text x="702.1428571428571" y="262.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">10</text>
|
|
47
|
+
<rect x="40.0" y="305.2857142857143" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
48
|
+
<text x="49.0" y="325.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">11</text>
|
|
49
|
+
<rect x="148.85714285714286" y="305.2857142857143" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
50
|
+
<text x="157.85714285714286" y="325.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">12</text>
|
|
51
|
+
<rect x="257.7142857142857" y="305.2857142857143" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
52
|
+
<text x="266.7142857142857" y="325.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">13</text>
|
|
53
|
+
<rect x="366.57142857142856" y="305.2857142857143" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
54
|
+
<text x="375.57142857142856" y="325.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">14</text>
|
|
55
|
+
<rect x="475.42857142857144" y="305.2857142857143" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
56
|
+
<text x="484.42857142857144" y="325.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">15</text>
|
|
57
|
+
<rect x="584.2857142857143" y="305.2857142857143" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
58
|
+
<text x="593.2857142857143" y="325.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">16</text>
|
|
59
|
+
<rect x="693.1428571428571" y="305.2857142857143" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
60
|
+
<text x="702.1428571428571" y="325.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">17</text>
|
|
61
|
+
<rect x="40.0" y="367.7142857142857" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
62
|
+
<text x="49.0" y="387.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">18</text>
|
|
63
|
+
<rect x="148.85714285714286" y="367.7142857142857" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
64
|
+
<text x="157.85714285714286" y="387.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">19</text>
|
|
65
|
+
<rect x="257.7142857142857" y="367.7142857142857" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
66
|
+
<text x="266.7142857142857" y="387.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">20</text>
|
|
67
|
+
<rect x="366.57142857142856" y="367.7142857142857" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
68
|
+
<text x="375.57142857142856" y="387.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">21</text>
|
|
69
|
+
<rect x="475.42857142857144" y="367.7142857142857" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
70
|
+
<text x="484.42857142857144" y="387.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">22</text>
|
|
71
|
+
<rect x="584.2857142857143" y="367.7142857142857" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
72
|
+
<text x="593.2857142857143" y="387.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">23</text>
|
|
73
|
+
<rect x="693.1428571428571" y="367.7142857142857" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
74
|
+
<text x="702.1428571428571" y="387.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">24</text>
|
|
75
|
+
<rect x="40.0" y="430.14285714285717" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
76
|
+
<text x="49.0" y="450.14285714285717" font-family="Arial,sans-serif" font-size="13" fill="#000000">25</text>
|
|
77
|
+
<rect x="148.85714285714286" y="430.14285714285717" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
78
|
+
<text x="157.85714285714286" y="450.14285714285717" font-family="Arial,sans-serif" font-size="13" fill="#000000">26</text>
|
|
79
|
+
<rect x="257.7142857142857" y="430.14285714285717" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
80
|
+
<text x="266.7142857142857" y="450.14285714285717" font-family="Arial,sans-serif" font-size="13" fill="#000000">27</text>
|
|
81
|
+
<rect x="366.57142857142856" y="430.14285714285717" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
82
|
+
<text x="375.57142857142856" y="450.14285714285717" font-family="Arial,sans-serif" font-size="13" fill="#000000">28</text>
|
|
83
|
+
<rect x="475.42857142857144" y="430.14285714285717" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
84
|
+
<text x="484.42857142857144" y="450.14285714285717" font-family="Arial,sans-serif" font-size="13" fill="#000000">29</text>
|
|
85
|
+
<rect x="584.2857142857143" y="430.14285714285717" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
86
|
+
<text x="593.2857142857143" y="450.14285714285717" font-family="Arial,sans-serif" font-size="13" fill="#000000">30</text>
|
|
87
|
+
<rect x="693.1428571428571" y="430.14285714285717" width="108.85714285714286" height="62.42857142857143" fill="#ffffff" stroke="#555555"/>
|
|
88
|
+
<text x="702.1428571428571" y="450.14285714285717" font-family="Arial,sans-serif" font-size="13" fill="#000000">31</text>
|
|
89
|
+
<rect x="40.0" y="492.57142857142856" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
90
|
+
<text x="49.0" y="512.5714285714286" font-family="Arial,sans-serif" font-size="13" fill="#000000">1</text>
|
|
91
|
+
<rect x="148.85714285714286" y="492.57142857142856" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
92
|
+
<text x="157.85714285714286" y="512.5714285714286" font-family="Arial,sans-serif" font-size="13" fill="#000000">2</text>
|
|
93
|
+
<rect x="257.7142857142857" y="492.57142857142856" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
94
|
+
<text x="266.7142857142857" y="512.5714285714286" font-family="Arial,sans-serif" font-size="13" fill="#000000">3</text>
|
|
95
|
+
<rect x="366.57142857142856" y="492.57142857142856" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
96
|
+
<text x="375.57142857142856" y="512.5714285714286" font-family="Arial,sans-serif" font-size="13" fill="#000000">4</text>
|
|
97
|
+
<rect x="475.42857142857144" y="492.57142857142856" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
98
|
+
<text x="484.42857142857144" y="512.5714285714286" font-family="Arial,sans-serif" font-size="13" fill="#000000">5</text>
|
|
99
|
+
<rect x="584.2857142857143" y="492.57142857142856" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
100
|
+
<text x="593.2857142857143" y="512.5714285714286" font-family="Arial,sans-serif" font-size="13" fill="#000000">6</text>
|
|
101
|
+
<rect x="693.1428571428571" y="492.57142857142856" width="108.85714285714286" height="62.42857142857143" fill="#f1f1f1" stroke="#555555"/>
|
|
102
|
+
<text x="702.1428571428571" y="512.5714285714286" font-family="Arial,sans-serif" font-size="13" fill="#000000">7</text>
|
|
103
|
+
</svg>
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="title desc" viewBox="0 0 612 792">
|
|
2
|
+
<title id="title">October 2027</title><desc id="desc">Monthly calendar, October 2027</desc>
|
|
3
|
+
<rect width="100%" height="100%" fill="#ffffff"/>
|
|
4
|
+
<text x="40.0" y="72.0" font-family="Arial,sans-serif" font-size="28" font-weight="700" fill="#000000">October 2027</text>
|
|
5
|
+
<rect x="40.0" y="118.0" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
6
|
+
<text x="78.0" y="168.28571428571428" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Su</text>
|
|
7
|
+
<rect x="116.0" y="118.0" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
8
|
+
<text x="154.0" y="168.28571428571428" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Mo</text>
|
|
9
|
+
<rect x="192.0" y="118.0" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
10
|
+
<text x="230.0" y="168.28571428571428" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Tu</text>
|
|
11
|
+
<rect x="268.0" y="118.0" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
12
|
+
<text x="306.0" y="168.28571428571428" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">We</text>
|
|
13
|
+
<rect x="344.0" y="118.0" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
14
|
+
<text x="382.0" y="168.28571428571428" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Th</text>
|
|
15
|
+
<rect x="420.0" y="118.0" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
16
|
+
<text x="458.0" y="168.28571428571428" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Fr</text>
|
|
17
|
+
<rect x="496.0" y="118.0" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
18
|
+
<text x="534.0" y="168.28571428571428" text-anchor="middle" font-family="Arial,sans-serif" font-size="12" font-weight="700" fill="#000000">Sa</text>
|
|
19
|
+
<rect x="40.0" y="208.57142857142856" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
20
|
+
<text x="49.0" y="228.57142857142856" font-family="Arial,sans-serif" font-size="13" fill="#000000">26</text>
|
|
21
|
+
<rect x="116.0" y="208.57142857142856" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
22
|
+
<text x="125.0" y="228.57142857142856" font-family="Arial,sans-serif" font-size="13" fill="#000000">27</text>
|
|
23
|
+
<rect x="192.0" y="208.57142857142856" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
24
|
+
<text x="201.0" y="228.57142857142856" font-family="Arial,sans-serif" font-size="13" fill="#000000">28</text>
|
|
25
|
+
<rect x="268.0" y="208.57142857142856" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
26
|
+
<text x="277.0" y="228.57142857142856" font-family="Arial,sans-serif" font-size="13" fill="#000000">29</text>
|
|
27
|
+
<rect x="344.0" y="208.57142857142856" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
28
|
+
<text x="353.0" y="228.57142857142856" font-family="Arial,sans-serif" font-size="13" fill="#000000">30</text>
|
|
29
|
+
<rect x="420.0" y="208.57142857142856" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
30
|
+
<text x="429.0" y="228.57142857142856" font-family="Arial,sans-serif" font-size="13" fill="#000000">1</text>
|
|
31
|
+
<rect x="496.0" y="208.57142857142856" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
32
|
+
<text x="505.0" y="228.57142857142856" font-family="Arial,sans-serif" font-size="13" fill="#000000">2</text>
|
|
33
|
+
<rect x="40.0" y="299.1428571428571" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
34
|
+
<text x="49.0" y="319.1428571428571" font-family="Arial,sans-serif" font-size="13" fill="#000000">3</text>
|
|
35
|
+
<rect x="116.0" y="299.1428571428571" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
36
|
+
<text x="125.0" y="319.1428571428571" font-family="Arial,sans-serif" font-size="13" fill="#000000">4</text>
|
|
37
|
+
<rect x="192.0" y="299.1428571428571" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
38
|
+
<text x="201.0" y="319.1428571428571" font-family="Arial,sans-serif" font-size="13" fill="#000000">5</text>
|
|
39
|
+
<rect x="268.0" y="299.1428571428571" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
40
|
+
<text x="277.0" y="319.1428571428571" font-family="Arial,sans-serif" font-size="13" fill="#000000">6</text>
|
|
41
|
+
<rect x="344.0" y="299.1428571428571" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
42
|
+
<text x="353.0" y="319.1428571428571" font-family="Arial,sans-serif" font-size="13" fill="#000000">7</text>
|
|
43
|
+
<rect x="420.0" y="299.1428571428571" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
44
|
+
<text x="429.0" y="319.1428571428571" font-family="Arial,sans-serif" font-size="13" fill="#000000">8</text>
|
|
45
|
+
<rect x="496.0" y="299.1428571428571" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
46
|
+
<text x="505.0" y="319.1428571428571" font-family="Arial,sans-serif" font-size="13" fill="#000000">9</text>
|
|
47
|
+
<rect x="40.0" y="389.7142857142857" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
48
|
+
<text x="49.0" y="409.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">10</text>
|
|
49
|
+
<rect x="116.0" y="389.7142857142857" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
50
|
+
<text x="125.0" y="409.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">11</text>
|
|
51
|
+
<rect x="192.0" y="389.7142857142857" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
52
|
+
<text x="201.0" y="409.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">12</text>
|
|
53
|
+
<rect x="268.0" y="389.7142857142857" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
54
|
+
<text x="277.0" y="409.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">13</text>
|
|
55
|
+
<rect x="344.0" y="389.7142857142857" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
56
|
+
<text x="353.0" y="409.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">14</text>
|
|
57
|
+
<rect x="420.0" y="389.7142857142857" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
58
|
+
<text x="429.0" y="409.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">15</text>
|
|
59
|
+
<rect x="496.0" y="389.7142857142857" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
60
|
+
<text x="505.0" y="409.7142857142857" font-family="Arial,sans-serif" font-size="13" fill="#000000">16</text>
|
|
61
|
+
<rect x="40.0" y="480.2857142857143" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
62
|
+
<text x="49.0" y="500.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">17</text>
|
|
63
|
+
<rect x="116.0" y="480.2857142857143" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
64
|
+
<text x="125.0" y="500.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">18</text>
|
|
65
|
+
<rect x="192.0" y="480.2857142857143" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
66
|
+
<text x="201.0" y="500.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">19</text>
|
|
67
|
+
<rect x="268.0" y="480.2857142857143" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
68
|
+
<text x="277.0" y="500.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">20</text>
|
|
69
|
+
<rect x="344.0" y="480.2857142857143" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
70
|
+
<text x="353.0" y="500.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">21</text>
|
|
71
|
+
<rect x="420.0" y="480.2857142857143" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
72
|
+
<text x="429.0" y="500.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">22</text>
|
|
73
|
+
<rect x="496.0" y="480.2857142857143" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
74
|
+
<text x="505.0" y="500.2857142857143" font-family="Arial,sans-serif" font-size="13" fill="#000000">23</text>
|
|
75
|
+
<rect x="40.0" y="570.8571428571429" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
76
|
+
<text x="49.0" y="590.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">24</text>
|
|
77
|
+
<rect x="116.0" y="570.8571428571429" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
78
|
+
<text x="125.0" y="590.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">25</text>
|
|
79
|
+
<rect x="192.0" y="570.8571428571429" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
80
|
+
<text x="201.0" y="590.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">26</text>
|
|
81
|
+
<rect x="268.0" y="570.8571428571429" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
82
|
+
<text x="277.0" y="590.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">27</text>
|
|
83
|
+
<rect x="344.0" y="570.8571428571429" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
84
|
+
<text x="353.0" y="590.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">28</text>
|
|
85
|
+
<rect x="420.0" y="570.8571428571429" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
86
|
+
<text x="429.0" y="590.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">29</text>
|
|
87
|
+
<rect x="496.0" y="570.8571428571429" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
88
|
+
<text x="505.0" y="590.8571428571429" font-family="Arial,sans-serif" font-size="13" fill="#000000">30</text>
|
|
89
|
+
<rect x="40.0" y="661.4285714285714" width="76.0" height="90.57142857142857" fill="#ffffff" stroke="#555555"/>
|
|
90
|
+
<text x="49.0" y="681.4285714285714" font-family="Arial,sans-serif" font-size="13" fill="#000000">31</text>
|
|
91
|
+
<rect x="116.0" y="661.4285714285714" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
92
|
+
<text x="125.0" y="681.4285714285714" font-family="Arial,sans-serif" font-size="13" fill="#000000">1</text>
|
|
93
|
+
<rect x="192.0" y="661.4285714285714" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
94
|
+
<text x="201.0" y="681.4285714285714" font-family="Arial,sans-serif" font-size="13" fill="#000000">2</text>
|
|
95
|
+
<rect x="268.0" y="661.4285714285714" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
96
|
+
<text x="277.0" y="681.4285714285714" font-family="Arial,sans-serif" font-size="13" fill="#000000">3</text>
|
|
97
|
+
<rect x="344.0" y="661.4285714285714" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
98
|
+
<text x="353.0" y="681.4285714285714" font-family="Arial,sans-serif" font-size="13" fill="#000000">4</text>
|
|
99
|
+
<rect x="420.0" y="661.4285714285714" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
100
|
+
<text x="429.0" y="681.4285714285714" font-family="Arial,sans-serif" font-size="13" fill="#000000">5</text>
|
|
101
|
+
<rect x="496.0" y="661.4285714285714" width="76.0" height="90.57142857142857" fill="#f1f1f1" stroke="#555555"/>
|
|
102
|
+
<text x="505.0" y="681.4285714285714" font-family="Arial,sans-serif" font-size="13" fill="#000000">6</text>
|
|
103
|
+
</svg>
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
BEGIN:VCALENDAR
|
|
2
|
+
VERSION:2.0
|
|
3
|
+
PRODID:-//Make a Calendar Toolkit//EN
|
|
4
|
+
CALSCALE:GREGORIAN
|
|
5
|
+
X-WR-CALNAME:US Federal Holidays 2027
|
|
6
|
+
BEGIN:VEVENT
|
|
7
|
+
UID:20270101-1@make-a-calendar-toolkit
|
|
8
|
+
DTSTAMP:20261012T114039Z
|
|
9
|
+
DTSTART;VALUE=DATE:20270101
|
|
10
|
+
DTEND;VALUE=DATE:20270102
|
|
11
|
+
SUMMARY:New Year's Day
|
|
12
|
+
END:VEVENT
|
|
13
|
+
BEGIN:VEVENT
|
|
14
|
+
UID:20270118-2@make-a-calendar-toolkit
|
|
15
|
+
DTSTAMP:20261012T114039Z
|
|
16
|
+
DTSTART;VALUE=DATE:20270118
|
|
17
|
+
DTEND;VALUE=DATE:20270119
|
|
18
|
+
SUMMARY:Birthday of Martin Luther King\, Jr.
|
|
19
|
+
END:VEVENT
|
|
20
|
+
BEGIN:VEVENT
|
|
21
|
+
UID:20270215-3@make-a-calendar-toolkit
|
|
22
|
+
DTSTAMP:20261012T114039Z
|
|
23
|
+
DTSTART;VALUE=DATE:20270215
|
|
24
|
+
DTEND;VALUE=DATE:20270216
|
|
25
|
+
SUMMARY:Washington's Birthday
|
|
26
|
+
END:VEVENT
|
|
27
|
+
BEGIN:VEVENT
|
|
28
|
+
UID:20270531-4@make-a-calendar-toolkit
|
|
29
|
+
DTSTAMP:20261012T114039Z
|
|
30
|
+
DTSTART;VALUE=DATE:20270531
|
|
31
|
+
DTEND;VALUE=DATE:20270601
|
|
32
|
+
SUMMARY:Memorial Day
|
|
33
|
+
END:VEVENT
|
|
34
|
+
BEGIN:VEVENT
|
|
35
|
+
UID:20270618-5@make-a-calendar-toolkit
|
|
36
|
+
DTSTAMP:20261012T114039Z
|
|
37
|
+
DTSTART;VALUE=DATE:20270618
|
|
38
|
+
DTEND;VALUE=DATE:20270619
|
|
39
|
+
SUMMARY:Juneteenth National Independence Day
|
|
40
|
+
END:VEVENT
|
|
41
|
+
BEGIN:VEVENT
|
|
42
|
+
UID:20270705-6@make-a-calendar-toolkit
|
|
43
|
+
DTSTAMP:20261012T114039Z
|
|
44
|
+
DTSTART;VALUE=DATE:20270705
|
|
45
|
+
DTEND;VALUE=DATE:20270706
|
|
46
|
+
SUMMARY:Independence Day
|
|
47
|
+
END:VEVENT
|
|
48
|
+
BEGIN:VEVENT
|
|
49
|
+
UID:20270906-7@make-a-calendar-toolkit
|
|
50
|
+
DTSTAMP:20261012T114039Z
|
|
51
|
+
DTSTART;VALUE=DATE:20270906
|
|
52
|
+
DTEND;VALUE=DATE:20270907
|
|
53
|
+
SUMMARY:Labor Day
|
|
54
|
+
END:VEVENT
|
|
55
|
+
BEGIN:VEVENT
|
|
56
|
+
UID:20271011-8@make-a-calendar-toolkit
|
|
57
|
+
DTSTAMP:20261012T114039Z
|
|
58
|
+
DTSTART;VALUE=DATE:20271011
|
|
59
|
+
DTEND;VALUE=DATE:20271012
|
|
60
|
+
SUMMARY:Columbus Day
|
|
61
|
+
END:VEVENT
|
|
62
|
+
BEGIN:VEVENT
|
|
63
|
+
UID:20271111-9@make-a-calendar-toolkit
|
|
64
|
+
DTSTAMP:20261012T114039Z
|
|
65
|
+
DTSTART;VALUE=DATE:20271111
|
|
66
|
+
DTEND;VALUE=DATE:20271112
|
|
67
|
+
SUMMARY:Veterans Day
|
|
68
|
+
END:VEVENT
|
|
69
|
+
BEGIN:VEVENT
|
|
70
|
+
UID:20271125-10@make-a-calendar-toolkit
|
|
71
|
+
DTSTAMP:20261012T114039Z
|
|
72
|
+
DTSTART;VALUE=DATE:20271125
|
|
73
|
+
DTEND;VALUE=DATE:20271126
|
|
74
|
+
SUMMARY:Thanksgiving Day
|
|
75
|
+
END:VEVENT
|
|
76
|
+
BEGIN:VEVENT
|
|
77
|
+
UID:20271224-11@make-a-calendar-toolkit
|
|
78
|
+
DTSTAMP:20261012T114039Z
|
|
79
|
+
DTSTART;VALUE=DATE:20271224
|
|
80
|
+
DTEND;VALUE=DATE:20271225
|
|
81
|
+
SUMMARY:Christmas Day
|
|
82
|
+
END:VEVENT
|
|
83
|
+
END:VCALENDAR
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "New Year's Day",
|
|
4
|
+
"date": "2027-01-01",
|
|
5
|
+
"observed_date": "2027-01-01"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"name": "Birthday of Martin Luther King, Jr.",
|
|
9
|
+
"date": "2027-01-18",
|
|
10
|
+
"observed_date": "2027-01-18"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "Washington's Birthday",
|
|
14
|
+
"date": "2027-02-15",
|
|
15
|
+
"observed_date": "2027-02-15"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Memorial Day",
|
|
19
|
+
"date": "2027-05-31",
|
|
20
|
+
"observed_date": "2027-05-31"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "Juneteenth National Independence Day",
|
|
24
|
+
"date": "2027-06-19",
|
|
25
|
+
"observed_date": "2027-06-18"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "Independence Day",
|
|
29
|
+
"date": "2027-07-04",
|
|
30
|
+
"observed_date": "2027-07-05"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "Labor Day",
|
|
34
|
+
"date": "2027-09-06",
|
|
35
|
+
"observed_date": "2027-09-06"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "Columbus Day",
|
|
39
|
+
"date": "2027-10-11",
|
|
40
|
+
"observed_date": "2027-10-11"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "Veterans Day",
|
|
44
|
+
"date": "2027-11-11",
|
|
45
|
+
"observed_date": "2027-11-11"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "Thanksgiving Day",
|
|
49
|
+
"date": "2027-11-25",
|
|
50
|
+
"observed_date": "2027-11-25"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "Christmas Day",
|
|
54
|
+
"date": "2027-12-25",
|
|
55
|
+
"observed_date": "2027-12-24"
|
|
56
|
+
}
|
|
57
|
+
]
|
metadata
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: make_a_calendar_toolkit
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Ethan
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: rake
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '12.0'
|
|
19
|
+
type: :development
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '12.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: minitest
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '5.0'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '5.0'
|
|
40
|
+
description: |
|
|
41
|
+
Make a Calendar Toolkit is an offline Ruby library and command-line tool for calendar grids,
|
|
42
|
+
US federal holiday dates, business-day arithmetic, recurring pay schedules, rotating shifts,
|
|
43
|
+
NRF-style retail fiscal calendars, date conversions, SVG and HTML calendars, JSON and CSV
|
|
44
|
+
data, and date-only iCalendar exports. It is original Ruby code inspired by practical date
|
|
45
|
+
workflows; it does not call or reproduce the private implementation of Make a Calendar.
|
|
46
|
+
Created by Ethan, the developer behind https://make-a-calendar.com/.
|
|
47
|
+
email:
|
|
48
|
+
- makeacalendarcom@gmail.com
|
|
49
|
+
executables:
|
|
50
|
+
- make-calendar
|
|
51
|
+
extensions: []
|
|
52
|
+
extra_rdoc_files: []
|
|
53
|
+
files:
|
|
54
|
+
- ".gitignore"
|
|
55
|
+
- ".rspec"
|
|
56
|
+
- ".rubocop.yml"
|
|
57
|
+
- ".ruby-version"
|
|
58
|
+
- CHANGELOG.md
|
|
59
|
+
- CODE_OF_CONDUCT.md
|
|
60
|
+
- CONTRIBUTING.md
|
|
61
|
+
- Gemfile
|
|
62
|
+
- Gemfile.lock
|
|
63
|
+
- LICENSE
|
|
64
|
+
- README.md
|
|
65
|
+
- Rakefile
|
|
66
|
+
- SECURITY.md
|
|
67
|
+
- docs/README.md
|
|
68
|
+
- docs/advanced-examples.md
|
|
69
|
+
- docs/api-reference.md
|
|
70
|
+
- docs/architecture.md
|
|
71
|
+
- docs/business-days.md
|
|
72
|
+
- docs/calendar-rendering.md
|
|
73
|
+
- docs/date-converters.md
|
|
74
|
+
- docs/date-semantics.md
|
|
75
|
+
- docs/fiscal-445.md
|
|
76
|
+
- docs/getting-started.md
|
|
77
|
+
- docs/holidays.md
|
|
78
|
+
- docs/ics-export.md
|
|
79
|
+
- docs/online-resources.md
|
|
80
|
+
- docs/payroll-schedules.md
|
|
81
|
+
- docs/printable-calendars.md
|
|
82
|
+
- docs/recurring-dates.md
|
|
83
|
+
- examples/01-monthly-printable.rb
|
|
84
|
+
- examples/02-yearly-svg.rb
|
|
85
|
+
- examples/03-federal-holidays.rb
|
|
86
|
+
- examples/04-business-deadline.rb
|
|
87
|
+
- examples/05-biweekly-payroll.rb
|
|
88
|
+
- examples/06-rotating-shifts.rb
|
|
89
|
+
- examples/07-fiscal-445.rb
|
|
90
|
+
- examples/08-excel-serial.rb
|
|
91
|
+
- examples/09-windows-filetime.rb
|
|
92
|
+
- examples/10-holidays-ics.rb
|
|
93
|
+
- examples/11-rails-style-service.rb
|
|
94
|
+
- examples/12-ink-saver-planner.rb
|
|
95
|
+
- exe/make-calendar
|
|
96
|
+
- lib/make_a_calendar.rb
|
|
97
|
+
- lib/make_a_calendar/calendar.rb
|
|
98
|
+
- lib/make_a_calendar/converters.rb
|
|
99
|
+
- lib/make_a_calendar/core/date_math.rb
|
|
100
|
+
- lib/make_a_calendar/errors.rb
|
|
101
|
+
- lib/make_a_calendar/export/ics.rb
|
|
102
|
+
- lib/make_a_calendar/scheduling/business_days.rb
|
|
103
|
+
- lib/make_a_calendar/scheduling/fiscal.rb
|
|
104
|
+
- lib/make_a_calendar/scheduling/holidays.rb
|
|
105
|
+
- lib/make_a_calendar/scheduling/recurring.rb
|
|
106
|
+
- lib/make_a_calendar/version.rb
|
|
107
|
+
- samples/calendar-2027.svg
|
|
108
|
+
- samples/october-2027-ink-saver.svg
|
|
109
|
+
- samples/october-2027.svg
|
|
110
|
+
- samples/us-federal-holidays-2027.ics
|
|
111
|
+
- samples/us-federal-holidays-2027.json
|
|
112
|
+
homepage: https://make-a-calendar.com/
|
|
113
|
+
licenses:
|
|
114
|
+
- MIT
|
|
115
|
+
metadata:
|
|
116
|
+
homepage_uri: https://make-a-calendar.com/
|
|
117
|
+
source_code_uri: https://github.com/makeacalendar/make-a-calendar-ruby
|
|
118
|
+
documentation_uri: https://github.com/makeacalendar/make-a-calendar-ruby/tree/main/docs
|
|
119
|
+
changelog_uri: https://github.com/makeacalendar/make-a-calendar-ruby/blob/main/CHANGELOG.md
|
|
120
|
+
bug_tracker_uri: https://github.com/makeacalendar/make-a-calendar-ruby/issues
|
|
121
|
+
rdoc_options: []
|
|
122
|
+
require_paths:
|
|
123
|
+
- lib
|
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
125
|
+
requirements:
|
|
126
|
+
- - ">="
|
|
127
|
+
- !ruby/object:Gem::Version
|
|
128
|
+
version: '2.6'
|
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
|
+
requirements:
|
|
131
|
+
- - ">="
|
|
132
|
+
- !ruby/object:Gem::Version
|
|
133
|
+
version: '0'
|
|
134
|
+
requirements: []
|
|
135
|
+
rubygems_version: 3.6.9
|
|
136
|
+
specification_version: 4
|
|
137
|
+
summary: Ruby toolkit for printable calendars, business schedules, holidays, fiscal
|
|
138
|
+
planning, and date conversions.
|
|
139
|
+
test_files: []
|