mirror of
https://salsa.debian.org/dskoll/remind.git
synced 2026-04-17 14:59:20 +02:00
Compare commits
1101 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
23081b556f | ||
|
|
e2cfa46289 | ||
|
|
71384da875 | ||
|
|
af69f8779d | ||
|
|
131e77fa18 | ||
|
|
f153acf7ce | ||
|
|
d75587fa7b | ||
|
|
d9a2b15814 | ||
|
|
aa090bf319 | ||
|
|
dc6a229f5f | ||
|
|
5a3840759a | ||
|
|
779174ae32 | ||
|
|
2f70b37d4c | ||
|
|
d15c8f106b | ||
|
|
9d999a0074 | ||
|
|
097dda1750 | ||
|
|
565bca4380 | ||
|
|
adb38fe82e | ||
|
|
57545ddc3f | ||
|
|
804cf14a78 | ||
|
|
641b5cec57 | ||
|
|
df53db19c4 | ||
|
|
d9bf902153 | ||
|
|
53a12de2f9 | ||
|
|
fe2b34da68 | ||
|
|
7e70ffe7f5 | ||
|
|
55975154b1 | ||
|
|
3c6191ba61 | ||
|
|
b00cf9c5b7 | ||
|
|
a6838802ad | ||
|
|
375576fcc5 | ||
|
|
2c9087aa79 | ||
|
|
928f65ae47 | ||
|
|
ed7b4f5ecc | ||
|
|
9aad9401ea | ||
|
|
4574b552b6 | ||
|
|
21e0940257 | ||
|
|
7064893ff2 | ||
|
|
f8781276e2 | ||
|
|
b02f61ea05 | ||
|
|
60447d530d | ||
|
|
2835176ad3 | ||
|
|
b0784feb1a | ||
|
|
ef7021972e | ||
|
|
e449fcdfcf | ||
|
|
47a4456c20 | ||
|
|
e9ee7492f7 | ||
|
|
2baa0405f3 | ||
|
|
3425530c1c | ||
|
|
eeae3298ef | ||
|
|
4237dc4a3f | ||
|
|
faf8947dda | ||
|
|
41a3db3a37 | ||
|
|
f12bcf3fe6 | ||
|
|
f9261bb24f | ||
|
|
2ff9aedba5 | ||
|
|
1b793eff2e | ||
|
|
e4c41e0f45 | ||
|
|
9ec1006804 | ||
|
|
dd048c0557 | ||
|
|
dce1f282f4 | ||
|
|
7120d07d84 | ||
|
|
127358db02 | ||
|
|
a89aaf18b6 | ||
|
|
5734bd7524 | ||
|
|
dfabda7dee | ||
|
|
da146d7989 | ||
|
|
e147925462 | ||
|
|
703907c94d | ||
|
|
bcfee04cae | ||
|
|
5f9e71f9eb | ||
|
|
272336226e | ||
|
|
32f4b125b5 | ||
|
|
7979a69cb9 | ||
|
|
651368fedc | ||
|
|
fe002557cf | ||
|
|
d2785d909c | ||
|
|
c2345a240b | ||
|
|
5b6bf25a20 | ||
|
|
44f9f0f0d4 | ||
|
|
0416d6da9c | ||
|
|
5d46df871f | ||
|
|
c5d661124c | ||
|
|
2f239f77a5 | ||
|
|
1ef05d3f85 | ||
|
|
7c56aad791 | ||
|
|
5f0f68f508 | ||
|
|
71bfe31002 | ||
|
|
4661b454c0 | ||
|
|
d41520a04f | ||
|
|
0206e538e0 | ||
|
|
6689cbfda3 | ||
|
|
5baf102bfe | ||
|
|
c9002d5b54 | ||
|
|
ac3ee7e22b | ||
|
|
f366037b8d | ||
|
|
a46488a50d | ||
|
|
f91a1a2d65 | ||
|
|
2ac8fb50e1 | ||
|
|
7df826f635 | ||
|
|
f8ce7b51da | ||
|
|
35ee94ca6b | ||
|
|
c2a3468e04 | ||
|
|
4ff2064452 | ||
|
|
8e00bd5acc | ||
|
|
86f65e11bb | ||
|
|
0c9ec11fce | ||
|
|
07dcaec176 | ||
|
|
e87849256b | ||
|
|
fd8ecd88a8 | ||
|
|
5e36a6563a | ||
|
|
274a2bf067 | ||
|
|
4aa737e542 | ||
|
|
6474f4e0b6 | ||
|
|
7b7b861399 | ||
|
|
5cb0e82be2 | ||
|
|
d9a4bd19f2 | ||
|
|
1004946d26 | ||
|
|
d877a6cb48 | ||
|
|
3eea329b32 | ||
|
|
7bf23912ae | ||
|
|
6ae0340137 | ||
|
|
0e48ace855 | ||
|
|
d1f1ddf5b7 | ||
|
|
5f9e227dc8 | ||
|
|
b770676cb6 | ||
|
|
5ee415c2fb | ||
|
|
6c2a4b66fd | ||
|
|
6c2d65c08e | ||
|
|
cd2dc3bea3 | ||
|
|
b1b80316ab | ||
|
|
f04835cf6f | ||
|
|
fb19ea6b7e | ||
|
|
e2d7796d4a | ||
|
|
de2ec1aa7b | ||
|
|
b9fb215d9d | ||
|
|
a62ed0e0c5 | ||
|
|
eceb5e3f82 | ||
|
|
d5aa93ae57 | ||
|
|
a66da78b4a | ||
|
|
af69f54bff | ||
|
|
a000a7f17e | ||
|
|
582f388500 | ||
|
|
7762f4f2d6 | ||
|
|
31c9b2afb7 | ||
|
|
119e954e9e | ||
|
|
6aa07edffd | ||
|
|
bdb9ad1a5d | ||
|
|
05384fe7cf | ||
|
|
6125001e55 | ||
|
|
78b307e387 | ||
|
|
460d0a8d88 | ||
|
|
add35377ad | ||
|
|
fccd9ed42e | ||
|
|
a49ecccb34 | ||
|
|
ae9fe78817 | ||
|
|
dbc5576312 | ||
|
|
6cbbebceaf | ||
|
|
4dc27ca7f5 | ||
|
|
d8f97ce0f1 | ||
|
|
0e1a80f2bd | ||
|
|
4a7f703ab5 | ||
|
|
101de948b2 | ||
|
|
0e2d382b33 | ||
|
|
a6c5c3cb90 | ||
|
|
da573929ee | ||
|
|
5217d9b675 | ||
|
|
79a87c6f1a | ||
|
|
cde5ffc84a | ||
|
|
6ef323a4f0 | ||
|
|
8331ea2991 | ||
|
|
db28648d9d | ||
|
|
1a5915bba9 | ||
|
|
94a50fa22c | ||
|
|
fad6076568 | ||
|
|
287039ac40 | ||
|
|
8523218ef2 | ||
|
|
fdaaf2b57a | ||
|
|
19eac9b8d5 | ||
|
|
cda4877229 | ||
|
|
0976cd64f3 | ||
|
|
10f7889ef2 | ||
|
|
2391ff4bc7 | ||
|
|
d21ae56deb | ||
|
|
773980afa6 | ||
|
|
46a80da0e1 | ||
|
|
23516aebcb | ||
|
|
b48ce0b245 | ||
|
|
e4c090374d | ||
|
|
39fcbb72fd | ||
|
|
5f2bf48752 | ||
|
|
9e5354fcb8 | ||
|
|
49bdd135f7 | ||
|
|
f9a6aba81d | ||
|
|
175772d959 | ||
|
|
2f03c75826 | ||
|
|
d617000e95 | ||
|
|
04dee13996 | ||
|
|
ebcf6fd534 | ||
|
|
c7c58e20f3 | ||
|
|
a66ca7cce7 | ||
|
|
35cae5f97c | ||
|
|
6d86d88037 | ||
|
|
89f60358c6 | ||
|
|
781e5a6acd | ||
|
|
1b5d34e5e6 | ||
|
|
cb5fa62022 | ||
|
|
9d6ce5b674 | ||
|
|
1cdd9531a5 | ||
|
|
da4633fab3 | ||
|
|
aeff3606d2 | ||
|
|
2af36b7241 | ||
|
|
a7a22d20a2 | ||
|
|
3fdbf8b3bc | ||
|
|
a7696d659c | ||
|
|
865ebae6f8 | ||
|
|
f21f8ee8d0 | ||
|
|
76b7736266 | ||
|
|
0769e3e9cb | ||
|
|
d9ab9e91b5 | ||
|
|
9199ed5cf7 | ||
|
|
68a4b23b6f | ||
|
|
814dd51270 | ||
|
|
59fdf70732 | ||
|
|
24ed30fee0 | ||
|
|
86dcd9ce89 | ||
|
|
4915dc1e8d | ||
|
|
8c4cff22a5 | ||
|
|
50850134f6 | ||
|
|
a5de77cc91 | ||
|
|
87e4ed23bf | ||
|
|
0fe1d1591e | ||
|
|
dfb137085a | ||
|
|
143cdecb9e | ||
|
|
183ccf9d1c | ||
|
|
56ad4efb1a | ||
|
|
f4805a443b | ||
|
|
977aa3d6cf | ||
|
|
fe7ac980e5 | ||
|
|
aebab73dfa | ||
|
|
9bd0055d4d | ||
|
|
d944ceb32d | ||
|
|
3eadb3f767 | ||
|
|
be8a0621d1 | ||
|
|
235f947dd1 | ||
|
|
93dddec24a | ||
|
|
c13b721550 | ||
|
|
1c961dca83 | ||
|
|
700ac85e54 | ||
|
|
e20a14109a | ||
|
|
a3703173e2 | ||
|
|
7325375ccd | ||
|
|
4b898b2ba1 | ||
|
|
aa3760bc04 | ||
|
|
ea5e8c90ff | ||
|
|
609b68ab21 | ||
|
|
c3ab2a15cf | ||
|
|
418b050b1c | ||
|
|
4ab8897577 | ||
|
|
9613417a2e | ||
|
|
f808a2963d | ||
|
|
96a4dc3189 | ||
|
|
3c60285466 | ||
|
|
6fed350e1f | ||
|
|
9f220555af | ||
|
|
005ccef953 | ||
|
|
578c98c865 | ||
|
|
64bf3381c6 | ||
|
|
02ade6fc58 | ||
|
|
2954fca8d8 | ||
|
|
8356dacf2a | ||
|
|
4fd145cf4e | ||
|
|
1af2bdf8f1 | ||
|
|
9b98e65e01 | ||
|
|
0f83b98698 | ||
|
|
4fd62f9894 | ||
|
|
cc06592fe0 | ||
|
|
21d28ebfc3 | ||
|
|
b300422cdb | ||
|
|
37e09f4671 | ||
|
|
b6e53341c8 | ||
|
|
896fcf1d7f | ||
|
|
72155329f2 | ||
|
|
36c7db510a | ||
|
|
d4aa73747d | ||
|
|
3ed657b708 | ||
|
|
0441c0263b | ||
|
|
c40d4ee672 | ||
|
|
96f2d6537a | ||
|
|
dc777c95df | ||
|
|
3090d77346 | ||
|
|
157d2821f3 | ||
|
|
71d2da19a8 | ||
|
|
516b9c81b3 | ||
|
|
58d0e38f1a | ||
|
|
68d487ade9 | ||
|
|
9d42879170 | ||
|
|
db70aabc97 | ||
|
|
c8f55ef60b | ||
|
|
44b50fc6be | ||
|
|
a69a96529b | ||
|
|
f4e5cc63a6 | ||
|
|
136122b1db | ||
|
|
4cc63b1548 | ||
|
|
9390b4335b | ||
|
|
1fcf11a816 | ||
|
|
c4107e6a6f | ||
|
|
ab03232341 | ||
|
|
51a65841cd | ||
|
|
5035deaff1 | ||
|
|
09caa8988a | ||
|
|
9624b1045c | ||
|
|
102748397f | ||
|
|
f852f7e7e5 | ||
|
|
8d88192483 | ||
|
|
a6ca571fe5 | ||
|
|
2af783a58d | ||
|
|
af2daa7a87 | ||
|
|
c5bc459dd9 | ||
|
|
edf26eaa14 | ||
|
|
7e5dc26ee5 | ||
|
|
4c2b6031cd | ||
|
|
af8c1630c3 | ||
|
|
0ec43d570c | ||
|
|
1df8b12e71 | ||
|
|
3fb10fe946 | ||
|
|
e11dbcf52a | ||
|
|
88cc25e53f | ||
|
|
0c93e045bd | ||
|
|
99e5b3f43d | ||
|
|
f0f0cec2d3 | ||
|
|
70a97a8fe5 | ||
|
|
8a6857b787 | ||
|
|
95b82a4457 | ||
|
|
8fd39e477f | ||
|
|
3118f8d2a4 | ||
|
|
acf570512d | ||
|
|
cf2114e2ef | ||
|
|
357f7105bd | ||
|
|
e7094b71c2 | ||
|
|
8a3db4cba1 | ||
|
|
b33a3191f5 | ||
|
|
caa900d38d | ||
|
|
1d3c1f006f | ||
|
|
633812d961 | ||
|
|
ec8cae6d4b | ||
|
|
5019d54379 | ||
|
|
56e4f14a2f | ||
|
|
af5854d0c6 | ||
|
|
43d0066780 | ||
|
|
de2d15009f | ||
|
|
8ca5c7e56e | ||
|
|
bd6218d7e2 | ||
|
|
5d822e294d | ||
|
|
1e3657b728 | ||
|
|
a309af731f | ||
|
|
31c8893a2a | ||
|
|
e3a6c65983 | ||
|
|
1355b99560 | ||
|
|
21904e708f | ||
|
|
e4a6a5cf01 | ||
|
|
098cf4707a | ||
|
|
1be6ff23fb | ||
|
|
4db201945c | ||
|
|
6aa217044b | ||
|
|
c64d939237 | ||
|
|
398100c6e3 | ||
|
|
3fb1db0880 | ||
|
|
76bf57af60 | ||
|
|
a8fc88be17 | ||
|
|
a50f40d652 | ||
|
|
71b3564c03 | ||
|
|
a35de17b00 | ||
|
|
ab44f93f37 | ||
|
|
ab69fee895 | ||
|
|
db31214060 | ||
|
|
758e2c1a9d | ||
|
|
ed7c5103ff | ||
|
|
4590e746c5 | ||
|
|
bc8ce3e2cc | ||
|
|
3e82fe8712 | ||
|
|
ea3126645c | ||
|
|
e107ed5482 | ||
|
|
66523b1b3b | ||
|
|
8590cf6207 | ||
|
|
c85a8a7614 | ||
|
|
416ee87dd0 | ||
|
|
7705278575 | ||
|
|
59f978a9db | ||
|
|
4515291720 | ||
|
|
65eaf67a06 | ||
|
|
3f4f00890a | ||
|
|
e96875c698 | ||
|
|
d65348bf83 | ||
|
|
c1704b9d52 | ||
|
|
e87d285170 | ||
|
|
c6b00b616e | ||
|
|
084dbd71b1 | ||
|
|
ce123d1b41 | ||
|
|
4ed8331369 | ||
|
|
44b920e080 | ||
|
|
dc75c8f49b | ||
|
|
cef6e6717c | ||
|
|
5ec78739cd | ||
|
|
79f45169c8 | ||
|
|
b9f09b9a2d | ||
|
|
f53a174d65 | ||
|
|
ed15b7deb5 | ||
|
|
caf5f81eb0 | ||
|
|
d48910eca9 | ||
|
|
c004944a59 | ||
|
|
f2d1a21a4e | ||
|
|
81a5241097 | ||
|
|
eced4de4a2 | ||
|
|
2c8fa39af0 | ||
|
|
6ac5e96260 | ||
|
|
deda94a69e | ||
|
|
abb8cbb1bf | ||
|
|
ee4e3e9073 | ||
|
|
220014e60f | ||
|
|
3d0d07ce29 | ||
|
|
38615adb41 | ||
|
|
3d8f0e3907 | ||
|
|
160f85a1f8 | ||
|
|
5cb062166c | ||
|
|
81fa6c667f | ||
|
|
190dfa3a8f | ||
|
|
a22c674846 | ||
|
|
ba224445b1 | ||
|
|
6aeee47bfa | ||
|
|
c506fa4613 | ||
|
|
04404a252e | ||
|
|
be746f9fa7 | ||
|
|
2393a86970 | ||
|
|
143ad08b3f | ||
|
|
44afdfcb44 | ||
|
|
4b905dbc02 | ||
|
|
0f76750e05 | ||
|
|
b32f56134e | ||
|
|
60b0b468df | ||
|
|
52ce99af80 | ||
|
|
5915eb4973 | ||
|
|
aa8d23fd87 | ||
|
|
917d943953 | ||
|
|
9ade3876b2 | ||
|
|
471ecff267 | ||
|
|
762bf97473 | ||
|
|
563f3ea088 | ||
|
|
939078428f | ||
|
|
5acbb907b4 | ||
|
|
21ecc28ea4 | ||
|
|
b37a7cd993 | ||
|
|
64679817ae | ||
|
|
1ef1033379 | ||
|
|
7d42750043 | ||
|
|
1dc0afc0ca | ||
|
|
a0aede4069 | ||
|
|
a5a7637696 | ||
|
|
38a597a374 | ||
|
|
66ba9257a5 | ||
|
|
c5374c09fb | ||
|
|
9c93e7e6a1 | ||
|
|
3487f6f46a | ||
|
|
da8a72d7cd | ||
|
|
f391b6221f | ||
|
|
a8c0b20f9e | ||
|
|
5684a86df9 | ||
|
|
3abaaacd98 | ||
|
|
7eae7a9157 | ||
|
|
a0d8c93a34 | ||
|
|
8bf22dbb36 | ||
|
|
6b2622f3d3 | ||
|
|
8abdf6d988 | ||
|
|
991e409739 | ||
|
|
3c2bb76523 | ||
|
|
8555352c18 | ||
|
|
34f8486c10 | ||
|
|
5adb5d893e | ||
|
|
2f11b6fdc8 | ||
|
|
49d46c1397 | ||
|
|
1641f99f97 | ||
|
|
f9f9552850 | ||
|
|
3b43222585 | ||
|
|
231d9d77e7 | ||
|
|
6140221bf3 | ||
|
|
51b831fb6a | ||
|
|
35a4994b3e | ||
|
|
0ebaaa4097 | ||
|
|
2f43aca21c | ||
|
|
930bab0fde | ||
|
|
694c4099d1 | ||
|
|
ca56b4c90e | ||
|
|
5c965e2083 | ||
|
|
d58ccbef69 | ||
|
|
17ad03be69 | ||
|
|
75a4e98de2 | ||
|
|
1408f77303 | ||
|
|
af76dd67fb | ||
|
|
f7a19d1570 | ||
|
|
e7ec975ff0 | ||
|
|
8c4ca12ca7 | ||
|
|
e832eb868c | ||
|
|
cb0acb3077 | ||
|
|
9376c7a36d | ||
|
|
e6ceeee2ec | ||
|
|
bbeece644e | ||
|
|
8d09abc363 | ||
|
|
3dcd353fb5 | ||
|
|
124c5c4e7e | ||
|
|
77024562b3 | ||
|
|
35c33ae915 | ||
|
|
901831ff75 | ||
|
|
e0c5e878a8 | ||
|
|
ffba7fcb03 | ||
|
|
b3f3cb9ce0 | ||
|
|
6f11e727f8 | ||
|
|
9f7ea96e87 | ||
|
|
d650b8564c | ||
|
|
4f2e4030eb | ||
|
|
447bda5c91 | ||
|
|
4f351c089e | ||
|
|
6b31778973 | ||
|
|
dcf8b46beb | ||
|
|
0f582ccb60 | ||
|
|
8d0743dd3e | ||
|
|
436526c27d | ||
|
|
5f3f3b410f | ||
|
|
4f79b0d42a | ||
|
|
c96f9f21ed | ||
|
|
dc192f2a69 | ||
|
|
ac3dd1ec7c | ||
|
|
b5717828f0 | ||
|
|
c0d73fb9d1 | ||
|
|
3a2ac067b0 | ||
|
|
1d467ab9ed | ||
|
|
c2ec4e9d29 | ||
|
|
96c11e89eb | ||
|
|
a35920f28e | ||
|
|
17ccf5d2b4 | ||
|
|
788a09b2cd | ||
|
|
9f0e23a307 | ||
|
|
542620c188 | ||
|
|
50419bd83a | ||
|
|
2b7c582392 | ||
|
|
812a2af64b | ||
|
|
17d7abd4a4 | ||
|
|
098e98c59e | ||
|
|
c5e0dbf2e5 | ||
|
|
18c8bc719f | ||
|
|
195ed15167 | ||
|
|
51677cd7b5 | ||
|
|
aef5b353cd | ||
|
|
8a99c29533 | ||
|
|
0bf2b0772a | ||
|
|
a033a48acd | ||
|
|
0feb81c8cc | ||
|
|
1850607542 | ||
|
|
213138a7b7 | ||
|
|
562cec3dc8 | ||
|
|
18b57d26b4 | ||
|
|
c80d72f623 | ||
|
|
2739a41651 | ||
|
|
5a56f4c61b | ||
|
|
77080ff600 | ||
|
|
c4aa21ff51 | ||
|
|
34c513ba3b | ||
|
|
35c16a060a | ||
|
|
69dedc577f | ||
|
|
a7d8f3c887 | ||
|
|
800a4b15b2 | ||
|
|
3e981fd8be | ||
|
|
7c530d3068 | ||
|
|
58f9cf641b | ||
|
|
53906035fe | ||
|
|
4804325863 | ||
|
|
5f5e7054f4 | ||
|
|
078dba1e98 | ||
|
|
8ebec9584c | ||
|
|
2504b39be2 | ||
|
|
e394f402f8 | ||
|
|
5a2914f6c7 | ||
|
|
a19b009f7c | ||
|
|
6373ae8ca5 | ||
|
|
b8c4786b33 | ||
|
|
4e7cfc20ce | ||
|
|
0c9a35a584 | ||
|
|
5e333f6162 | ||
|
|
af8b4e6df1 | ||
|
|
3fa798523a | ||
|
|
53001f9fbc | ||
|
|
9cd76eae84 | ||
|
|
c8295b6251 | ||
|
|
3c95245407 | ||
|
|
3362c7226c | ||
|
|
356b562d75 | ||
|
|
6eebcdc39d | ||
|
|
5a80d63060 | ||
|
|
c7ca1b4baa | ||
|
|
dc89a6fba9 | ||
|
|
f83fec5563 | ||
|
|
9c38161430 | ||
|
|
68f5fe1d10 | ||
|
|
bc7c57e53b | ||
|
|
88aacb3905 | ||
|
|
a894076bfc | ||
|
|
82e068fcca | ||
|
|
a119d97539 | ||
|
|
01afb63a3d | ||
|
|
54fccabdfe | ||
|
|
ba4d44664f | ||
|
|
d76c5499b5 | ||
|
|
84e8244e48 | ||
|
|
92a6115a5c | ||
|
|
b98e336e9e | ||
|
|
ffcd21446e | ||
|
|
af9ca68d99 | ||
|
|
71db7168a1 | ||
|
|
54f284c43f | ||
|
|
0ab93f2dea | ||
|
|
3d97f87bcd | ||
|
|
dcfa6d8ef8 | ||
|
|
52dd5332f4 | ||
|
|
7b5fafe1ab | ||
|
|
929af71a10 | ||
|
|
abf7c74ff2 | ||
|
|
5b9d9a67b2 | ||
|
|
16ca2ade23 | ||
|
|
d3e6c81a3a | ||
|
|
13ae49d3cd | ||
|
|
78adc9f61d | ||
|
|
a622d4fad4 | ||
|
|
6c0e7b4ff5 | ||
|
|
28e0599380 | ||
|
|
87445f639c | ||
|
|
af6e159eaa | ||
|
|
bffa28e258 | ||
|
|
1781f84d84 | ||
|
|
ed6e65182e | ||
|
|
f5cc0ec686 | ||
|
|
a2c818f96c | ||
|
|
0bbbaaf3d9 | ||
|
|
1c81d4cae3 | ||
|
|
56c684087b | ||
|
|
9500a929ea | ||
|
|
585d45e4a1 | ||
|
|
67d1d1366d | ||
|
|
f4018892e8 | ||
|
|
ffd309f89d | ||
|
|
286babc1bf | ||
|
|
cc3c0040e9 | ||
|
|
b33a1ee98b | ||
|
|
99706741bb | ||
|
|
df73a74503 | ||
|
|
c747ebebb4 | ||
|
|
6b412062c2 | ||
|
|
27b688f82c | ||
|
|
4c314ff81c | ||
|
|
d2955ec733 | ||
|
|
480216db9e | ||
|
|
9dbb0de7e6 | ||
|
|
9f9ae77895 | ||
|
|
d9796e72e5 | ||
|
|
e0b0d043c6 | ||
|
|
fe4499ab72 | ||
|
|
e50d583659 | ||
|
|
6b05d772f0 | ||
|
|
84dd73f023 | ||
|
|
00dca8b70f | ||
|
|
c4bc145cd9 | ||
|
|
bd614c1cde | ||
|
|
1446ac0552 | ||
|
|
26ded447ab | ||
|
|
a4ccb0738e | ||
|
|
27a1b449bd | ||
|
|
1443282859 | ||
|
|
4a2d707654 | ||
|
|
fd2a61928c | ||
|
|
a05d9eefc9 | ||
|
|
6f230e81bd | ||
|
|
973019c4c7 | ||
|
|
cb712ad7e7 | ||
|
|
be7c67b6fd | ||
|
|
a933c8bc69 | ||
|
|
087fbfd8e6 | ||
|
|
ff641d7990 | ||
|
|
54e788b765 | ||
|
|
4283feff31 | ||
|
|
062a84b758 | ||
|
|
d161a8ff1a | ||
|
|
0df4a79531 | ||
|
|
1b26e39e2f | ||
|
|
c63c4cf07e | ||
|
|
586b3565f0 | ||
|
|
877aaed1a1 | ||
|
|
57fa1a6099 | ||
|
|
6cdb12b5a8 | ||
|
|
c73e1b6f97 | ||
|
|
e8c779c785 | ||
|
|
96e076a13f | ||
|
|
80d258621a | ||
|
|
ed6d35e418 | ||
|
|
9dca1840a1 | ||
|
|
f4ec23df90 | ||
|
|
a0536a8141 | ||
|
|
553899127a | ||
|
|
73519889c7 | ||
|
|
54ac99abcc | ||
|
|
0c1954bdf4 | ||
|
|
46e1b7386e | ||
|
|
cdf480112a | ||
|
|
ed38feee83 | ||
|
|
d7f5582a45 | ||
|
|
d042263d3d | ||
|
|
f1591140d4 | ||
|
|
1b41367163 | ||
|
|
6bdee7ef89 | ||
|
|
d50b464314 | ||
|
|
ad5dff1de7 | ||
|
|
ac9f32f044 | ||
|
|
e48d025f5d | ||
|
|
0f5de395ff | ||
|
|
406629144f | ||
|
|
36e4f52828 | ||
|
|
ae39eb1d6e | ||
|
|
342c229a57 | ||
|
|
52fc89ddc7 | ||
|
|
821e7a64c8 | ||
|
|
8c3f7e092c | ||
|
|
6161214226 | ||
|
|
5b892eba8e | ||
|
|
e0fde98410 | ||
|
|
aec17b3243 | ||
|
|
83009e765d | ||
|
|
42dc81132f | ||
|
|
51d8b7be39 | ||
|
|
04cc3fd8dd | ||
|
|
bd429d1450 | ||
|
|
57fa0bfb2e | ||
|
|
bc7f92e3c0 | ||
|
|
67ab911d43 | ||
|
|
43191fc6a3 | ||
|
|
da1cc9137c | ||
|
|
1306195045 | ||
|
|
edb73548d6 | ||
|
|
c143d554b7 | ||
|
|
c2dbf32dd6 | ||
|
|
a0e32c715b | ||
|
|
356e0044c4 | ||
|
|
eea90b1aaa | ||
|
|
b2c5575849 | ||
|
|
7064d64b22 | ||
|
|
5783430fdd | ||
|
|
3e8c40990d | ||
|
|
cbdc124355 | ||
|
|
40e60dd627 | ||
|
|
e508bee0ed | ||
|
|
0200be82ba | ||
|
|
4c8b6e74d2 | ||
|
|
bbdcf44102 | ||
|
|
02007a32fe | ||
|
|
fd7c79b6b4 | ||
|
|
c8c2d5d32e | ||
|
|
4eafaaefeb | ||
|
|
de6e387969 | ||
|
|
f8d1439fc8 | ||
|
|
fd7079d7f8 | ||
|
|
1ccf1d236d | ||
|
|
7041e2cad8 | ||
|
|
b1b21e21b3 | ||
|
|
533718b0a0 | ||
|
|
4e75d1574c | ||
|
|
c94137e0b3 | ||
|
|
e49251cfb0 | ||
|
|
e3627e8ea3 | ||
|
|
2c1f44c9b9 | ||
|
|
cce24634ae | ||
|
|
e2435c34a9 | ||
|
|
a70ba8d42c | ||
|
|
dea14be2d5 | ||
|
|
6750a393f1 | ||
|
|
e18cd72791 | ||
|
|
6e1dc7dcd7 | ||
|
|
bf193250cc | ||
|
|
2c5eeb02f6 | ||
|
|
5cd343c27c | ||
|
|
81b48b70c4 | ||
|
|
5e738020a7 | ||
|
|
7949341037 | ||
|
|
f4d8331456 | ||
|
|
17beef5ce6 | ||
|
|
aaae80d02b | ||
|
|
e97de16203 | ||
|
|
d5e38ee3b4 | ||
|
|
11594aee2d | ||
|
|
711f0b6c69 | ||
|
|
87a8b9811d | ||
|
|
689b1d0e13 | ||
|
|
a8650e888f | ||
|
|
dea2aed628 | ||
|
|
5618b928e0 | ||
|
|
91187c4c60 | ||
|
|
636ae8f21a | ||
|
|
405398b226 | ||
|
|
0df3a903b1 | ||
|
|
eac07d212c | ||
|
|
96da3a6596 | ||
|
|
94ef20d702 | ||
|
|
c9c309e436 | ||
|
|
52c973509b | ||
|
|
c192c580da | ||
|
|
235e5ec1c7 | ||
|
|
3d30173f9a | ||
|
|
8b0bbc9fb7 | ||
|
|
c57d2fd52a | ||
|
|
2970591187 | ||
|
|
23ec559ddf | ||
|
|
302bc5a5de | ||
|
|
950c0b3747 | ||
|
|
ad382fea25 | ||
|
|
a66e855ca7 | ||
|
|
a1b814d6b1 | ||
|
|
62030719bb | ||
|
|
985816dc32 | ||
|
|
a131a53132 | ||
|
|
c5e723b6ac | ||
|
|
3fe2b88e65 | ||
|
|
54603090ee | ||
|
|
2514b3681f | ||
|
|
0b7b101814 | ||
|
|
3ac1c622fd | ||
|
|
7878f6623c | ||
|
|
00ad38e5fe | ||
|
|
10ae0b0077 | ||
|
|
e032f3315d | ||
|
|
a38fd95a90 | ||
|
|
9f7609b2c6 | ||
|
|
a6c166ae0c | ||
|
|
e9c89b770f | ||
|
|
df6298bd63 | ||
|
|
739d285e36 | ||
|
|
ee1c931932 | ||
|
|
0806b6738f | ||
|
|
020e82d575 | ||
|
|
a20f2b588e | ||
|
|
631e721a96 | ||
|
|
8453e17c6c | ||
|
|
76c1e2abb3 | ||
|
|
3389f1c91b | ||
|
|
b2d47ae979 | ||
|
|
e2c615f310 | ||
|
|
e8492a4303 | ||
|
|
4695efaabd | ||
|
|
c433f42587 | ||
|
|
4708e59a43 | ||
|
|
d56ac6332a | ||
|
|
b054baf590 | ||
|
|
42f5e3467d | ||
|
|
97013ae89b | ||
|
|
2acead9118 | ||
|
|
a53a80acb4 | ||
|
|
56e62b1b4d | ||
|
|
c645db5ede | ||
|
|
ef6b9c3783 | ||
|
|
019bee26cb | ||
|
|
152cd4090b | ||
|
|
b7fc2b5776 | ||
|
|
723aba9b7c | ||
|
|
8a5b88338b | ||
|
|
7236441e02 | ||
|
|
e4bab0dda4 | ||
|
|
5b7d4a07ec | ||
|
|
8c3d2c4003 | ||
|
|
f485d607ff | ||
|
|
a0effa5f0b | ||
|
|
7d501cda6f | ||
|
|
5d7f55c8d5 | ||
|
|
097bf92bea | ||
|
|
b9dea59206 | ||
|
|
46aa144b65 | ||
|
|
914971308d | ||
|
|
a22e81040f | ||
|
|
72f74f03cf | ||
|
|
d0e45e727e | ||
|
|
ce2b2e80da | ||
|
|
11771b7d3d | ||
|
|
01cb028532 | ||
|
|
58b6f43b9c | ||
|
|
1dedb667e8 | ||
|
|
8a96236788 | ||
|
|
2a13163659 | ||
|
|
336a9684d4 | ||
|
|
86945c6e18 | ||
|
|
684280db5e | ||
|
|
d801408933 | ||
|
|
79b3da3820 | ||
|
|
ed021d3f46 | ||
|
|
27d0fda280 | ||
|
|
ef12da4ec6 | ||
|
|
7b098e95ad | ||
|
|
7d13f4b09e | ||
|
|
cecdfe6ade | ||
|
|
216bbd6378 | ||
|
|
30e2e9c633 | ||
|
|
bf2aabd610 | ||
|
|
c019221d15 | ||
|
|
b7bd6faf07 | ||
|
|
80d58220fe | ||
|
|
cd8624e176 | ||
|
|
8515fb7ddd | ||
|
|
84f9f4ae0a | ||
|
|
e201ebcfa4 | ||
|
|
4e15c3ec35 | ||
|
|
1adccf9b1f | ||
|
|
a1aa5c2ad9 | ||
|
|
1e0d650737 | ||
|
|
553d092ca8 | ||
|
|
dc62841517 | ||
|
|
326e7bfc53 | ||
|
|
b9dc7c16ad | ||
|
|
abd54b016b | ||
|
|
db02b54067 | ||
|
|
40a78dfbbb | ||
|
|
c860b46baa | ||
|
|
1458ba8856 | ||
|
|
7b9b6ebc96 | ||
|
|
7ee4073c7a | ||
|
|
8c072cd9b6 | ||
|
|
b794a45c3f | ||
|
|
98e491ed1d | ||
|
|
c397cc06da | ||
|
|
8616236b3c | ||
|
|
702704af1a | ||
|
|
a0d1b19050 | ||
|
|
a5c8ae491c | ||
|
|
b3cf741d15 | ||
|
|
0b28dde9c7 | ||
|
|
5a3980b5b8 | ||
|
|
a8e33118d6 | ||
|
|
2223277f64 | ||
|
|
c72413e3c1 | ||
|
|
fa1033db6f | ||
|
|
61e3edd2ac | ||
|
|
093c97ff91 | ||
|
|
6e64b175aa | ||
|
|
09dba4bc94 | ||
|
|
2e443ac5b7 | ||
|
|
59a8c88178 | ||
|
|
40eab03d84 | ||
|
|
e993bf59cf | ||
|
|
c6de5a2c8f | ||
|
|
51cc939d0c | ||
|
|
c857192e6d | ||
|
|
4591c2b181 | ||
|
|
7843a1b2ba | ||
|
|
649481cf01 | ||
|
|
c253bdfcbe | ||
|
|
1910808fd7 | ||
|
|
1d8cb9749e | ||
|
|
e3f9380fcd | ||
|
|
326c3f59b0 | ||
|
|
03f1c5a047 | ||
|
|
02122491c3 | ||
|
|
735f6f5686 | ||
|
|
ac033d75c0 | ||
|
|
e2185e773a | ||
|
|
d9ae417e01 | ||
|
|
e1d0948538 | ||
|
|
357ddf285a | ||
|
|
41859fc484 | ||
|
|
07275e71b0 | ||
|
|
f68521cb95 | ||
|
|
526610bdd2 | ||
|
|
973e3448ae | ||
|
|
9a3f28f6fc | ||
|
|
a3e32d2dc4 | ||
|
|
a8b78eff00 | ||
|
|
460db83298 | ||
|
|
4560712778 | ||
|
|
ce8803dde9 | ||
|
|
60ca5d45e3 | ||
|
|
4454613d00 | ||
|
|
0704808500 | ||
|
|
166b1ac499 | ||
|
|
e33bf4e80a | ||
|
|
b3af44d212 | ||
|
|
1e753d5209 | ||
|
|
4bf31005ea | ||
|
|
7c86bc910a | ||
|
|
4f146a99a9 | ||
|
|
a6a638e0e6 | ||
|
|
325814f5e1 | ||
|
|
5c4ea7d09e | ||
|
|
2bf73987ac | ||
|
|
3e9eeea8dc | ||
|
|
d164d72c1c | ||
|
|
632cee62d9 | ||
|
|
7a40260f0d | ||
|
|
09f043b3de | ||
|
|
c0341c8ba3 | ||
|
|
850c717803 | ||
|
|
f13f9e18bd | ||
|
|
8bdca0d684 | ||
|
|
129bf5612e | ||
|
|
829962fae1 | ||
|
|
c5f9ed8541 | ||
|
|
4a7cef4644 | ||
|
|
0e010b56ec | ||
|
|
ee179ee2f5 | ||
|
|
e28712cef3 | ||
|
|
8f0a2a7e79 | ||
|
|
ef23bba77f | ||
|
|
602086ae2d | ||
|
|
f5a170acbd | ||
|
|
8125b96f0b | ||
|
|
0bb7d89bb9 | ||
|
|
eb109bbbc0 | ||
|
|
1a0809fd31 | ||
|
|
09625b9d68 | ||
|
|
4e164c4268 | ||
|
|
691185f22c | ||
|
|
a8bfb41a9e | ||
|
|
fafb30db05 | ||
|
|
243e816523 | ||
|
|
b49c0f52bd | ||
|
|
07fca94a7f | ||
|
|
73917ee537 | ||
|
|
76f9edecf6 | ||
|
|
d77d9854d2 | ||
|
|
c2b53f95a4 | ||
|
|
caef8b80d6 | ||
|
|
5e016768af | ||
|
|
ee08ce98d7 | ||
|
|
581bd95838 | ||
|
|
bb92dab1ab | ||
|
|
83b5c52c76 | ||
|
|
93eca25141 | ||
|
|
34421cb10e | ||
|
|
29b87898aa | ||
|
|
e9e4db94bd | ||
|
|
c95ad0261a | ||
|
|
7fef456483 | ||
|
|
386131e74d | ||
|
|
824d3c88f1 | ||
|
|
18a206abd2 | ||
|
|
8dbae776c9 | ||
|
|
b78702cc53 | ||
|
|
d2b43605ad | ||
|
|
7728e09337 | ||
|
|
2666353ce6 | ||
|
|
0b8a306483 | ||
|
|
b51a0b2d08 | ||
|
|
959355b19c | ||
|
|
9c3f0f1994 | ||
|
|
dac337a65b | ||
|
|
98739dfdbc | ||
|
|
17b7a1ea84 | ||
|
|
4d45925758 | ||
|
|
8cadb23f48 | ||
|
|
63211b65c2 | ||
|
|
1be84525b1 | ||
|
|
67ae95a464 | ||
|
|
c03a95ad94 | ||
|
|
51aa7aecb9 | ||
|
|
592cfe5a20 | ||
|
|
b4cf15e73e | ||
|
|
862e143372 | ||
|
|
1f10ca49ad | ||
|
|
4a0c4ffdca | ||
|
|
27c8737f3a | ||
|
|
ecf45fc453 | ||
|
|
0a1178cfd7 | ||
|
|
20a35dc627 | ||
|
|
79887c06f0 | ||
|
|
f7ff424904 | ||
|
|
6678721fe3 | ||
|
|
496302097b | ||
|
|
fe3e2b9a20 | ||
|
|
400a6b066f | ||
|
|
76d181e7fc | ||
|
|
77373eed2d | ||
|
|
6b52be388f | ||
|
|
0518a12a91 | ||
|
|
362a02c4b8 | ||
|
|
3e3a0cde47 | ||
|
|
c16f93effd | ||
|
|
61b27c02b5 | ||
|
|
ba28eaad53 | ||
|
|
92c2d0cc9f | ||
|
|
21d5e8a095 | ||
|
|
60417d68a7 | ||
|
|
7d25387403 | ||
|
|
b454cf5b20 | ||
|
|
9ea6385b72 | ||
|
|
55b7908444 | ||
|
|
e9ff66478b | ||
|
|
d3240d711d | ||
|
|
a8d63a4199 | ||
|
|
a4807a21c3 | ||
|
|
a394ef53a0 | ||
|
|
eb8243743a | ||
|
|
8444bb15c5 |
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
@@ -1,2 +0,0 @@
|
|||||||
|
|
||||||
liberapay: dskoll
|
|
||||||
7
.github/README.md
vendored
7
.github/README.md
vendored
@@ -1,7 +0,0 @@
|
|||||||
# Remind has moved
|
|
||||||
|
|
||||||
For various reasons, I have decided to move Remind off GitHub. This repo
|
|
||||||
will be archived. To create merge requests or issues, please visit
|
|
||||||
Remind's new home at https://salsa.debian.org/dskoll/remind
|
|
||||||
|
|
||||||
-- Dianne Skoll
|
|
||||||
29
.github/workflows/github-action.yml
vendored
29
.github/workflows/github-action.yml
vendored
@@ -1,29 +0,0 @@
|
|||||||
# language: bash
|
|
||||||
---
|
|
||||||
|
|
||||||
name: Remind unit tests
|
|
||||||
|
|
||||||
on:
|
|
||||||
push
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
tests:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Remind
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
- name: Add test user
|
|
||||||
run: |
|
|
||||||
sudo adduser --home /home/testuser --gecos 'Test User' --disabled-password testuser
|
|
||||||
- name: Fix ownership
|
|
||||||
run: |
|
|
||||||
sudo chown -R testuser .
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
sudo su -c './configure && make' testuser
|
|
||||||
- name: Run Tests
|
|
||||||
run: |
|
|
||||||
sudo su -c 'make test' testuser
|
|
||||||
- name: Fix up permissions so GitHub does not complain
|
|
||||||
run: |
|
|
||||||
sudo chmod -R a+rwX .
|
|
||||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -4,12 +4,12 @@
|
|||||||
.gitignore
|
.gitignore
|
||||||
MYMETA.json
|
MYMETA.json
|
||||||
MYMETA.yml
|
MYMETA.yml
|
||||||
Makefile
|
|
||||||
TAGS
|
TAGS
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
blib/
|
blib/
|
||||||
config.log
|
config.log
|
||||||
config.status
|
config.status
|
||||||
|
gmon.out
|
||||||
man/rem.1
|
man/rem.1
|
||||||
man/rem2ps.1
|
man/rem2ps.1
|
||||||
man/remind.1
|
man/remind.1
|
||||||
@@ -18,11 +18,12 @@ pm_to_blib
|
|||||||
rem2html/Makefile
|
rem2html/Makefile
|
||||||
rem2html/rem2html
|
rem2html/rem2html
|
||||||
rem2html/rem2html.1
|
rem2html/rem2html.1
|
||||||
|
rem2pdf/Makefile
|
||||||
rem2pdf/Makefile.PL
|
rem2pdf/Makefile.PL
|
||||||
rem2pdf/Makefile.old
|
rem2pdf/Makefile.old
|
||||||
rem2pdf/Makefile.top
|
rem2pdf/Makefile.top
|
||||||
rem2pdf/bin/rem2pdf
|
rem2pdf/bin/rem2pdf
|
||||||
set-irc-topic
|
scripts/tkremind
|
||||||
src/*.tar.gz*
|
src/*.tar.gz*
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/config.h
|
src/config.h
|
||||||
@@ -30,6 +31,8 @@ src/rem2ps
|
|||||||
src/remind
|
src/remind
|
||||||
src/test-*.out
|
src/test-*.out
|
||||||
src/version.h
|
src/version.h
|
||||||
|
src/xlat.c
|
||||||
|
tests/once.timestamp
|
||||||
tests/test.out
|
tests/test.out
|
||||||
|
tests/tz.out
|
||||||
www/Makefile
|
www/Makefile
|
||||||
gmon.out
|
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
workflow:
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_BRANCH =~ /wip/
|
||||||
|
when: never
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
image: 'debian:stable-slim'
|
image: 'debian:stable-slim'
|
||||||
before_script:
|
before_script:
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ THE REMIND COPYRIGHT
|
|||||||
1. REMIND refers to the entire set of files and documentation in the
|
1. REMIND refers to the entire set of files and documentation in the
|
||||||
REMIND package.
|
REMIND package.
|
||||||
|
|
||||||
2. REMIND is Copyright 1992-2024 Dianne Skoll, except where noted in
|
2. REMIND is Copyright (C) 1992-2025 Dianne Skoll, except where noted in
|
||||||
individual files.
|
individual files.
|
||||||
|
|
||||||
3. DISTRIBUTION AND USE
|
3. DISTRIBUTION AND USE
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
MICROSOFT WINDOWS
|
|
||||||
=================
|
|
||||||
|
|
||||||
I used to prohibit porting Remind to Microsoft Windows. However, this
|
|
||||||
may cause problems with the GPL, so I have removed that restriction.
|
|
||||||
|
|
||||||
Although I cannot prevent you from porting Remind to Windows, I appeal
|
|
||||||
to you not to do it. I am trying to encourage the growth of free
|
|
||||||
software, not proprietary software.
|
|
||||||
|
|
||||||
If you port Remind to Windows, I will not provide support or answers to
|
|
||||||
questions -- you're on your own. On the other hand, I will feel no guilt
|
|
||||||
in taking enhancements and merging them into the UNIX stream.
|
|
||||||
|
|
||||||
APPLE
|
|
||||||
=====
|
|
||||||
|
|
||||||
I can't prevent you from using Remind on Apple's products, but I hope
|
|
||||||
you don't. Apple's corporate culture is the very antithesis of Free
|
|
||||||
Software. Rather than using Mac OS X, I encourage you to switch to
|
|
||||||
Linux or FreeBSD, two Free Software operating systems that are every
|
|
||||||
bit as capable as Mac OS X and which are unencumbered by Apple's
|
|
||||||
arbitrary restrictions.
|
|
||||||
|
|
||||||
And if you're looking to port Remind to other Apple products like the
|
|
||||||
iPhone or iPad, please don't. Those products enforce Apple's rigorous
|
|
||||||
controls much more stringently than Mac OS X on an Apple PC.
|
|
||||||
|
|
||||||
--
|
|
||||||
Dianne Skoll
|
|
||||||
21
Makefile
21
Makefile
@@ -23,8 +23,7 @@ install:
|
|||||||
@$(MAKE) -C rem2html install
|
@$(MAKE) -C rem2html install
|
||||||
@$(MAKE) -C rem2pdf -f Makefile.top install INSTALL_BASE=$(INSTALL_BASE)
|
@$(MAKE) -C rem2pdf -f Makefile.top install INSTALL_BASE=$(INSTALL_BASE)
|
||||||
clean:
|
clean:
|
||||||
find . -name '*~' -exec rm {} \;
|
-find . -name '*~' -exec rm {} \;
|
||||||
-rm man/rem.1 man/rem2ps.1 man/remind.1 man/tkremind.1
|
|
||||||
-$(MAKE) -C src clean
|
-$(MAKE) -C src clean
|
||||||
-$(MAKE) -C rem2pdf clean
|
-$(MAKE) -C rem2pdf clean
|
||||||
|
|
||||||
@@ -40,11 +39,23 @@ install-stripped:
|
|||||||
@$(MAKE) -C rem2html install
|
@$(MAKE) -C rem2html install
|
||||||
@$(MAKE) -C rem2pdf -f Makefile.top install INSTALL_BASE=$(INSTALL_BASE)
|
@$(MAKE) -C rem2pdf -f Makefile.top install INSTALL_BASE=$(INSTALL_BASE)
|
||||||
|
|
||||||
test:
|
test: test-basic test-tz
|
||||||
@$(MAKE) -C src -s test
|
|
||||||
|
test-tz:
|
||||||
|
@$(MAKE) -C src -s all
|
||||||
|
@$(MAKE) -C src -s test-tz
|
||||||
|
|
||||||
|
test-basic:
|
||||||
|
@$(MAKE) -C src -s all
|
||||||
|
@$(MAKE) -C src -s test-basic
|
||||||
|
|
||||||
|
cppcheck:
|
||||||
|
@$(MAKE) -C src cppcheck
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f config.cache config.log config.status src/Makefile src/config.h tests/test.out www/Makefile rem2pdf/Makefile.top rem2pdf/Makefile.old rem2pdf/Makefile rem2pdf/Makefile.PL rem2pdf/bin/rem2pdf rem2html/rem2html
|
-rm -f config.cache config.log config.status src/Makefile src/version.h src/config.h tests/test.out tests/tz.out www/Makefile rem2pdf/Makefile.top rem2pdf/Makefile.old rem2pdf/Makefile rem2pdf/Makefile.PL rem2pdf/bin/rem2pdf rem2html/rem2html
|
||||||
|
-rm -f man/rem.1 man/rem2ps.1 man/remind.1 man/tkremind.1 scripts/tkremind
|
||||||
|
-rm -rf autom4te.cache rem2html/Makefile rem2html/rem2html.1
|
||||||
|
|
||||||
src/Makefile: src/Makefile.in
|
src/Makefile: src/Makefile.in
|
||||||
./configure
|
./configure
|
||||||
|
|||||||
78
README
78
README
@@ -1,78 +0,0 @@
|
|||||||
REMIND
|
|
||||||
|
|
||||||
Remind is a full-featured calendar/alarm program. Copying policy is
|
|
||||||
in the file "COPYRIGHT" in this directory.
|
|
||||||
|
|
||||||
Installation notes for various operating systems are in "docs". See
|
|
||||||
the appropriate README file for installation on your system.
|
|
||||||
|
|
||||||
Manual pages are in "man".
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Quick UNIX installation instructions for the very impatient:
|
|
||||||
|
|
||||||
If you have Tcl/Tk (wish 4.1 or higher) installed and are running X Windows:
|
|
||||||
--------------------------------------------------------------
|
|
||||||
|
|
||||||
1) Type: wish ./build.tk from this directory. Fill in the various
|
|
||||||
options and hit "Build Remind"
|
|
||||||
|
|
||||||
2) Type: "make install" -- you may need to be root to do this.
|
|
||||||
|
|
||||||
If you do NOT have Tcl/Tk or are NOT running X Windows:
|
|
||||||
-------------------------------------------------------
|
|
||||||
|
|
||||||
1) Edit the file "src/custom.h" according to your preferences.
|
|
||||||
|
|
||||||
2) Edit the file "src/lang.h" to choose a language.
|
|
||||||
|
|
||||||
3) Type: "./configure" (You can supply options; type "./configure --help"
|
|
||||||
for details.)
|
|
||||||
|
|
||||||
4) Type: "make"
|
|
||||||
|
|
||||||
5) Type: "make install" -- you may need to be root to do this.
|
|
||||||
|
|
||||||
PREREQUISITES:
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Remind and rem2ps have no prerequisites beyond the standard C library and
|
|
||||||
the standard math library.
|
|
||||||
|
|
||||||
Rem2HTML requires the JSON::MaybeXS Perl module.
|
|
||||||
Rem2PDF requires the JSON::MaybeXS, Pango and Cairo Perl modules.
|
|
||||||
|
|
||||||
- On Debian-like systems, these prerequisites may be installed with:
|
|
||||||
|
|
||||||
apt install libjson-maybexs-perl libpango-perl libcairo-perl
|
|
||||||
|
|
||||||
- On RPM-based systems, you need perl-Pango, perl-Cairo and perl-JSON-MaybeXS
|
|
||||||
|
|
||||||
- On Gentoo, you need dev-perl/Pango, dev-perl/Cairo and dev-perl/JSON-MaybeXS.
|
|
||||||
|
|
||||||
- On Arch linux, you need pango-perl, cairo-perl and perl-json-maybexs
|
|
||||||
|
|
||||||
TkRemind requires Tcl/Tk and the tcllib library.
|
|
||||||
|
|
||||||
- On Debian-like systems, install with:
|
|
||||||
|
|
||||||
apt install tcl tk tcllib
|
|
||||||
|
|
||||||
- On RPM-based systems, you need tcl, tk and tcllib
|
|
||||||
|
|
||||||
- On Arch Linux, you need tk and tcllib. The latter is available at
|
|
||||||
https://aur.archlinux.org/packages/tcllib
|
|
||||||
|
|
||||||
If the little arrows for "Previous Month" and "Next Month" do not display
|
|
||||||
correctly in TkRemind, you may need to install the Noto Fonts. Install
|
|
||||||
all of your distribution's Nonto Font-related packages.
|
|
||||||
|
|
||||||
- On Debian-like systems, install with:
|
|
||||||
|
|
||||||
apt install fonts-noto-core fonts-noto-color-emoji \
|
|
||||||
fonts-noto-extra fonts-noto-ui-core fonts-noto-ui-extra
|
|
||||||
|
|
||||||
==========================================================================
|
|
||||||
Contact info: mailto:dianne@skoll.ca
|
|
||||||
Home page: https://dianne.skoll.ca/projects/remind/
|
|
||||||
110
README.md
Normal file
110
README.md
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
# REMIND
|
||||||
|
|
||||||
|
Remind is a full-featured calendar/alarm program. Copying policy is
|
||||||
|
in the file "COPYRIGHT" included with the source; Remind is licensed under
|
||||||
|
the GNU General Public License, Vesion 2.
|
||||||
|
|
||||||
|
## Prerequisites:
|
||||||
|
|
||||||
|
### Remind and Rem2PS
|
||||||
|
|
||||||
|
**remind** and **rem2ps** have no prerequisites beyond the standard C
|
||||||
|
library and the standard math library. **remind** will make use of
|
||||||
|
GNU Readline if you have it installed.
|
||||||
|
|
||||||
|
- On Debian-like systems, install GNU Readline as follows:
|
||||||
|
|
||||||
|
`apt install libreadline-dev`
|
||||||
|
|
||||||
|
- On RPM-based systems, you need `readline-devel`
|
||||||
|
|
||||||
|
### Rem2HTML and Rem2PDF
|
||||||
|
|
||||||
|
**rem2html** requires the JSON::MaybeXS Perl module and **rem2pdf**
|
||||||
|
requires the JSON::MaybeXS, Pango and Cairo Perl modules.
|
||||||
|
|
||||||
|
- On Debian-like systems, these prerequisites may be installed with:
|
||||||
|
|
||||||
|
`apt install libjson-maybexs-perl libpango-perl libcairo-perl`
|
||||||
|
|
||||||
|
- On RPM-based systems, you need `perl-Pango`, `perl-Cairo` and
|
||||||
|
`perl-JSON-MaybeXS`
|
||||||
|
|
||||||
|
- On Gentoo, you need `dev-perl/Pango`, `dev-perl/Cairo` and
|
||||||
|
`dev-perl/JSON-MaybeXS`.
|
||||||
|
|
||||||
|
- On Arch linux, you need `pango-perl`, `cairo-perl` and `perl-json-maybexs`
|
||||||
|
|
||||||
|
### TkRemind
|
||||||
|
|
||||||
|
**tkremind** requires Tcl/Tk and the tcllib library.
|
||||||
|
|
||||||
|
- On Debian-like systems, install with:
|
||||||
|
|
||||||
|
`apt install tcl tk tcllib`
|
||||||
|
|
||||||
|
- On RPM-based systems, you need `tcl`, `tk` and `tcllib`
|
||||||
|
|
||||||
|
- On Arch Linux, you need `tk` and `tcllib`. The latter is available at
|
||||||
|
https://aur.archlinux.org/packages/tcllib
|
||||||
|
|
||||||
|
If the little arrows for "Previous Month" and "Next Month" do not display
|
||||||
|
correctly in TkRemind, you may need to install the Noto Fonts. Install
|
||||||
|
all of your distribution's Noto Font-related packages.
|
||||||
|
|
||||||
|
- On Debian-like systems, install with:
|
||||||
|
|
||||||
|
`apt install fonts-noto-core fonts-noto-color-emoji fonts-noto-extra fonts-noto-ui-core fonts-noto-ui-extra`
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Assuming you have a normal C development environment installed, Remind
|
||||||
|
can be installed with the usual:
|
||||||
|
|
||||||
|
`./configure && make && make test && sudo make install`
|
||||||
|
|
||||||
|
You can edit custom.h to configure some aspects of Remind. Or, if
|
||||||
|
you have Tcl/Tk installed, you can use the graphical build tool to
|
||||||
|
edit custom.h on your behalf:
|
||||||
|
|
||||||
|
`wish ./build.tk`
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Remind is a large and complex program. You can read the full manual page
|
||||||
|
with:
|
||||||
|
|
||||||
|
`man remind`
|
||||||
|
|
||||||
|
after installation. However, the man page is long and detailed and is
|
||||||
|
more of a reference than an introduction. You can get an overview
|
||||||
|
with a [slide deck](https://dianne.skoll.ca/projects/remind/download/remind-oclug.pdf)
|
||||||
|
I made a while back. There's also a (long) [YouTube video](https://www.youtube.com/watch?v=0SNgvsDvx7M) that serves as an
|
||||||
|
introduction to Remind.
|
||||||
|
|
||||||
|
## A Note about AI
|
||||||
|
|
||||||
|
1. No part of Remind was written using AI of any type.<br><br>
|
||||||
|
I certify that all of the C, Perl and Tcl code in Remind was written
|
||||||
|
by a human being. I certify that all code in `.rem` files other than
|
||||||
|
ones under `include/holidays` was written by a human being. The code
|
||||||
|
under `include/holidays` was derived from the Python "holidays" library
|
||||||
|
and I have no direct knowledge of the provenance of that library,
|
||||||
|
though I suspect it's entirely or almost entirely human-written.
|
||||||
|
|
||||||
|
2. No AI-generated patches or other sorts of contributions to Remind
|
||||||
|
will be accepted.
|
||||||
|
|
||||||
|
3. Remind's source code may not be used to train an AI model,
|
||||||
|
including an LLM model, unless all of the output of said model is
|
||||||
|
released under the GNU General Public License, version 2. If you use
|
||||||
|
any of Remind's source code to train your model, then anything that
|
||||||
|
the model produces is a derived product of Remind and must be licensed
|
||||||
|
under the same terms as Remind.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Contact info: dianne@skoll.ca
|
||||||
|
|
||||||
|
Home page: [https://dianne.skoll.ca/projects/remind/](https://dianne.skoll.ca/projects/remind/)
|
||||||
|
|
||||||
84
build.tk
84
build.tk
@@ -8,13 +8,15 @@
|
|||||||
# A cheesy graphical front-end for building and installing REMIND.
|
# A cheesy graphical front-end for building and installing REMIND.
|
||||||
#
|
#
|
||||||
# This file is part of REMIND.
|
# This file is part of REMIND.
|
||||||
# Copyright (C) 1992-2018 Dianne Skoll
|
# Copyright (C) 1992-2025 Dianne Skoll
|
||||||
#
|
#
|
||||||
#--------------------------------------------------------------
|
#--------------------------------------------------------------
|
||||||
|
|
||||||
# the next line restarts using wish \
|
# the next line restarts using wish \
|
||||||
exec wish "$0" "$@"
|
exec wish "$0" "$@"
|
||||||
|
|
||||||
|
global RemindExecutable
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# %PROCEDURE: SetConfigDefaults
|
# %PROCEDURE: SetConfigDefaults
|
||||||
# %ARGUMENTS:
|
# %ARGUMENTS:
|
||||||
@@ -38,9 +40,8 @@ proc SetConfigDefaults {} {
|
|||||||
set Config(TIMESEP) ":"
|
set Config(TIMESEP) ":"
|
||||||
set Config(NORTHERN_HEMISPHERE) 1
|
set Config(NORTHERN_HEMISPHERE) 1
|
||||||
set Config(WESTERN_HEMISPHERE) 1
|
set Config(WESTERN_HEMISPHERE) 1
|
||||||
set Config(LANGUAGE) "English"
|
|
||||||
set Config(INST_DIR) "/usr/local/bin"
|
set Config(INST_DIR) "/usr/local/bin"
|
||||||
set Config(MAN_DIR) "/usr/local/man"
|
set Config(MAN_DIR) "/usr/local/share/man"
|
||||||
}
|
}
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
@@ -124,7 +125,7 @@ proc CreateMainDialog {} {
|
|||||||
# Creates the "installation directories" dialog.
|
# Creates the "installation directories" dialog.
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc CreateInstallDirDialog { w } {
|
proc CreateInstallDirDialog { w } {
|
||||||
global Config
|
global Config RemindExecutable
|
||||||
label $w.binlabel -text "Location for programs: "
|
label $w.binlabel -text "Location for programs: "
|
||||||
entry $w.bin -width 30
|
entry $w.bin -width 30
|
||||||
$w.bin insert end $Config(INST_DIR)
|
$w.bin insert end $Config(INST_DIR)
|
||||||
@@ -133,16 +134,19 @@ proc CreateInstallDirDialog { w } {
|
|||||||
entry $w.man -width 30
|
entry $w.man -width 30
|
||||||
$w.man insert end $Config(MAN_DIR)
|
$w.man insert end $Config(MAN_DIR)
|
||||||
|
|
||||||
text $w.blurb -width 1 -height 5 -wrap word -relief flat -takefocus 0
|
text $w.blurb -width 1 -height 20 -wrap word -relief flat -takefocus 0
|
||||||
$w.blurb insert end "\n(Tabbed-notebook Tcl code taken from \"Effective Tcl/Tk Programming\" by Mark Harrison and Michael McLennan, Addison-Wesley Professional Computing Series.)"
|
if { "$RemindExecutable" != "" } {
|
||||||
$w.blurb configure -state disabled
|
$w.blurb insert end "Note: Default settings were obtained by querying the existing installed version of Remind found at: $RemindExecutable\n"
|
||||||
# Disable all text-window behaviour
|
}
|
||||||
bindtags $w.blurb {NoSuchTag}
|
$w.blurb insert end "\n(Tabbed-notebook Tcl code taken from \"Effective Tcl/Tk Programming\" by Mark Harrison and Michael McLennan, Addison-Wesley Professional Computing Series.)\n"
|
||||||
grid $w.binlabel -row 0 -column 0 -sticky e
|
grid $w.binlabel -row 0 -column 0 -sticky e
|
||||||
grid $w.bin -row 0 -column 1 -sticky nsew
|
grid $w.bin -row 0 -column 1 -sticky nsew
|
||||||
grid $w.manlabel -row 1 -column 0 -sticky e
|
grid $w.manlabel -row 1 -column 0 -sticky e
|
||||||
grid $w.man -row 1 -column 1 -sticky nsew
|
grid $w.man -row 1 -column 1 -sticky nsew
|
||||||
grid $w.blurb - -sticky nsew
|
grid $w.blurb - -sticky nsew
|
||||||
|
# Disable all text-window behaviour
|
||||||
|
bindtags $w.blurb {NoSuchTag}
|
||||||
|
$w.blurb configure -state disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
@@ -237,32 +241,6 @@ proc CreateOptionsDialog { w } {
|
|||||||
|
|
||||||
grid configure $w.timelabel -row 2 -column 0 -sticky e
|
grid configure $w.timelabel -row 2 -column 0 -sticky e
|
||||||
grid configure $w.time -row 2 -column 1 -sticky nsew
|
grid configure $w.time -row 2 -column 1 -sticky nsew
|
||||||
|
|
||||||
label $w.langlabel -text "Language: "
|
|
||||||
menubutton $w.lang -text $Config(LANGUAGE) -indicatoron 1 -relief raised \
|
|
||||||
-menu $w.lang.menu
|
|
||||||
menu $w.lang.menu -tearoff 0
|
|
||||||
foreach lang {
|
|
||||||
"Brazilian Portuguese"
|
|
||||||
"Danish"
|
|
||||||
"Dutch"
|
|
||||||
"English"
|
|
||||||
"Finnish"
|
|
||||||
"French"
|
|
||||||
"German"
|
|
||||||
"Italian"
|
|
||||||
"Norwegian"
|
|
||||||
"Polish"
|
|
||||||
"Romanian"
|
|
||||||
"Spanish"
|
|
||||||
"Icelandic"
|
|
||||||
} {
|
|
||||||
$w.lang.menu add command -label $lang -command [list $w.lang configure -text $lang]
|
|
||||||
}
|
|
||||||
|
|
||||||
grid configure $w.langlabel -row 3 -column 0 -sticky e
|
|
||||||
grid configure $w.lang -row 3 -column 1 -sticky nsew
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
@@ -486,32 +464,16 @@ proc CreateCustomH {} {
|
|||||||
# %RETURNS:
|
# %RETURNS:
|
||||||
# Nothing
|
# Nothing
|
||||||
# %DESCRIPTION:
|
# %DESCRIPTION:
|
||||||
# Runs "make" with appropriate language definitions
|
# Runs "make"
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc CallMake {} {
|
proc CallMake {} {
|
||||||
global Options
|
global Options
|
||||||
set lang [$Options.lang cget -text]
|
|
||||||
switch -- $lang {
|
|
||||||
"German" { set lang GERMAN }
|
|
||||||
"Dutch" { set lang DUTCH }
|
|
||||||
"Finnish" { set lang FINNISH }
|
|
||||||
"French" { set lang FRENCH }
|
|
||||||
"Norwegian" { set lang NORWEGIAN }
|
|
||||||
"Danish" { set lang DANISH }
|
|
||||||
"Polish" { set lang POLISH }
|
|
||||||
"Brazilian Portuguese" { set lang BRAZPORT }
|
|
||||||
"Italian" { set lang ITALIAN }
|
|
||||||
"Romanian" { set lang ROMANIAN }
|
|
||||||
"Spanish" { set lang SPANISH }
|
|
||||||
"Icelandic" { set lang ICELANDIC }
|
|
||||||
default { set lang ENGLISH }
|
|
||||||
}
|
|
||||||
set nproc 0
|
set nproc 0
|
||||||
catch { set nproc [exec nproc] }
|
catch { set nproc [exec nproc] }
|
||||||
if { $nproc != 0 } {
|
if { $nproc != 0 } {
|
||||||
RunCommand "make -j $nproc \"LANGDEF=-DLANG=$lang\""
|
RunCommand "make -j $nproc"
|
||||||
} else {
|
} else {
|
||||||
RunCommand "make \"LANGDEF=-DLANG=$lang\""
|
RunCommand "make"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -525,7 +487,7 @@ proc CallMake {} {
|
|||||||
# Michael McLennan, Bell Labs Innovations for Lucent Technologies
|
# Michael McLennan, Bell Labs Innovations for Lucent Technologies
|
||||||
# Addison-Wesley Professional Computing Series
|
# Addison-Wesley Professional Computing Series
|
||||||
# ======================================================================
|
# ======================================================================
|
||||||
# Copyright (c) 1996-1997 Lucent Technologies Inc. and Mark Harrison
|
# Copyright (C) 1996-1997 Lucent Technologies Inc. and Mark Harrison
|
||||||
# ======================================================================
|
# ======================================================================
|
||||||
|
|
||||||
option add *Tabnotebook.tabs.background #666666 widgetDefault
|
option add *Tabnotebook.tabs.background #666666 widgetDefault
|
||||||
@@ -639,7 +601,7 @@ proc tabnotebook_display {win name} {
|
|||||||
# Michael McLennan, Bell Labs Innovations for Lucent Technologies
|
# Michael McLennan, Bell Labs Innovations for Lucent Technologies
|
||||||
# Addison-Wesley Professional Computing Series
|
# Addison-Wesley Professional Computing Series
|
||||||
# ======================================================================
|
# ======================================================================
|
||||||
# Copyright (c) 1996-1997 Lucent Technologies Inc. and Mark Harrison
|
# Copyright (C) 1996-1997 Lucent Technologies Inc. and Mark Harrison
|
||||||
# ======================================================================
|
# ======================================================================
|
||||||
|
|
||||||
option add *Notebook.borderWidth 2 widgetDefault
|
option add *Notebook.borderWidth 2 widgetDefault
|
||||||
@@ -727,7 +689,7 @@ proc notebook_fix_size {win} {
|
|||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc FindRemind {} {
|
proc FindRemind {} {
|
||||||
global env
|
global env
|
||||||
set path [concat [split $env(PATH) ":"] "/bin" "/usr/bin" "/usr/local/bin"]
|
set path [concat [split $env(PATH) ":"] "/usr/local/bin" "/bin" "/usr/bin" ]
|
||||||
foreach thing $path {
|
foreach thing $path {
|
||||||
if [file executable [file join $thing "remind"]] {
|
if [file executable [file join $thing "remind"]] {
|
||||||
return [file join $thing "remind"]
|
return [file join $thing "remind"]
|
||||||
@@ -745,16 +707,17 @@ proc FindRemind {} {
|
|||||||
# sensible defaults.
|
# sensible defaults.
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc SetConfigFromRemind {} {
|
proc SetConfigFromRemind {} {
|
||||||
global Config
|
global Config RemindExecutable
|
||||||
SetConfigDefaults
|
SetConfigDefaults
|
||||||
set rem [FindRemind]
|
set rem [FindRemind]
|
||||||
|
set RemindExecutable $rem
|
||||||
if {"$rem" == ""} {
|
if {"$rem" == ""} {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
set dir [file dirname $rem]
|
set dir [file dirname $rem]
|
||||||
set Config(INST_DIR) $dir
|
set Config(INST_DIR) $dir
|
||||||
if {"$dir" == "/usr/local/bin"} {
|
if {"$dir" == "/usr/local/bin"} {
|
||||||
set Config(MAN_DIR) "/usr/local/man"
|
set Config(MAN_DIR) "/usr/local/share/man"
|
||||||
} elseif {$dir == "/usr/bin"} {
|
} elseif {$dir == "/usr/bin"} {
|
||||||
set Config(MAN_DIR) "/usr/share/man"
|
set Config(MAN_DIR) "/usr/share/man"
|
||||||
}
|
}
|
||||||
@@ -764,6 +727,8 @@ proc SetConfigFromRemind {} {
|
|||||||
set Config(MAN_DIR) "/usr/share/man"
|
set Config(MAN_DIR) "/usr/share/man"
|
||||||
} elseif {[file readable "/usr/man/man1/remind.1"]} {
|
} elseif {[file readable "/usr/man/man1/remind.1"]} {
|
||||||
set Config(MAN_DIR) "/usr/man"
|
set Config(MAN_DIR) "/usr/man"
|
||||||
|
} elseif {[file readable "/usr/local/share/man/man1/remind.1"]} {
|
||||||
|
set Config(MAN_DIR) "/usr/local/share/man"
|
||||||
} elseif {[file readable "/usr/local/man/man1/remind.1"]} {
|
} elseif {[file readable "/usr/local/man/man1/remind.1"]} {
|
||||||
set Config(MAN_DIR) "/usr/local/man"
|
set Config(MAN_DIR) "/usr/local/man"
|
||||||
}
|
}
|
||||||
@@ -778,7 +743,6 @@ proc SetConfigFromRemind {} {
|
|||||||
QueryRemind $rem LOCATION {$Location}
|
QueryRemind $rem LOCATION {$Location}
|
||||||
QueryRemind $rem DATESEP {$DateSep}
|
QueryRemind $rem DATESEP {$DateSep}
|
||||||
QueryRemind $rem TIMESEP {$TimeSep}
|
QueryRemind $rem TIMESEP {$TimeSep}
|
||||||
QueryRemind $rem LANGUAGE {language()}
|
|
||||||
|
|
||||||
set $Config(LAT_MIN) [expr abs($Config(LAT_MIN))]
|
set $Config(LAT_MIN) [expr abs($Config(LAT_MIN))]
|
||||||
set $Config(LAT_SEC) [expr abs($Config(LAT_SEC))]
|
set $Config(LAT_SEC) [expr abs($Config(LAT_SEC))]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
AC_INIT
|
AC_INIT(remind, 06.01.02, , , https://dianne.skoll.ca/projects/remind/)
|
||||||
AC_CONFIG_SRCDIR([src/queue.c])
|
AC_CONFIG_SRCDIR([src/queue.c])
|
||||||
|
|
||||||
cat <<'EOF'
|
cat <<'EOF'
|
||||||
@@ -30,7 +30,8 @@ AC_PATH_PROG([PERL], [perl])
|
|||||||
|
|
||||||
dnl Checks for libraries.
|
dnl Checks for libraries.
|
||||||
AC_CHECK_LIB(m, sqrt)
|
AC_CHECK_LIB(m, sqrt)
|
||||||
AC_CHECK_HEADERS_ONCE([sys/time.h])
|
AC_CHECK_LIB(readline, readline)
|
||||||
|
AC_CHECK_HEADERS_ONCE([sys/time.h stdint.h readline/readline.h readline/history.h])
|
||||||
|
|
||||||
dnl Integer sizes
|
dnl Integer sizes
|
||||||
AC_CHECK_SIZEOF(unsigned int)
|
AC_CHECK_SIZEOF(unsigned int)
|
||||||
@@ -38,13 +39,11 @@ AC_CHECK_SIZEOF(unsigned long)
|
|||||||
AC_CHECK_SIZEOF(time_t)
|
AC_CHECK_SIZEOF(time_t)
|
||||||
|
|
||||||
dnl Checks for header files.
|
dnl Checks for header files.
|
||||||
AC_CHECK_HEADERS(sys/types.h glob.h wctype.h locale.h langinfo.h sys/inotify.h)
|
AC_CHECK_HEADERS(strings.h sys/types.h glob.h wctype.h locale.h langinfo.h sys/inotify.h)
|
||||||
|
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||||
AC_STRUCT_TM
|
AC_STRUCT_TM
|
||||||
|
|
||||||
dnl Checks for library functions.
|
|
||||||
AC_FUNC_UTIME_NULL
|
|
||||||
if test "$GCC" = yes; then
|
if test "$GCC" = yes; then
|
||||||
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes"
|
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes"
|
||||||
# Check for link-time optimization support
|
# Check for link-time optimization support
|
||||||
@@ -86,13 +85,18 @@ if test "$?" != 0 ; then
|
|||||||
echo "*** COULD NOT DETERMINE RELEASE DATE: docs/WHATSNEW is incorrect!"
|
echo "*** COULD NOT DETERMINE RELEASE DATE: docs/WHATSNEW is incorrect!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
AC_CHECK_FUNCS(setenv unsetenv glob mbstowcs setlocale initgroups inotify_init1)
|
AC_CHECK_FUNCS(strdup strcasecmp strncasecmp setenv unsetenv glob mbstowcs setlocale initgroups inotify_init1 readline)
|
||||||
|
|
||||||
VERSION=04.03.04
|
VERSION=$PACKAGE_VERSION
|
||||||
|
CONFIG_CMD="$0$ac_configure_args_raw"
|
||||||
|
CONFIG_CMD=`echo "$CONFIG_CMD" | sed -e 's/"/\\\\"/g'`
|
||||||
|
AC_DEFINE_UNQUOTED([CONFIG_CMD], ["$CONFIG_CMD"], [Configuration command used to build Remind])
|
||||||
|
AC_SUBST(CONFIG_CMD)
|
||||||
AC_SUBST(VERSION)
|
AC_SUBST(VERSION)
|
||||||
AC_SUBST(PERL)
|
AC_SUBST(PERL)
|
||||||
AC_SUBST(PERLARTIFACTS)
|
AC_SUBST(PERLARTIFACTS)
|
||||||
AC_SUBST(RELEASE_DATE)
|
AC_SUBST(RELEASE_DATE)
|
||||||
AC_CONFIG_FILES([src/Makefile www/Makefile src/version.h rem2html/Makefile rem2html/rem2html rem2pdf/Makefile.PL rem2pdf/Makefile.top rem2pdf/bin/rem2pdf man/rem.1 man/rem2ps.1 man/remind.1 man/tkremind.1])
|
AC_CONFIG_FILES([src/Makefile www/Makefile src/version.h rem2html/Makefile rem2html/rem2html rem2pdf/Makefile.PL rem2pdf/Makefile.top rem2pdf/bin/rem2pdf man/rem.1 man/rem2ps.1 man/remind.1 man/tkremind.1 scripts/tkremind])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
chmod a+x rem2pdf/bin/rem2pdf
|
chmod a+x rem2pdf/bin/rem2pdf
|
||||||
|
chmod a+x scripts/tkremind
|
||||||
3
contrib/ical2rem-0.8/GITHUB
Normal file
3
contrib/ical2rem-0.8/GITHUB
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
The upstream GitHub project for ical2rem is:
|
||||||
|
|
||||||
|
https://github.com/jbalcorn/ical2rem
|
||||||
21
contrib/ical2rem-0.8/LICENSE
Normal file
21
contrib/ical2rem-0.8/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2005, 2007, 2019 Justin B. Alcorn
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
103
contrib/ical2rem-0.8/README.md
Normal file
103
contrib/ical2rem-0.8/README.md
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
# ical2rem
|
||||||
|
The original iCal to Remind script, first released in 2005.
|
||||||
|
|
||||||
|
Reads iCal files and outputs remind-compatible files. Tested ONLY with
|
||||||
|
calendar files created by Mozilla Calendar/Sunbird. Use at your own risk.
|
||||||
|
|
||||||
|
## License
|
||||||
|
In 2005, this was released with the Gnu Public License V2. However, I am changing it to the MIT License, since that provides greater freedom to do with this code what you want.
|
||||||
|
|
||||||
|
Copyright (c) 2005, 2007, 2019 Justin B. Alcorn
|
||||||
|
|
||||||
|
## How I use Remind and Google Calendar together
|
||||||
|
|
||||||
|
- My family has a Google Email domain, and our email addresses all end in the same domain. We all use Google Calendars and I want to mail reminders to each of the family members containing both Google Calendar and .reminder information.
|
||||||
|
- Under my ~/.rem/ directory each family member has a directory. Each directory contains a standard remind file called 'reminders' that at the very least has the line "INCLUDE /home/jalcorn/.rem/<username>/ical2rem" and flag files indicating whether they want Daily or Weekly reminders. My reminders files references my standard .reminders file, and I also have a flag so if I run a Test run I'll get it. There's actually a lot more files (I have a big family).
|
||||||
|
````
|
||||||
|
./rem
|
||||||
|
./son1:
|
||||||
|
drwxrwxr-x 2 jalcorn jalcorn 4096 Dec 12 14:02 .
|
||||||
|
drwxr-xr-x 12 jalcorn jalcorn 4096 Dec 12 14:13 ..
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 51 Mar 3 06:10 ical2rem
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 33 Oct 27 2016 son1.ics -> /home/jalcorn/calendars/son1.ics
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 976 Dec 12 14:02 reminders
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 0 Oct 27 2016 Weekly
|
||||||
|
|
||||||
|
./justin:
|
||||||
|
drwxrwxr-x 2 jalcorn jalcorn 4096 Feb 27 08:29 .
|
||||||
|
drwxr-xr-x 12 jalcorn jalcorn 4096 Dec 12 14:13 ..
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 32 Oct 27 2016 son1.ics -> /home/jalcorn/calendars/son1.ics
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 0 Nov 7 2016 Daily
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 34 Oct 27 2016 family.ics -> /home/jalcorn/calendars/family.ics
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 37320 Mar 3 06:10 ical2rem
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 34 Oct 27 2016 justin.ics -> /home/jalcorn/calendars/justin.ics
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 24 Nov 7 2016 reminders -> /home/jalcorn/.reminders
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 34 Oct 27 2016 vmd.ics -> /home/jalcorn/calendars/vmd.ics
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 0 Oct 27 2016 Test
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 0 Nov 7 2016 Weekly
|
||||||
|
````
|
||||||
|
- bin/getgooglecals.sh runs out of crontab and downloads whatever calendars I want. Note that we can also download organization calendars, I've included a public one here (Cleveland Heights Vocal Music Department calendar).
|
||||||
|
- dailyreminders.sh is linked to weeklyreminders.sh and testreminders.sh so I can run it in different modes. The concatenate the various calendar outputs as a single remind file then send the reminders via email.
|
||||||
|
### Example: .rem/son1/reminders file:
|
||||||
|
````
|
||||||
|
INCLUDE /home/jalcorn/.rem/defs.rem
|
||||||
|
INCLUDE /home/jalcorn/.rem/float
|
||||||
|
INCLUDE /home/jalcorn/.rem/son1/ical2rem
|
||||||
|
fset _weeks() coerce("STRING", (trigdate()-today())/7) + plural((trigdate()-today())/7, " week")
|
||||||
|
FSET _sfun(x) choose(x, -60, 30, 5, 0)
|
||||||
|
FSET oldfloat(y,m,d) trigger(MAX(realtoday(), date(y,m,d)))
|
||||||
|
FSET due(y,m,d) "(" + (date(y,m,d)-trigdate()) + ")"
|
||||||
|
SET fullmoon moondate(2)
|
||||||
|
REM [trigger(realtoday())] SPECIAL SHADE 145 70 100 %
|
||||||
|
REM [float(2019,4,15,105)] MSG File tax return [due(2017,4,15)]%
|
||||||
|
REM PRIORITY 9999 MSG %"%"%
|
||||||
|
INCLUDE /home/jalcorn/.rem/bdays
|
||||||
|
SET $LongDeg 81
|
||||||
|
SET $LongMin 11
|
||||||
|
SET $LongSec 11
|
||||||
|
SET $LatDeg 41
|
||||||
|
SET $LatMin 11
|
||||||
|
SET $LatSec 11
|
||||||
|
REM [trigger(moondate(2))] +1 MSG %"Full Moon%" %b%
|
||||||
|
fset _srtd() coerce("STRING", _no_lz(_am_pm(sunrise(today()))))
|
||||||
|
fset _sstd() coerce("STRING", _no_lz(_am_pm(sunset(today()))))
|
||||||
|
MSG Sun is up today from [_srtd()] to [_sstd()].%"%"%
|
||||||
|
````
|
||||||
|
## Revision History
|
||||||
|
### Version 0.7 2024-09-04
|
||||||
|
- ISSUE 8: New version of remind complains if _sfun isn't defined. Output a header
|
||||||
|
to define a function that does nothing if the function doesn't exist.
|
||||||
|
### Version 0.6 2019-03-01
|
||||||
|
- Publish on GitHub and change license to MIT License
|
||||||
|
- Add supporting files and explanation of how I use it
|
||||||
|
### version 0.5.2 2007-03-23
|
||||||
|
- BUG: leadtime for recurring events had a max of 4 instead of DEFAULT_LEAD_TIME
|
||||||
|
- remove project-lead-time, since Category was a non-standard attribute
|
||||||
|
- NOTE: There is a bug in iCal::Parser v1.14 that causes multiple calendars to
|
||||||
|
fail if a calendar with recurring events is followed by a calendar with no
|
||||||
|
recurring events. This has been reported to the iCal::Parser author.
|
||||||
|
### version 0.5.1 2007-03-21
|
||||||
|
- BUG: Handle multiple calendars on STDIN
|
||||||
|
- add --heading option for priority on section headers
|
||||||
|
### version 0.5 2007-03-21
|
||||||
|
- Add more help options
|
||||||
|
- --project-lead-time option
|
||||||
|
- Supress printing of heading if there are no todos to print
|
||||||
|
### version 0.4
|
||||||
|
- Version 0.4 changes all written or inspired by, and thanks to Mark Stosberg
|
||||||
|
- Change to GetOptions
|
||||||
|
- Change to pipe
|
||||||
|
- Add --label, --help options
|
||||||
|
- Add Help Text
|
||||||
|
- Change to subroutines
|
||||||
|
- Efficiency and Cleanup
|
||||||
|
### version 0.3
|
||||||
|
- Convert to GPL (Thanks to Mark Stosberg)
|
||||||
|
- Add usage
|
||||||
|
### version 0.2
|
||||||
|
- add command line switches
|
||||||
|
- add debug code
|
||||||
|
- add SCHED _sfun keyword
|
||||||
|
- fix typos
|
||||||
|
### version 0.1 - ALPHA CODE.
|
||||||
|
|
||||||
82
contrib/ical2rem-0.8/cal_futureonly.pl
Normal file
82
contrib/ical2rem-0.8/cal_futureonly.pl
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
#
|
||||||
|
# cal_futureonly.pl -
|
||||||
|
# Reads iCal files and outputs events between 1 month ago and 1 year from now.
|
||||||
|
# Copyright (c) 2005, 2007, 2019 Justin B. Alcorn
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
cal_futureonly.pl --file=filname.ics > output.ics
|
||||||
|
|
||||||
|
--help Usage
|
||||||
|
--man Complete man page
|
||||||
|
--infile (REQUIRED) name of input calendar file
|
||||||
|
--file (REQUIRED) name of output calendar file
|
||||||
|
|
||||||
|
Expects an ICAL stream on STDIN. Converts it to the format
|
||||||
|
used by the C<remind> script and prints it to STDOUT.
|
||||||
|
|
||||||
|
=head2 --infile
|
||||||
|
|
||||||
|
Input file
|
||||||
|
|
||||||
|
=head2 --file
|
||||||
|
|
||||||
|
Output File
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use Data::ICal;
|
||||||
|
use Data::ICal::Entry;
|
||||||
|
use DateTime::Span;
|
||||||
|
use Data::ICal::DateTime;
|
||||||
|
use DateTime;
|
||||||
|
use Getopt::Long 2.24 qw':config auto_help';
|
||||||
|
use Pod::Usage;
|
||||||
|
use Data::Dumper;
|
||||||
|
use vars '$VERSION';
|
||||||
|
$VERSION = "0.1";
|
||||||
|
|
||||||
|
my $help;
|
||||||
|
my $man;
|
||||||
|
my $infile;
|
||||||
|
my $file;
|
||||||
|
my $debug = 0;
|
||||||
|
|
||||||
|
GetOptions (
|
||||||
|
"help|?" => \$help,
|
||||||
|
"man" => \$man,
|
||||||
|
"debug" => \$debug,
|
||||||
|
"infile=s" => \$infile,
|
||||||
|
"file=s" => \$file
|
||||||
|
);
|
||||||
|
pod2usage(1) if $help;
|
||||||
|
pod2usage(1) if (! $file);
|
||||||
|
pod2usage(-verbose => 2) if $man;
|
||||||
|
|
||||||
|
my $limit = DateTime->now();
|
||||||
|
$limit->subtract( months => 1);
|
||||||
|
my $endlimit = DateTime->now()->add(years =>1);
|
||||||
|
print STDERR "including events from: ",$limit->ymd," to: ".$endlimit->ymd,"\n" if $debug;
|
||||||
|
my $span = DateTime::Span->from_datetimes( start => $limit, end => $endlimit );
|
||||||
|
print STDERR "Parsing $infile\n" if $debug;
|
||||||
|
my $cal = Data::ICal->new(filename => $infile);
|
||||||
|
if (! $cal) {
|
||||||
|
die "Died Trying to read $infile :".$cal->error_message;
|
||||||
|
}
|
||||||
|
#my $archive = Data::ICal->new(filename => 'archive.ics');
|
||||||
|
print "Output = $file\n" if $debug;
|
||||||
|
my $new = Data::ICal->new();
|
||||||
|
if (! $new) {
|
||||||
|
die $new->error_message;
|
||||||
|
}
|
||||||
|
|
||||||
|
my @events = $cal->events($span);
|
||||||
|
$new->add_entries(@events);
|
||||||
|
|
||||||
|
open(NEW, ">$file");
|
||||||
|
print NEW $new->as_string;
|
||||||
|
close NEW;
|
||||||
|
exit 0;
|
||||||
|
#:vim set ft=perl ts=4 sts=4 expandtab :
|
||||||
45
contrib/ical2rem-0.8/dailyreminders.sh
Normal file
45
contrib/ical2rem-0.8/dailyreminders.sh
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
r=`basename $0`
|
||||||
|
|
||||||
|
if [ $r == 'weeklyreminders.sh' ];
|
||||||
|
then
|
||||||
|
t=14;
|
||||||
|
w=Weekly;
|
||||||
|
elif [ $r == 'dailyreminders.sh' ];
|
||||||
|
then
|
||||||
|
t=3;
|
||||||
|
w=Daily;
|
||||||
|
else
|
||||||
|
t=5
|
||||||
|
w=Test;
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd .rem
|
||||||
|
for d in * ;
|
||||||
|
do
|
||||||
|
if [ "$( ls -A $d/$w 2>/dev/null )" ];
|
||||||
|
then
|
||||||
|
echo "Sending a $w reminder to $d"
|
||||||
|
ft=/tmp/$d-t-$$.txt
|
||||||
|
f=/tmp/$d-$$.txt
|
||||||
|
echo "Reminders for next $t days:" >> $f
|
||||||
|
cat /dev/null > $d/ical2rem
|
||||||
|
for c in $d/*.ics
|
||||||
|
do
|
||||||
|
calname=`basename $c .ics | tr a-z A-Z`
|
||||||
|
cat $c 2>/dev/null | sed -e "s/^SUMMARY:/SUMMARY: {${calname}} /" \
|
||||||
|
| sed -e 's/DT\([A-Z]*\);TZID=UTC:\([0-9T]*\)/DT\1:\2Z/' >> $ft
|
||||||
|
done
|
||||||
|
cat $ft | ~/bin/ical2rem.pl --label "Online Calendar" --heading "PRIORITY 9999" --lead-time $t >> $d/ical2rem
|
||||||
|
if [ -e $d/reminders ];then r="${d}/reminders"; else r="${d}/ical2rem";fi
|
||||||
|
/usr/bin/remind -q -iplain=1 $r >> $f
|
||||||
|
echo "
|
||||||
|
All calendars can be accessed by logging into https://calendar.google.com/ as $d@jalcorn.net
|
||||||
|
" >> $f
|
||||||
|
cat $f | mail -s "$w Reminders for $d" $d@jalcorn.net;
|
||||||
|
cat $f
|
||||||
|
rm $f
|
||||||
|
rm $ft
|
||||||
|
fi;
|
||||||
|
done
|
||||||
21
contrib/ical2rem-0.8/getgooglecals.sh
Normal file
21
contrib/ical2rem-0.8/getgooglecals.sh
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Get google calendars, fix issues caused by changes in Google calendars, and remove all past events.
|
||||||
|
#
|
||||||
|
# Obviously, I've removed the private hashes from private calendars.
|
||||||
|
#
|
||||||
|
cd ~/calendars
|
||||||
|
wget -q -O full/justin.ics --no-check-certificate https://www.google.com/calendar/ical/jbalcorn\%40gmail.com/private-aaaaaaaaaaaaaaaaaaaaaaaaaa/basic.ics
|
||||||
|
wget -q -O full/family.ics --no-check-certificate https://www.google.com/calendar/ical/jalcorn.net_aaaaaaaaaaaaaaaaaaaaaaaaaa\%40group.calendar.google.com/private-6c42a79dec0b3b3bb7b9b0ebf9776bc1/basic.ics
|
||||||
|
wget -q -O full/son1.ics --no-check-certificate https://www.google.com/calendar/ical/son1\%40jalcorn.net/private-aaaaaaaaaaaaaaaaaaaaaaaaaa/basic.ics
|
||||||
|
wget -q -O full/vmd.ics --no-check-certificate https://calendar.google.com/calendar/ical/chuh.org_0pmkefjkiqc4snoel7occlslh8%40group.calendar.google.com/public/basic.ics
|
||||||
|
|
||||||
|
for i in full/*.ics;do
|
||||||
|
cat $i 2>/dev/null | sed -e 's/DT\([A-Z]*\);TZID=UTC:\([0-9T]*\)/DT\1:\2Z/' > /tmp/temp.ics
|
||||||
|
cp /tmp/temp.ics $i
|
||||||
|
done
|
||||||
|
|
||||||
|
~/bin/cal_futureonly.pl --infile=full/justin.ics --file=justin.ics
|
||||||
|
~/bin/cal_futureonly.pl --infile=full/family.ics --file=family.ics
|
||||||
|
~/bin/cal_futureonly.pl --infile=full/son1.ics --file=son1.ics
|
||||||
|
~/bin/cal_futureonly.pl --infile=full/vmd.ics --file=vmd.ics
|
||||||
396
contrib/ical2rem-0.8/ical2rem.pl
Executable file
396
contrib/ical2rem-0.8/ical2rem.pl
Executable file
@@ -0,0 +1,396 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
#
|
||||||
|
# ical2rem.pl -
|
||||||
|
# Reads iCal files and outputs remind-compatible files. Tested ONLY with
|
||||||
|
# calendar files created by Mozilla Calendar/Sunbird. Use at your own risk.
|
||||||
|
# MIT License
|
||||||
|
#
|
||||||
|
# Copyright (c) 2005, 2007, 2019 Justin B. Alcorn
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
# version 0.8 2024-10-16
|
||||||
|
# - Issue 9. Remove extra day notation on all day events.
|
||||||
|
# version 0.7.1 2024-09-19
|
||||||
|
# - Made sure license statements were consistent
|
||||||
|
# version 0.7 2024-09-04
|
||||||
|
# - Added dummy _sfun to resolve Issue #8
|
||||||
|
# version 0.6 2019-03-01
|
||||||
|
# - Updates to put on GitHub
|
||||||
|
# version 0.5.2 2007-03-23
|
||||||
|
# - BUG: leadtime for recurring events had a max of 4 instead of DEFAULT_LEAD_TIME
|
||||||
|
# - remove project-lead-time, since Category was a non-standard attribute
|
||||||
|
# - NOTE: There is a bug in iCal::Parser v1.14 that causes multiple calendars to
|
||||||
|
# fail if a calendar with recurring events is followed by a calendar with no
|
||||||
|
# recurring events. This has been reported to the iCal::Parser author.
|
||||||
|
# version 0.5.1 2007-03-21
|
||||||
|
# - BUG: Handle multiple calendars on STDIN
|
||||||
|
# - add --heading option for priority on section headers
|
||||||
|
# version 0.5 2007-03-21
|
||||||
|
# - Add more help options
|
||||||
|
# - --project-lead-time option
|
||||||
|
# - Supress printing of heading if there are no todos to print
|
||||||
|
# version 0.4
|
||||||
|
# - Version 0.4 changes all written or inspired by, and thanks to Mark Stosberg
|
||||||
|
# - Change to GetOptions
|
||||||
|
# - Change to pipe
|
||||||
|
# - Add --label, --help options
|
||||||
|
# - Add Help Text
|
||||||
|
# - Change to subroutines
|
||||||
|
# - Efficiency and Cleanup
|
||||||
|
# version 0.3
|
||||||
|
# - Convert to GPL (Thanks to Mark Stosberg)
|
||||||
|
# - Add usage
|
||||||
|
# version 0.2
|
||||||
|
# - add command line switches
|
||||||
|
# - add debug code
|
||||||
|
# - add SCHED _sfun keyword
|
||||||
|
# - fix typos
|
||||||
|
# version 0.1 - ALPHA CODE.
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
cat /path/to/file*.ics | ical2rem.pl > ~/.ical2rem
|
||||||
|
|
||||||
|
All options have reasonable defaults:
|
||||||
|
--label Calendar name (Default: Calendar)
|
||||||
|
--start Start of time period to parse (parsed by str2time)
|
||||||
|
--end End of time period to parse
|
||||||
|
--lead-time Advance days to start reminders (Default: 3)
|
||||||
|
--todos, --no-todos Process Todos? (Default: Yes)
|
||||||
|
--iso8601 Use YYYY-MM-DD date format
|
||||||
|
--locations, --no-locations Include location? (Default: Yes)
|
||||||
|
--end-times, --no-end-times Include event end times in reminder text
|
||||||
|
(Default: No)
|
||||||
|
--heading Define a priority for static entries
|
||||||
|
--help Usage
|
||||||
|
--debug Enable debug output
|
||||||
|
--man Complete man page
|
||||||
|
|
||||||
|
Expects an ICAL stream on STDIN. Converts it to the format
|
||||||
|
used by the C<remind> script and prints it to STDOUT.
|
||||||
|
|
||||||
|
=head2 --label
|
||||||
|
|
||||||
|
ical2rem.pl --label "Bob's Calendar"
|
||||||
|
|
||||||
|
The syntax generated includes a label for the calendar parsed.
|
||||||
|
By default this is "Calendar". You can customize this with
|
||||||
|
the "--label" option.
|
||||||
|
|
||||||
|
=head2 --iso8601
|
||||||
|
|
||||||
|
Use YYYY-MM-DD date format in output instead of Mmm DD YYYY
|
||||||
|
|
||||||
|
=head2 --locations, --no-locations
|
||||||
|
|
||||||
|
Whether or not to include locations in events
|
||||||
|
|
||||||
|
=head2 --lead-time
|
||||||
|
|
||||||
|
ical2rem.pl --lead-time 3
|
||||||
|
|
||||||
|
How may days in advance to start getting reminders about the events. Defaults to 3.
|
||||||
|
|
||||||
|
=head2 --no-todos
|
||||||
|
|
||||||
|
ical2rem.pl --no-todos
|
||||||
|
|
||||||
|
If you don't care about the ToDos the calendar, this will surpress
|
||||||
|
printing of the ToDo heading, as well as skipping ToDo processing.
|
||||||
|
|
||||||
|
=head2 --heading
|
||||||
|
|
||||||
|
ical2rem.pl --heading "PRIORITY 9999"
|
||||||
|
|
||||||
|
Set an option on static messages output. Using priorities can made the static messages look different from
|
||||||
|
the calendar entries. See the file defs.rem from the remind distribution for more information.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use iCal::Parser;
|
||||||
|
use Date::Parse;
|
||||||
|
use DateTime;
|
||||||
|
use Getopt::Long 2.24 qw':config auto_help';
|
||||||
|
use Pod::Usage;
|
||||||
|
use Data::Dumper;
|
||||||
|
use vars '$VERSION';
|
||||||
|
$VERSION = "0.5.2";
|
||||||
|
|
||||||
|
# Declare how many days in advance to remind
|
||||||
|
my $DEFAULT_LEAD_TIME = 3;
|
||||||
|
my $PROCESS_TODOS = 1;
|
||||||
|
my $HEADING = "";
|
||||||
|
my $help;
|
||||||
|
my $debug;
|
||||||
|
my $man;
|
||||||
|
my $iso8601;
|
||||||
|
my $do_location = 1;
|
||||||
|
my $do_end_times;
|
||||||
|
my $start;
|
||||||
|
my $end;
|
||||||
|
|
||||||
|
my $label = 'Calendar';
|
||||||
|
GetOptions (
|
||||||
|
"label=s" => \$label,
|
||||||
|
"start=s" => \$start,
|
||||||
|
"end=s" => \$end,
|
||||||
|
"lead-time=i" => \$DEFAULT_LEAD_TIME,
|
||||||
|
"todos!" => \$PROCESS_TODOS,
|
||||||
|
"iso8601!" => \$iso8601,
|
||||||
|
"locations!" => \$do_location,
|
||||||
|
"end-times!" => \$do_end_times,
|
||||||
|
"heading=s" => \$HEADING,
|
||||||
|
"help|?" => \$help,
|
||||||
|
"debug" => \$debug,
|
||||||
|
"man" => \$man
|
||||||
|
) or pod2usage(1);
|
||||||
|
pod2usage(1) if $help;
|
||||||
|
pod2usage(-verbose => 2) if $man;
|
||||||
|
|
||||||
|
my $month = ['None','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
|
||||||
|
|
||||||
|
my @calendars;
|
||||||
|
my $in;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
$in .= $_;
|
||||||
|
if (/END:VCALENDAR/) {
|
||||||
|
push(@calendars,$in);
|
||||||
|
$in = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print STDERR "Read all calendars\n" if $debug;
|
||||||
|
my(%parser_opts) = ("debug" => $debug);
|
||||||
|
if ($start) {
|
||||||
|
my $t = str2time($start);
|
||||||
|
die "Invalid time $start\n" if (! $t);
|
||||||
|
$parser_opts{'start'} = DateTime->from_epoch(epoch => $t);
|
||||||
|
}
|
||||||
|
if ($end) {
|
||||||
|
my $t = str2time($end);
|
||||||
|
die "Invalid time $end\n" if (! $t);
|
||||||
|
$parser_opts{'end'} = DateTime->from_epoch(epoch => $t);
|
||||||
|
}
|
||||||
|
print STDERR "About to parse calendars\n" if $debug;
|
||||||
|
my $parser = iCal::Parser->new(%parser_opts);
|
||||||
|
my $hash = $parser->parse_strings(@calendars);
|
||||||
|
print STDERR "Calendars parsed\n" if $debug;
|
||||||
|
|
||||||
|
##############################################################
|
||||||
|
#
|
||||||
|
# Subroutines
|
||||||
|
#
|
||||||
|
#############################################################
|
||||||
|
#
|
||||||
|
# _process_todos()
|
||||||
|
# expects 'todos' hashref from iCal::Parser is input
|
||||||
|
# returns String to output
|
||||||
|
sub _process_todos {
|
||||||
|
my $todos = shift;
|
||||||
|
|
||||||
|
my ($todo, @newtodos, $leadtime);
|
||||||
|
my $output = "";
|
||||||
|
|
||||||
|
$output .= 'REM '.$HEADING.' MSG '.$label.' ToDos:%"%"%'."\n";
|
||||||
|
|
||||||
|
# For sorting, make sure everything's got something
|
||||||
|
# To sort on.
|
||||||
|
my $now = DateTime->now;
|
||||||
|
for $todo (@{$todos}) {
|
||||||
|
# remove completed items
|
||||||
|
if ($todo->{'STATUS'} && $todo->{'STATUS'} eq 'COMPLETED') {
|
||||||
|
next;
|
||||||
|
} elsif ($todo->{'DUE'}) {
|
||||||
|
# All we need is a due date, everything else is sugar
|
||||||
|
$todo->{'SORT'} = $todo->{'DUE'}->clone;
|
||||||
|
} elsif ($todo->{'DTSTART'}) {
|
||||||
|
# for sorting, sort on start date if there's no due date
|
||||||
|
$todo->{'SORT'} = $todo->{'DTSTART'}->clone;
|
||||||
|
} else {
|
||||||
|
# if there's no due or start date, just make it now.
|
||||||
|
$todo->{'SORT'} = $now;
|
||||||
|
}
|
||||||
|
push(@newtodos,$todo);
|
||||||
|
}
|
||||||
|
if (! (scalar @newtodos)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
# Now sort on the new Due dates and print them out.
|
||||||
|
for $todo (sort { DateTime->compare($a->{'SORT'}, $b->{'SORT'}) } @newtodos) {
|
||||||
|
my $due = $todo->{'SORT'}->clone();
|
||||||
|
my $priority = "";
|
||||||
|
if (defined($todo->{'PRIORITY'})) {
|
||||||
|
if ($todo->{'PRIORITY'} == 1) {
|
||||||
|
$priority = "PRIORITY 1000";
|
||||||
|
} elsif ($todo->{'PRIORITY'} == 3) {
|
||||||
|
$priority = "PRIORITY 7500";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (defined($todo->{'DTSTART'}) && defined($todo->{'DUE'})) {
|
||||||
|
# Lead time is duration of task + lead time
|
||||||
|
my $diff = ($todo->{'DUE'}->delta_days($todo->{'DTSTART'})->days())+$DEFAULT_LEAD_TIME;
|
||||||
|
$leadtime = "+".$diff;
|
||||||
|
} else {
|
||||||
|
$leadtime = "+".$DEFAULT_LEAD_TIME;
|
||||||
|
}
|
||||||
|
$output .= "REM ".$due->month_abbr." ".$due->day." ".$due->year." $leadtime $priority MSG \%a $todo->{'SUMMARY'}\%\"\%\"\%\n";
|
||||||
|
}
|
||||||
|
$output .= 'REM '.$HEADING.' MSG %"%"%'."\n";
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# Main Program
|
||||||
|
#
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
# Issue 8 https://github.com/jbalcorn/ical2rem/issues/8
|
||||||
|
# Make sure there is a _sfun function declared in the reminder file. We'll just make it do nothing here.
|
||||||
|
print 'IF args("_sfun") < 1
|
||||||
|
FSET _sfun(x) choose(x,0)
|
||||||
|
ENDIF
|
||||||
|
';
|
||||||
|
|
||||||
|
print _process_todos($hash->{'todos'}) if $PROCESS_TODOS;
|
||||||
|
|
||||||
|
my ($leadtime, $yearkey, $monkey, $daykey,$uid,%eventsbyuid);
|
||||||
|
print 'REM '.$HEADING.' MSG '.$label.' Events:%"%"%'."\n";
|
||||||
|
my $events = $hash->{'events'};
|
||||||
|
foreach $yearkey (sort keys %{$events} ) {
|
||||||
|
my $yearevents = $events->{$yearkey};
|
||||||
|
foreach $monkey (sort {$a <=> $b} keys %{$yearevents}){
|
||||||
|
my $monevents = $yearevents->{$monkey};
|
||||||
|
foreach $daykey (sort {$a <=> $b} keys %{$monevents} ) {
|
||||||
|
my $dayevents = $monevents->{$daykey};
|
||||||
|
foreach $uid (sort {
|
||||||
|
DateTime->compare($dayevents->{$a}->{'DTSTART'}, $dayevents->{$b}->{'DTSTART'})
|
||||||
|
} keys %{$dayevents}) {
|
||||||
|
my $event = $dayevents->{$uid};
|
||||||
|
if ($eventsbyuid{$uid}) {
|
||||||
|
my $curreventday = $event->{'DTSTART'}->clone;
|
||||||
|
$curreventday->truncate( to => 'day' );
|
||||||
|
$eventsbyuid{$uid}{$curreventday->epoch()} =1;
|
||||||
|
for (my $i = 0;$i < $DEFAULT_LEAD_TIME && !defined($event->{'LEADTIME'});$i++) {
|
||||||
|
if ($eventsbyuid{$uid}{$curreventday->subtract( days => $i+1 )->epoch() }) {
|
||||||
|
$event->{'LEADTIME'} = $i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Issue 9. Multi-day events have extra day with zero time. Mark this as the date not needed in reminders file so we can skip later
|
||||||
|
# Repeating multi-day events have the same uid so we need to mark each one.
|
||||||
|
if ($event->{'DTSTART'} eq $event->{'DTEND'} and $event->{'DTEND'}->hour eq 0 and $event->{'DTEND'}->minute eq 0 and $event->{'DTEND'}->second eq 0) {
|
||||||
|
$eventsbyuid{$uid}{$event->{'DTSTART'}->ymd} = 'rm';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$eventsbyuid{$uid} = $event;
|
||||||
|
my $curreventday = $event->{'DTSTART'}->clone;
|
||||||
|
$curreventday->truncate( to => 'day' );
|
||||||
|
$eventsbyuid{$uid}{$curreventday->epoch()} =1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach $yearkey (sort keys %{$events} ) {
|
||||||
|
my $yearevents = $events->{$yearkey};
|
||||||
|
foreach $monkey (sort {$a <=> $b} keys %{$yearevents}){
|
||||||
|
my $monevents = $yearevents->{$monkey};
|
||||||
|
foreach $daykey (sort {$a <=> $b} keys %{$monevents} ) {
|
||||||
|
my $dayevents = $monevents->{$daykey};
|
||||||
|
foreach $uid (sort {
|
||||||
|
DateTime->compare($dayevents->{$a}->{'DTSTART'}, $dayevents->{$b}->{'DTSTART'})
|
||||||
|
} keys %{$dayevents}) {
|
||||||
|
my $event = $dayevents->{$uid};
|
||||||
|
if (exists($event->{'LEADTIME'})) {
|
||||||
|
$leadtime = "+".$event->{'LEADTIME'};
|
||||||
|
} else {
|
||||||
|
$leadtime = "+".$DEFAULT_LEAD_TIME;
|
||||||
|
}
|
||||||
|
my $start = $event->{'DTSTART'};
|
||||||
|
my $end = $event->{'DTEND'};
|
||||||
|
my $duration = "";
|
||||||
|
# Issue 9. All Day events create an event that has zero length and DTSTART and DTEND at 00:00 on last day. Marked while handling multi-day events. Ignore these
|
||||||
|
if ($start eq $end and $eventsbyuid{$uid}{$start->ymd} and $eventsbyuid{$uid}{$start->ymd} eq 'rm') {
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if ($end and ($start->hour or $start->minute or $end->hour or $end->minute)) {
|
||||||
|
# We need both an HH:MM version of the delta, to put in the
|
||||||
|
# DURATION specifier, and a human-readable version of the
|
||||||
|
# delta, to put in the message if the user requested it.
|
||||||
|
my $seconds = $end->epoch - $start->epoch;
|
||||||
|
my $minutes = int($seconds / 60);
|
||||||
|
my $hours = int($minutes / 60);
|
||||||
|
$minutes -= $hours * 60;
|
||||||
|
$duration = sprintf("DURATION %d:%02d ", $hours, $minutes);
|
||||||
|
}
|
||||||
|
print "REM ";
|
||||||
|
if ($iso8601) {
|
||||||
|
print $start->strftime("%F ");
|
||||||
|
} else {
|
||||||
|
print $start->month_abbr." ".$start->day." ".$start->year." ";
|
||||||
|
}
|
||||||
|
print "$leadtime ";
|
||||||
|
if ($duration or $start->hour > 0 or $start->minute > 0) {
|
||||||
|
print "AT ";
|
||||||
|
print $start->strftime("%H:%M");
|
||||||
|
print " SCHED _sfun ${duration}MSG %a %2 ";
|
||||||
|
} else {
|
||||||
|
print "MSG %a ";
|
||||||
|
}
|
||||||
|
print "%\"", "e($event->{'SUMMARY'});
|
||||||
|
print(" at ", "e($event->{'LOCATION'}))
|
||||||
|
if ($do_location and $event->{'LOCATION'});
|
||||||
|
print "\%\"";
|
||||||
|
if ($do_end_times and ($start->hour or $start->minute or
|
||||||
|
$end->hour or $end->minute)) {
|
||||||
|
my $start_date = $start->strftime("%F");
|
||||||
|
my $start_time = $start->strftime("%k:%M");
|
||||||
|
my $end_date = $end->strftime("%F");
|
||||||
|
my $end_time = $end->strftime("%k:%M");
|
||||||
|
# We don't want leading whitespace; some strftime's support
|
||||||
|
# disabling the pdding in the format string, but not all,
|
||||||
|
# so for maximum portability we do it ourselves.
|
||||||
|
$start_time =~ s/^\s+//;
|
||||||
|
$end_time =~ s/^\s+//;
|
||||||
|
my(@pieces);
|
||||||
|
if ($start_date ne $end_date) {
|
||||||
|
push(@pieces, $end_date);
|
||||||
|
}
|
||||||
|
if ($start_time ne $end_time) {
|
||||||
|
push(@pieces, $end_time);
|
||||||
|
}
|
||||||
|
print " (-", join(" ", @pieces), ")";
|
||||||
|
}
|
||||||
|
print "%\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub quote {
|
||||||
|
local($_) = @_;
|
||||||
|
s/\[/["["]/g;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
#:vim set ft=perl ts=4 sts=4 tabstop=4 expandtab :
|
||||||
@@ -1,279 +0,0 @@
|
|||||||
#!/usr/bin/perl -w
|
|
||||||
#
|
|
||||||
# ical2rem.pl -
|
|
||||||
# Reads iCal files and outputs remind-compatible files. Tested ONLY with
|
|
||||||
# calendar files created by Mozilla Calendar/Sunbird. Use at your own risk.
|
|
||||||
# Copyright (c) 2005, 2007, Justin B. Alcorn
|
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU General Public License
|
|
||||||
# as published by the Free Software Foundation; either version 2
|
|
||||||
# of the License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# version 0.5.2 2007-03-23
|
|
||||||
# - BUG: leadtime for recurring events had a max of 4 instead of DEFAULT_LEAD_TIME
|
|
||||||
# - remove project-lead-time, since Category was a non-standard attribute
|
|
||||||
# - NOTE: There is a bug in iCal::Parser v1.14 that causes multiple calendars to
|
|
||||||
# fail if a calendar with recurring events is followed by a calendar with no
|
|
||||||
# recurring events. This has been reported to the iCal::Parser author.
|
|
||||||
# version 0.5.1 2007-03-21
|
|
||||||
# - BUG: Handle multiple calendars on STDIN
|
|
||||||
# - add --heading option for priority on section headers
|
|
||||||
# version 0.5 2007-03-21
|
|
||||||
# - Add more help options
|
|
||||||
# - --project-lead-time option
|
|
||||||
# - Suppress printing of heading if there are no todos to print
|
|
||||||
# version 0.4
|
|
||||||
# - Version 0.4 changes all written or inspired by, and thanks to Mark Stosberg
|
|
||||||
# - Change to GetOptions
|
|
||||||
# - Change to pipe
|
|
||||||
# - Add --label, --help options
|
|
||||||
# - Add Help Text
|
|
||||||
# - Change to subroutines
|
|
||||||
# - Efficiency and Cleanup
|
|
||||||
# version 0.3
|
|
||||||
# - Convert to GPL (Thanks to Mark Stosberg)
|
|
||||||
# - Add usage
|
|
||||||
# version 0.2
|
|
||||||
# - add command line switches
|
|
||||||
# - add debug code
|
|
||||||
# - add SCHED _sfun keyword
|
|
||||||
# - fix typos
|
|
||||||
# version 0.1 - ALPHA CODE.
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
|
||||||
|
|
||||||
cat /path/to/file*.ics | ical2rem.pl > ~/.ical2rem
|
|
||||||
|
|
||||||
All options have reasonable defaults:
|
|
||||||
--label Calendar name (Default: Calendar)
|
|
||||||
--lead-time Advance days to start reminders (Default: 3)
|
|
||||||
--todos, --no-todos Process Todos? (Default: Yes)
|
|
||||||
--heading Define a priority for static entries
|
|
||||||
--help Usage
|
|
||||||
--man Complete man page
|
|
||||||
|
|
||||||
Expects an ICAL stream on STDIN. Converts it to the format
|
|
||||||
used by the C<remind> script and prints it to STDOUT.
|
|
||||||
|
|
||||||
=head2 --label
|
|
||||||
|
|
||||||
ical2rem.pl --label "Bob's Calendar"
|
|
||||||
|
|
||||||
The syntax generated includes a label for the calendar parsed.
|
|
||||||
By default this is "Calendar". You can customize this with
|
|
||||||
the "--label" option.
|
|
||||||
|
|
||||||
=head2 --lead-time
|
|
||||||
|
|
||||||
ical2rem.pl --lead-time 3
|
|
||||||
|
|
||||||
How may days in advance to start getting reminders about the events. Defaults to 3.
|
|
||||||
|
|
||||||
=head2 --no-todos
|
|
||||||
|
|
||||||
ical2rem.pl --no-todos
|
|
||||||
|
|
||||||
If you don't care about the ToDos the calendar, this will suppress
|
|
||||||
printing of the ToDo heading, as well as skipping ToDo processing.
|
|
||||||
|
|
||||||
=head2 --heading
|
|
||||||
|
|
||||||
ical2rem.pl --heading "PRIORITY 9999"
|
|
||||||
|
|
||||||
Set an option on static messages output. Using priorities can made the static messages look different from
|
|
||||||
the calendar entries. See the file defs.rem from the remind distribution for more information.
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use iCal::Parser;
|
|
||||||
use DateTime;
|
|
||||||
use Getopt::Long 2.24 qw':config auto_help';
|
|
||||||
use Pod::Usage;
|
|
||||||
use Data::Dumper;
|
|
||||||
use vars '$VERSION';
|
|
||||||
$VERSION = "0.5.2";
|
|
||||||
|
|
||||||
# Declare how many days in advance to remind
|
|
||||||
my $DEFAULT_LEAD_TIME = 3;
|
|
||||||
my $PROCESS_TODOS = 1;
|
|
||||||
my $HEADING = "";
|
|
||||||
my $help;
|
|
||||||
my $man;
|
|
||||||
|
|
||||||
my $label = 'Calendar';
|
|
||||||
GetOptions (
|
|
||||||
"label=s" => \$label,
|
|
||||||
"lead-time=i" => \$DEFAULT_LEAD_TIME,
|
|
||||||
"todos!" => \$PROCESS_TODOS,
|
|
||||||
"heading=s" => \$HEADING,
|
|
||||||
"help|?" => \$help,
|
|
||||||
"man" => \$man
|
|
||||||
);
|
|
||||||
pod2usage(1) if $help;
|
|
||||||
pod2usage(-verbose => 2) if $man;
|
|
||||||
|
|
||||||
my $month = ['None','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
|
|
||||||
|
|
||||||
my @calendars;
|
|
||||||
my $in;
|
|
||||||
|
|
||||||
while (<>) {
|
|
||||||
$in .= $_;
|
|
||||||
if (/END:VCALENDAR/) {
|
|
||||||
push(@calendars,$in);
|
|
||||||
$in = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
my $parser = iCal::Parser->new();
|
|
||||||
my $hash = $parser->parse_strings(@calendars);
|
|
||||||
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# Subroutines
|
|
||||||
#
|
|
||||||
#############################################################
|
|
||||||
#
|
|
||||||
# _process_todos()
|
|
||||||
# expects 'todos' hashref from iCal::Parser is input
|
|
||||||
# returns String to output
|
|
||||||
sub _process_todos {
|
|
||||||
my $todos = shift;
|
|
||||||
|
|
||||||
my ($todo, @newtodos, $leadtime);
|
|
||||||
my $output = "";
|
|
||||||
|
|
||||||
$output .= 'REM '.$HEADING.' MSG '.$label.' ToDos:%"%"%'."\n";
|
|
||||||
|
|
||||||
# For sorting, make sure everything's got something
|
|
||||||
# To sort on.
|
|
||||||
my $now = DateTime->now;
|
|
||||||
for $todo (@{$todos}) {
|
|
||||||
# remove completed items
|
|
||||||
if ($todo->{'STATUS'} && $todo->{'STATUS'} eq 'COMPLETED') {
|
|
||||||
next;
|
|
||||||
} elsif ($todo->{'DUE'}) {
|
|
||||||
# All we need is a due date, everything else is sugar
|
|
||||||
$todo->{'SORT'} = $todo->{'DUE'}->clone;
|
|
||||||
} elsif ($todo->{'DTSTART'}) {
|
|
||||||
# for sorting, sort on start date if there's no due date
|
|
||||||
$todo->{'SORT'} = $todo->{'DTSTART'}->clone;
|
|
||||||
} else {
|
|
||||||
# if there's no due or start date, just make it now.
|
|
||||||
$todo->{'SORT'} = $now;
|
|
||||||
}
|
|
||||||
push(@newtodos,$todo);
|
|
||||||
}
|
|
||||||
if (! (scalar @newtodos)) {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
# Now sort on the new Due dates and print them out.
|
|
||||||
for $todo (sort { DateTime->compare($a->{'SORT'}, $b->{'SORT'}) } @newtodos) {
|
|
||||||
my $due = $todo->{'SORT'}->clone();
|
|
||||||
my $priority = "";
|
|
||||||
if (defined($todo->{'PRIORITY'})) {
|
|
||||||
if ($todo->{'PRIORITY'} == 1) {
|
|
||||||
$priority = "PRIORITY 1000";
|
|
||||||
} elsif ($todo->{'PRIORITY'} == 3) {
|
|
||||||
$priority = "PRIORITY 7500";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (defined($todo->{'DTSTART'}) && defined($todo->{'DUE'})) {
|
|
||||||
# Lead time is duration of task + lead time
|
|
||||||
my $diff = ($todo->{'DUE'}->delta_days($todo->{'DTSTART'})->days())+$DEFAULT_LEAD_TIME;
|
|
||||||
$leadtime = "+".$diff;
|
|
||||||
} else {
|
|
||||||
$leadtime = "+".$DEFAULT_LEAD_TIME;
|
|
||||||
}
|
|
||||||
$output .= "REM ".$due->month_abbr." ".$due->day." ".$due->year." $leadtime $priority MSG \%a $todo->{'SUMMARY'}\%\"\%\"\%\n";
|
|
||||||
}
|
|
||||||
$output .= 'REM '.$HEADING.' MSG %"%"%'."\n";
|
|
||||||
return $output;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
#
|
|
||||||
# Main Program
|
|
||||||
#
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
print _process_todos($hash->{'todos'}) if $PROCESS_TODOS;
|
|
||||||
|
|
||||||
my ($leadtime, $yearkey, $monkey, $daykey,$uid,%eventsbyuid);
|
|
||||||
print 'REM '.$HEADING.' MSG '.$label.' Events:%"%"%'."\n";
|
|
||||||
my $events = $hash->{'events'};
|
|
||||||
foreach $yearkey (sort keys %{$events} ) {
|
|
||||||
my $yearevents = $events->{$yearkey};
|
|
||||||
foreach $monkey (sort {$a <=> $b} keys %{$yearevents}){
|
|
||||||
my $monevents = $yearevents->{$monkey};
|
|
||||||
foreach $daykey (sort {$a <=> $b} keys %{$monevents} ) {
|
|
||||||
my $dayevents = $monevents->{$daykey};
|
|
||||||
foreach $uid (sort {
|
|
||||||
DateTime->compare($dayevents->{$a}->{'DTSTART'}, $dayevents->{$b}->{'DTSTART'})
|
|
||||||
} keys %{$dayevents}) {
|
|
||||||
my $event = $dayevents->{$uid};
|
|
||||||
if ($eventsbyuid{$uid}) {
|
|
||||||
my $curreventday = $event->{'DTSTART'}->clone;
|
|
||||||
$curreventday->truncate( to => 'day' );
|
|
||||||
$eventsbyuid{$uid}{$curreventday->epoch()} =1;
|
|
||||||
for (my $i = 0;$i < $DEFAULT_LEAD_TIME && !defined($event->{'LEADTIME'});$i++) {
|
|
||||||
if ($eventsbyuid{$uid}{$curreventday->subtract( days => $i+1 )->epoch() }) {
|
|
||||||
$event->{'LEADTIME'} = $i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$eventsbyuid{$uid} = $event;
|
|
||||||
my $curreventday = $event->{'DTSTART'}->clone;
|
|
||||||
$curreventday->truncate( to => 'day' );
|
|
||||||
$eventsbyuid{$uid}{$curreventday->epoch()} =1;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach $yearkey (sort keys %{$events} ) {
|
|
||||||
my $yearevents = $events->{$yearkey};
|
|
||||||
foreach $monkey (sort {$a <=> $b} keys %{$yearevents}){
|
|
||||||
my $monevents = $yearevents->{$monkey};
|
|
||||||
foreach $daykey (sort {$a <=> $b} keys %{$monevents} ) {
|
|
||||||
my $dayevents = $monevents->{$daykey};
|
|
||||||
foreach $uid (sort {
|
|
||||||
DateTime->compare($dayevents->{$a}->{'DTSTART'}, $dayevents->{$b}->{'DTSTART'})
|
|
||||||
} keys %{$dayevents}) {
|
|
||||||
my $event = $dayevents->{$uid};
|
|
||||||
if (exists($event->{'LEADTIME'})) {
|
|
||||||
$leadtime = "+".$event->{'LEADTIME'};
|
|
||||||
} else {
|
|
||||||
$leadtime = "+".$DEFAULT_LEAD_TIME;
|
|
||||||
}
|
|
||||||
my $start = $event->{'DTSTART'};
|
|
||||||
print "REM ".$start->month_abbr." ".$start->day." ".$start->year." $leadtime ";
|
|
||||||
if ($start->hour > 0) {
|
|
||||||
print " AT ";
|
|
||||||
print $start->strftime("%H:%M");
|
|
||||||
print " SCHED _sfun MSG %a %2 ";
|
|
||||||
} else {
|
|
||||||
print " MSG %a ";
|
|
||||||
}
|
|
||||||
print "%\"$event->{'SUMMARY'}";
|
|
||||||
print " at $event->{'LOCATION'}" if $event->{'LOCATION'};
|
|
||||||
print "\%\"%\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exit 0;
|
|
||||||
#:vim set ft=perl ts=4 sts=4 expandtab :
|
|
||||||
@@ -109,18 +109,18 @@
|
|||||||
|
|
||||||
(defconst remind-keywords
|
(defconst remind-keywords
|
||||||
(sort
|
(sort
|
||||||
(list "ADDOMIT" "AFTER" "AT" "BANNER" "BEFORE"
|
(list "ADDOMIT" "AFTER" "AT" "BAN" "BANNER" "BEFORE" "CAL" "CLEAR"
|
||||||
"CAL" "CLEAR-OMIT-CONTEXT" "DEBUG" "DO" "DUMPVARS"
|
"CLEAR-OMIT-CONTEXT" "COMPLETE-THROUGH" "DEBUG" "DO" "DUMP" "DUMPVARS"
|
||||||
"DURATION" "ELSE" "ENDIF" "ERRMSG" "EXIT" "FIRST"
|
"DURATION" "ELSE" "ENDIF" "ERRMSG" "EXIT" "EXPR" "FIRST"
|
||||||
"FLUSH" "FOURTH" "FROM" "FSET" "IF" "IFTRIG" "IN"
|
"FLUSH" "FOURTH" "FRENAME" "FROM" "FSET" "FUNSET" "IF"
|
||||||
"INCLUDE" "INCLUDECMD" "LAST" "LASTDAY"
|
"IFTRIG" "IN" "INC" "INCLUDE" "INCLUDECMD" "INFO" "LAST"
|
||||||
"LASTWORKDAY" "MAYBE-UNCOMPUTABLE" "MSF"
|
"LASTDAY" "LASTWORKDAY" "MAX-OVERDUE" "MAYBE" "MAYBE-UNCOMPUTABLE" "MSF"
|
||||||
"MSG" "OMIT" "OMITFUNC" "ONCE"
|
"MSG" "NOQUEUE" "OMIT" "OMITFUNC" "ONCE" "POP"
|
||||||
"POP-OMIT-CONTEXT" "PRESERVE" "PRIORITY" "PS" "PSFILE"
|
"POP-OMIT-CONTEXT" "POP-FUNCS" "POP-VARS" "PRESERVE" "PRIORITY" "PS"
|
||||||
"PUSH-OMIT-CONTEXT" "REM" "RUN" "SATISFY" "SCANFROM"
|
"PSFILE" "PUSH" "PUSH-FUNCS" "PUSH-VARS" "PUSH-OMIT-CONTEXT" "REM" "RETURN"
|
||||||
"SCHED" "SECOND" "SET" "SKIP" "SPECIAL"
|
"RUN" "SATISFY" "SCAN" "SCANFROM" "SCHED" "SECOND" "SET"
|
||||||
"TAG" "THIRD" "THROUGH" "UNSET" "UNTIL"
|
"SKIP" "SPECIAL" "SYSINCLUDE" "TAG" "THIRD" "THROUGH" "TODO"
|
||||||
"WARN")
|
"TRANSLATE" "TRANS" "TZ" "UNSET" "UNTIL" "WARN")
|
||||||
#'(lambda (a b) (> (length a) (length b)))))
|
#'(lambda (a b) (> (length a) (length b)))))
|
||||||
|
|
||||||
|
|
||||||
@@ -131,50 +131,61 @@
|
|||||||
|
|
||||||
(defconst remind-builtin-variables
|
(defconst remind-builtin-variables
|
||||||
(sort
|
(sort
|
||||||
(list "$Ago" "$Am" "$And" "$April" "$At" "$August" "$CalcUTC" "$CalMode" "$Daemon" "$DateSep"
|
(list " $AddBlankLines" "$Ago" "$Am" "$And" "$April" "$At" "$August"
|
||||||
"$DateTimeSep" "$December" "$DefaultColor" "$DefaultPrio"
|
"$CalcUTC" "$CalMode" "$CalType" "$Daemon" "$DateSep" "$DateTimeSep"
|
||||||
"$DefaultTDelta" "$DeltaOffset" "$DontFork" "$DontQueue"
|
"$December" "$DedupeReminders" "$DefaultColor" "$DefaultDelta"
|
||||||
"$DontTrigAts" "$EndSent" "$EndSentIg" "$February" "$FirstIndent"
|
"$DefaultPrio" "$DefaultTDelta" "$DeltaOverride"
|
||||||
"$FoldYear" "$FormWidth" "$Friday" "$Fromnow" "$Hour" "$Hplu" "$HushMode" "$IgnoreOnce"
|
"$DontFork" "$DontQueue" "$DontTrigAts" "$EndSent" "$EndSentIg"
|
||||||
"$InfDelta" "$IntMax" "$IntMin" "$Is" "$January" "$July" "$June" "$LatDeg"
|
"$ExpressionTimeLimit" "$February" "$FirstIndent" "$FoldYear"
|
||||||
"$Latitude" "$LatMin" "$LatSec" "$Location" "$LongDeg" "$Longitude"
|
"$FormWidth" "$Friday" "$Fromnow" "$HideCompletedTodos" "$Hour" "$Hplu" "$HushMode"
|
||||||
"$LongMin" "$LongSec" "$March" "$MaxSatIter" "$MaxStringLen" "$May"
|
"$IgnoreOnce" "$InfDelta" "$IntMax" "$IntMin" "$Is" "$January" "$JSONMode" "$July"
|
||||||
"$MinsFromUTC" "$Minute" "$Monday" "$Mplu" "$NextMode" "$November" "$Now" "$NumQueued"
|
"$June" "$LatDeg" "$Latitude" "$LatMin" "$LatSec" "$Location"
|
||||||
"$NumTrig" "$October" "$On" "$Pm" "$PrefixLineNo" "$PSCal" "$RunOff" "$Saturday"
|
"$LongDeg" "$Longitude" "$LongMin" "$LongSec" "$March" "$MaxFullOmits"
|
||||||
"$September" "$SimpleCal" "$SortByDate" "$SortByPrio" "$SortByTime"
|
"$MaxLateMinutes" "$MaxPartialOmits" "$MaxSatIter" "$MaxStringLen"
|
||||||
"$SubsIndent" "$Sunday" "$SysInclude" "$T" "$Td" "$Thursday" "$TimeSep" "$Tm"
|
"$May" "$MinsFromUTC" "$Minute" "$Monday" "$Mplu" "$NextMode"
|
||||||
"$Today" "$Tomorrow" "$Tuesday" "$Tw" "$Ty" "$U" "$Ud" "$Um" "$UntimedFirst" "$Uw" "$Uy"
|
"$November" "$Now" "$NumFullOmits" "$NumPartialOmits" "$NumQueued"
|
||||||
"$Was" "$Wednesday")
|
"$NumTrig" "$October" "$On" "$OnceFile" "$ParseUntriggered" "$Pm"
|
||||||
|
"$PrefixLineNo" "$PSCal" "$RunOff" "$Saturday" "$September"
|
||||||
|
"$SimpleCal" "$SortByDate" "$SortByPrio" "$SortByTime" "$SubsIndent"
|
||||||
|
"$Sunday" "$SuppressImplicitWarnings" "$SuppressLRM" "$SysInclude" "$T" "$Tb" "$Td"
|
||||||
|
"$TerminalBackground" "$Thursday" "$TimeSep" "$TimetIs64bit" "$Tm" "$Today" "$TodoFilter"
|
||||||
|
"$Tomorrow" "$Tt" "$Tuesday" "$Tw" "$Ty" "$U" "$Ud" "$Um"
|
||||||
|
"$UntimedFirst" "$Use256Colors" "$UseBGVTColors" "$UseTrueColors"
|
||||||
|
"$UseVTColors" "$Uw" "$Uy" "$Was" "$Wednesday")
|
||||||
#'(lambda (a b) (> (length a) (length b)))))
|
#'(lambda (a b) (> (length a) (length b)))))
|
||||||
|
|
||||||
|
|
||||||
(defconst remind-time-words
|
(defconst remind-time-words
|
||||||
(sort
|
(sort
|
||||||
(list "Jan" "January" "Feb" "Mar" "Apr" "Jun" "Jul" "Aug" "Sept" "Sep" "Oct" "Nov" "Dec"
|
(list "Apr" "April" "Aug" "August" "Dec" "December" "Feb" "February"
|
||||||
"February" "March" "April" "May" "June" "July" "August" "September" "October"
|
"Jan" "January" "Jul" "July" "Jun" "June" "Mar" "March" "May"
|
||||||
"November" "December" "Mon" "Monday" "Tue" "Tues" "Tuesday" "Wed" "Wednesday"
|
"Nov" "November" "Oct" "October" "Sep" "September" "Fri"
|
||||||
"Thu" "Thursday" "Thurs" "Fri" "Friday" "Saturday" "Sat" "Sun" "Sunday")
|
"Friday" "Mon" "Monday" "Sat" "Saturday" "Sun" "Sunday" "Thu"
|
||||||
|
"Thursday" "Tue" "Tuesday" "Wed" "Wednesday")
|
||||||
#'(lambda (a b) (> (length a) (length b)))))
|
#'(lambda (a b) (> (length a) (length b)))))
|
||||||
|
|
||||||
|
|
||||||
(defconst remind-builtin-functions
|
(defconst remind-builtin-functions
|
||||||
(sort
|
(sort
|
||||||
(list "abs" "access" "adawn" "adusk" "ampm" "args" "asc" "baseyr" "char"
|
(list "_" "abs" "access" "adawn" "adusk" "ampm" "ansicolor" "args" "asc"
|
||||||
"choose" "coerce" "current" "date" "datepart" "datetime" "dawn" "day"
|
"baseyr" "catch" "catcherr" "char" "choose" "codepoint" "coerce" "columns" "const" "current" "date"
|
||||||
"daysinmon" "defined" "dosubst" "dusk" "easterdate" "evaltrig"
|
"datepart" "datetime" "dawn" "day" "daysinmon" "defined" "dosubst"
|
||||||
"filedate" "filedatetime" "filedir" "filename" "getenv" "hebdate"
|
"dusk" "easterdate" "escape" "eval" "evaltrig" "filedate" "filedatetime"
|
||||||
"hebday" "hebmon" "hebyear" "hour" "iif" "index" "isany" "isdst"
|
"filedir" "filename" "getenv" "hebdate" "hebday" "hebmon" "hebyear" "hex"
|
||||||
"isleap" "isomitted" "language" "lower" "max" "min" "minsfromutc"
|
"hour" "htmlescape" "htmlstriptags" "iif" "index" "isany" "isconst" "isdst"
|
||||||
"minute" "mon" "monnum" "moondate" "moondatetime" "moonphase"
|
"isleap" "isomitted" "language" "localtoutc" "lower" "max"
|
||||||
"moontime" "ndawn" "ndusk" "nonomitted" "now" "ord" "ostype" "pad" "plural"
|
"mbasc" "mbindex" "mbstrlen" "mbsubstr" "min"
|
||||||
"psmoon" "psshade" "realcurrent" "realnow" "realtoday" "sgn" "shell"
|
"minsfromutc" "minute" "mon" "monnum" "moondate" "moondatetime"
|
||||||
"shellescape" "slide" "strlen" "substr" "sunrise" "sunset" "time"
|
"moonphase" "moonrise" "moonrisedir" "moonset" "moonsetdir" "moontime"
|
||||||
"timepart" "today" "trig" "trigback" "trigdate" "trigdatetime"
|
"multitrig" "ndawn" "ndusk" "nonconst" "nonomitted" "now" "ord" "orthodoxeaster"
|
||||||
"trigdelta" "trigduration" "trigeventduration" "trigeventstart"
|
"ostype" "pad" "plural" "psmoon" "psshade" "realcurrent" "realnow"
|
||||||
"trigfrom" "trigger" "trigpriority" "trigrep" "trigscanfrom"
|
"realtoday" "rows" "sgn" "shell" "shellescape" "slide" "soleq"
|
||||||
"trigtime" "trigtimedelta" "trigtimerep" "triguntil" "trigvalid"
|
"stdout" "strlen" "substr" "sunrise" "sunset" "time" "timepart"
|
||||||
"typeof" "tzconvert" "upper" "value" "version" "weekno" "wkday"
|
"timezone" "today" "trig" "trigback" "trigbase" "trigcompletethrough" "trigdate" "trigdatetime"
|
||||||
"wkdaynum" "year")
|
"trigdelta" "trigduration" "trigeventduration" "trigeventstart" "trigeventstarttz"
|
||||||
|
"trigfrom" "trigger" "triginfo" "trigistodo" "trigmaxoverdue" "trigpriority" "trigrep"
|
||||||
|
"trigscanfrom" "trigtags" "trigtime" "trigtimedelta" "trigtimerep" "trigtimetz" "trigtz"
|
||||||
|
"triguntil" "trigvalid" "typeof" "tzconvert" "upper" "utctolocal"
|
||||||
|
"value" "version" "weekno" "wkday" "wkdaynum" "year"
|
||||||
|
)
|
||||||
#'(lambda (a b) (> (length a) (length b)))))
|
#'(lambda (a b) (> (length a) (length b)))))
|
||||||
|
|
||||||
;;; faces
|
;;; faces
|
||||||
@@ -183,21 +194,21 @@
|
|||||||
(defvar remind-conf-command-face 'remind-conf-command-face
|
(defvar remind-conf-command-face 'remind-conf-command-face
|
||||||
"Remind commands.")
|
"Remind commands.")
|
||||||
(defface remind-conf-command-face
|
(defface remind-conf-command-face
|
||||||
'((t :foreground "SeaGreen4" :bold t))
|
'((t :foreground "#FF8080"))
|
||||||
"Font Lock mode face used to highlight commands."
|
"Font Lock mode face used to highlight commands."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
(defvar remind-conf-keyword-face 'remind-conf-keyword-face
|
(defvar remind-conf-keyword-face 'remind-conf-keyword-face
|
||||||
"Remind keywords.")
|
"Remind keywords.")
|
||||||
(defface remind-conf-keyword-face
|
(defface remind-conf-keyword-face
|
||||||
'((t :foreground "blue violet"))
|
'((t :foreground "#FFFF80"))
|
||||||
"Font Lock mode face used to highlight keywords."
|
"Font Lock mode face used to highlight keywords."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
(defvar remind-conf-substitutes-face 'remind-conf-substitutes-face
|
(defvar remind-conf-substitutes-face 'remind-conf-substitutes-face
|
||||||
"Remind substitutes.")
|
"Remind substitutes.")
|
||||||
(defface remind-conf-substitutes-face
|
(defface remind-conf-substitutes-face
|
||||||
'((t :foreground "blue2"))
|
'((t :foreground "#8080FF"))
|
||||||
"Font Lock mode face used to highlight substitutes."
|
"Font Lock mode face used to highlight substitutes."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
@@ -211,7 +222,7 @@
|
|||||||
(defvar remind-conf-variable-face 'remind-conf-variable-face
|
(defvar remind-conf-variable-face 'remind-conf-variable-face
|
||||||
"Remind variable.")
|
"Remind variable.")
|
||||||
(defface remind-conf-variable-face
|
(defface remind-conf-variable-face
|
||||||
'((t :foreground "DeepPink2" :bold t))
|
'((t :foreground "#FF8080" :bold t))
|
||||||
"Font Lock mode face used to highlight commands."
|
"Font Lock mode face used to highlight commands."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
@@ -232,14 +243,14 @@
|
|||||||
(defvar remind-comment-face 'remind-comment-face
|
(defvar remind-comment-face 'remind-comment-face
|
||||||
"Remind comments.")
|
"Remind comments.")
|
||||||
(defface remind-comment-face
|
(defface remind-comment-face
|
||||||
'((t :foreground "brown"))
|
'((t :foreground "#FF7F24"))
|
||||||
"Font-lock face for highlighting comments."
|
"Font-lock face for highlighting comments."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
(defvar remind-string-face 'remind-string-face
|
(defvar remind-string-face 'remind-string-face
|
||||||
"Remind strings.")
|
"Remind strings.")
|
||||||
(defface remind-string-face
|
(defface remind-string-face
|
||||||
'((t :foreground "tomato"))
|
'((t :foreground "#FF7FE0"))
|
||||||
"Font lock mode face used to highlight strings."
|
"Font lock mode face used to highlight strings."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
@@ -290,12 +301,12 @@
|
|||||||
|
|
||||||
(defconst remind-conf-font-lock-keywords-1
|
(defconst remind-conf-font-lock-keywords-1
|
||||||
(list
|
(list
|
||||||
'("^[\;\#]\\s-+.*$" . remind-comment-face)
|
'("^\s*[\;\#].*$" . remind-comment-face)
|
||||||
|
'("\"[^\"]*\"" . remind-string-face)
|
||||||
'(remind-keywords-matcher . remind-conf-keyword-face)
|
'(remind-keywords-matcher . remind-conf-keyword-face)
|
||||||
'("%[\"_]" . font-lock-warning-face)
|
'("%[\"_]" . font-lock-warning-face)
|
||||||
'("\\(%[a-mops-w]\\)" . remind-conf-substitutes-face)
|
'("\\(%[a-z]\\)" . remind-conf-substitutes-face)
|
||||||
'("\"[^\"]*\"" . remind-string-face))
|
"Minimal font-locking for `remind-conf-mode'."))
|
||||||
"Minimal font-locking for `remind-conf-mode'.")
|
|
||||||
|
|
||||||
(defconst remind-conf-font-lock-keywords-2
|
(defconst remind-conf-font-lock-keywords-2
|
||||||
(append remind-conf-font-lock-keywords-1
|
(append remind-conf-font-lock-keywords-1
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
REMIND version 3.2 for UNIX
|
Remind for UNIX and Linux
|
||||||
|
|
||||||
REMIND is a sophisticated alarm/calendar program. Details are given
|
Remind is a sophisticated alarm/calendar program. Details are given
|
||||||
in the man page, "remind.1".
|
in the man page, "remind.1".
|
||||||
|
|
||||||
INSTALLING REMIND:
|
INSTALLING REMIND:
|
||||||
@@ -19,88 +19,13 @@ If you do NOT have Tcl/Tk or are NOT running X11:
|
|||||||
|
|
||||||
1) Edit the file "src/custom.h" according to your preferences.
|
1) Edit the file "src/custom.h" according to your preferences.
|
||||||
|
|
||||||
2) Edit the file "src/lang.h" to choose a language.
|
2) Type: "make"
|
||||||
|
|
||||||
3) Type: "make"
|
3) Type: "make install" -- you may need to be root to do this.
|
||||||
|
|
||||||
4) Type: "make install" -- you may need to be root to do this.
|
|
||||||
|
|
||||||
The subdirectory "www" contains scripts for making a nice calendar
|
The subdirectory "www" contains scripts for making a nice calendar
|
||||||
web server. See the files README and Makefile in that directory.
|
web server. See the files README and Makefile in that directory.
|
||||||
|
|
||||||
The file "examples/defs.rem" has some sample Remind definitions and
|
|
||||||
commands, as well as U.S. and Jewish holidays.
|
|
||||||
|
|
||||||
OTHER LANGUAGE SUPPORT
|
|
||||||
|
|
||||||
Remind has support for languages other than English. See the file
|
|
||||||
"src/lang.h" for details. The language support may vary - you can change
|
|
||||||
only the substitution filter, or you can translate all of the usage
|
|
||||||
instructions and error messages as well. See "src/langs/french.h" for an
|
|
||||||
example of the latter.
|
|
||||||
|
|
||||||
To compile Remind for a non-english language, look at the constants
|
|
||||||
defined in "src/lang.h". Then, to compile Remind for Italian (as an
|
|
||||||
example), type:
|
|
||||||
|
|
||||||
make "LANGDEF=-DLANG=ITALIAN"
|
|
||||||
|
|
||||||
If you add support for a non-English language, Remind will accept both the
|
|
||||||
English and non-English names of months and weekdays in an input script.
|
|
||||||
However, you should not rely on this feature if you want to write portable
|
|
||||||
Remind scripts.
|
|
||||||
|
|
||||||
At a minimum, you should support month and day names in the foreign
|
|
||||||
language, and should modify the substitution filter appropriately.
|
|
||||||
If you are truly diligent, you can translate usage and error messages
|
|
||||||
too.
|
|
||||||
|
|
||||||
Take a look at the files "src/langs/english.h" and
|
|
||||||
"src/langs/german.h" if you want to add support for your favourite
|
|
||||||
language. If you do add another language to Remind, please let me
|
|
||||||
know! Here are the basic guidelines:
|
|
||||||
|
|
||||||
- Your language file should be called "src/langs/lxxx.h", where lxxx
|
|
||||||
is the first 8 characters of the ENGLISH name of your language.
|
|
||||||
|
|
||||||
- Your language file should define L_LANGNAME to be the full English
|
|
||||||
name of your language, with the first letter capitalized and the rest
|
|
||||||
lower-case.
|
|
||||||
|
|
||||||
- You can test your language file with the script "tests/tstlang.rem"
|
|
||||||
|
|
||||||
- Your localized strings must be encoded using UTF-8.
|
|
||||||
|
|
||||||
RELEASE NOTES -- miscellaneous info that couldn't go anywhere else!
|
|
||||||
|
|
||||||
1. POPUP REMINDERS
|
|
||||||
|
|
||||||
If you're running under X11 and you have the Tcl tools, you can create
|
|
||||||
simple pop-up reminders by creating the following Tcl script called
|
|
||||||
'popup'. It pops a message on to the screen and waits for you to
|
|
||||||
press the 'OK' button. If you don't press the OK button within 15
|
|
||||||
seconds, it exits anyway. To use it, you can use the '-k' option for
|
|
||||||
Remind as follows:
|
|
||||||
|
|
||||||
remind "-kpopup '%s'&" .reminders
|
|
||||||
|
|
||||||
Or use the following in your Remind script:
|
|
||||||
|
|
||||||
REM AT 17:00 RUN popup 'Time to go home.' &
|
|
||||||
|
|
||||||
This Tcl script is a slightly modified version of one submitted by
|
|
||||||
Norman Walsh.
|
|
||||||
|
|
||||||
-------------- Cut Here ---------- Cut Here ---------- Cut Here -------------
|
|
||||||
#!/usr/local/bin/wish
|
|
||||||
wm withdraw .
|
|
||||||
after 15000 { destroy . ; exit }
|
|
||||||
tk_messageBox -message Message -detail $argv -icon info -type ok
|
|
||||||
destroy .
|
|
||||||
exit
|
|
||||||
-------------- Cut Here ---------- Cut Here ---------- Cut Here -------------
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
Dianne Skoll <dianne@skoll.ca>
|
Dianne Skoll <dianne@skoll.ca>
|
||||||
https://dianne.skoll.ca/projects/remind/
|
https://dianne.skoll.ca/projects/remind/
|
||||||
|
|||||||
1013
docs/WHATSNEW
1013
docs/WHATSNEW
File diff suppressed because it is too large
Load Diff
1
examples/alignment.rem
Normal file → Executable file
1
examples/alignment.rem
Normal file → Executable file
@@ -1,3 +1,4 @@
|
|||||||
|
#!/usr/bin/env -S remind -@2
|
||||||
# Demo the columns() function
|
# Demo the columns() function
|
||||||
#
|
#
|
||||||
# Run as: remind -@2 alignment.rem
|
# Run as: remind -@2 alignment.rem
|
||||||
|
|||||||
@@ -26,7 +26,10 @@ MSG This is [ansicolor(0,255,0)]green.[ansicolor("")]
|
|||||||
MSG This is [ansicolor(0,0,255)]blue.[ansicolor("")]
|
MSG This is [ansicolor(0,0,255)]blue.[ansicolor("")]
|
||||||
MSG This is [ansicolor(255,255,0)]yellow.[ansicolor("")]
|
MSG This is [ansicolor(255,255,0)]yellow.[ansicolor("")]
|
||||||
MSG This is [ansicolor(255,0,255)]magenta.[ansicolor("")]
|
MSG This is [ansicolor(255,0,255)]magenta.[ansicolor("")]
|
||||||
MSG This is [ansicolor(0,255,255)]cyan.[ansicolor("")]%_
|
MSG This is [ansicolor(0,255,255)]cyan.[ansicolor("")]
|
||||||
|
MSG This is [ansi_bold][ansicolor(255,255,255)][ansicolor(0,0,0,1)]white on black[ansicolor("")][ansi_normal]
|
||||||
|
MSG This is [ansi_bold][ansicolor(0,0,0)][ansicolor(255,255,255,1)]black on white[ansicolor("")][ansi_normal]
|
||||||
|
MSG %_
|
||||||
|
|
||||||
# You can combine attributes
|
# You can combine attributes
|
||||||
MSG This is [ansicolor(0,255,0)][ansicolor(0,0,96,1)][ansi_italic][ansi_bold]Green-Bold-Italic-on-Blue[ansi_normal][ansicolor("")]
|
MSG This is [ansicolor(0,255,0)][ansicolor(0,0,96,1)][ansi_italic][ansi_bold]Green-Bold-Italic-on-Blue[ansi_normal][ansicolor("")]
|
||||||
|
|||||||
@@ -5,9 +5,6 @@
|
|||||||
# Best used in a UTF-8 environment.
|
# Best used in a UTF-8 environment.
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
# Set this variable to 1 if your terminal has a dark background or 0 if
|
|
||||||
# it: light.
|
|
||||||
|
|
||||||
# Set your latitude and longitude correctly for Sunrise/Sunset/Equinox/Solstice
|
# Set your latitude and longitude correctly for Sunrise/Sunset/Equinox/Solstice
|
||||||
#
|
#
|
||||||
# The values below are for Ottawa, Ontario, Canada
|
# The values below are for Ottawa, Ontario, Canada
|
||||||
@@ -20,7 +17,8 @@ BANNER %
|
|||||||
|
|
||||||
INCLUDE [$SysInclude]/ansitext.rem
|
INCLUDE [$SysInclude]/ansitext.rem
|
||||||
|
|
||||||
MSG Today is [ansi_bold][$T][ansi_normal], being the [ord($T-date(year($T),1,1)+1)] day of [year($T)].%_
|
MSG Today is [ansi_bold][$T][ansi_normal], being the [ord($T-date(year($T),1,1)+1)] day of [year($T)].
|
||||||
|
MSG Not including today, the year [year($T)] has [date(year($T)+1, 1, 1)-$T-1] more [plural(date(year($T)+1, 1, 1)-$T-1, "day")] left.%_
|
||||||
|
|
||||||
IF $TerminalBackground == 0
|
IF $TerminalBackground == 0
|
||||||
SPECIAL COLOR 255 255 0 Sunrise: 🌅 [sunrise()] today and [sunrise($T+1)] tomorrow
|
SPECIAL COLOR 255 255 0 Sunrise: 🌅 [sunrise()] today and [sunrise($T+1)] tomorrow
|
||||||
@@ -34,6 +32,64 @@ EOF
|
|||||||
|
|
||||||
remind -g "-i\$Latitude=\"$latitude\"" "-i\$Longitude=\"$longitude\"" -q -@2 - "$@" <<'EOF'
|
remind -g "-i\$Latitude=\"$latitude\"" "-i\$Longitude=\"$longitude\"" -q -@2 - "$@" <<'EOF'
|
||||||
SET $AddBlankLines 0
|
SET $AddBlankLines 0
|
||||||
|
FSET angle_to_direction(x) \
|
||||||
|
IIF(x > 348 && x <= 11, "North", \
|
||||||
|
x > 11 && x <= 34, "North North-East", \
|
||||||
|
x > 34 && x <= 56, "North-East", \
|
||||||
|
x > 56 && x <= 79, "East North-East", \
|
||||||
|
x > 79 && x <= 101, "East", \
|
||||||
|
x > 101 && x <= 124, "East South-East", \
|
||||||
|
x > 124 && x <= 146, "South-East", \
|
||||||
|
x > 146 && x <= 169, "South South-East", \
|
||||||
|
x > 169 && x <= 191, "South", \
|
||||||
|
x > 191 && x <= 214, "South South-West", \
|
||||||
|
x > 214 && x <= 236, "South-West", \
|
||||||
|
x > 236 && x <= 259, "West South-West", \
|
||||||
|
x > 259 && x <= 281, "West", \
|
||||||
|
x > 281 && x <= 304, "West North-West", \
|
||||||
|
x > 304 && x <= 326, "North-West", \
|
||||||
|
"North North-West")
|
||||||
|
|
||||||
|
BANNER %
|
||||||
|
set mr moonrise()
|
||||||
|
set ms moonset()
|
||||||
|
set mr_a moonrisedir()
|
||||||
|
set ms_a moonsetdir()
|
||||||
|
|
||||||
|
REM NOQUEUE [mr] MSG Moonrise: %*3 in the [angle_to_direction(mr_a)] ([mr_a] degrees)
|
||||||
|
REM NOQUEUE [ms] MSG Moonset: %*3 in the [angle_to_direction(ms_a)] ([ms_a] degrees)
|
||||||
|
|
||||||
|
IF (datepart(mr) != today())
|
||||||
|
REM MSG Moonrise: No moonrise today
|
||||||
|
ENDIF
|
||||||
|
IF (datepart(ms) != today())
|
||||||
|
REM MSG Moonset: No moonset today
|
||||||
|
ENDIF
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
|
||||||
|
remind -g "-i\$Latitude=\"$latitude\"" "-i\$Longitude=\"$longitude\"" -q -@2 - "$@" <<'EOF'
|
||||||
|
SET $AddBlankLines 0
|
||||||
|
FSET angle_to_direction(x) \
|
||||||
|
IIF(x > 348 || x <= 11, "North", \
|
||||||
|
x > 11 && x <= 34, "North North-East", \
|
||||||
|
x > 34 && x <= 56, "North-East", \
|
||||||
|
x > 56 && x <= 79, "East North-East", \
|
||||||
|
x > 79 && x <= 101, "East", \
|
||||||
|
x > 101 && x <= 124, "East South-East", \
|
||||||
|
x > 124 && x <= 146, "South-East", \
|
||||||
|
x > 146 && x <= 169, "South South-East", \
|
||||||
|
x > 169 && x <= 191, "South", \
|
||||||
|
x > 191 && x <= 214, "South South-West", \
|
||||||
|
x > 214 && x <= 236, "South-West", \
|
||||||
|
x > 236 && x <= 259, "West South-West", \
|
||||||
|
x > 259 && x <= 281, "West", \
|
||||||
|
x > 281 && x <= 304, "West North-West", \
|
||||||
|
x > 304 && x <= 326, "North-West", \
|
||||||
|
"North North-West")
|
||||||
|
|
||||||
BANNER %
|
BANNER %
|
||||||
IF $TerminalBackground == 0
|
IF $TerminalBackground == 0
|
||||||
REM [moondatetime(0)] +60 SPECIAL COLOR 255 255 0 New moon: 🌑 [$T] %3 (%b)
|
REM [moondatetime(0)] +60 SPECIAL COLOR 255 255 0 New moon: 🌑 [$T] %3 (%b)
|
||||||
|
|||||||
@@ -6,6 +6,11 @@
|
|||||||
# Cut and paste as desired! Also, near the end, there are a bunch of #
|
# Cut and paste as desired! Also, near the end, there are a bunch of #
|
||||||
# holiday definitions for the U.S. #
|
# holiday definitions for the U.S. #
|
||||||
# #
|
# #
|
||||||
|
# *** NOTE *** #
|
||||||
|
# #
|
||||||
|
# This file is simply a grab-bag of examples. It is NOT meant to be #
|
||||||
|
# included as-is in a live reminder file. #
|
||||||
|
# #
|
||||||
# Some examples provided by George M. Sipe <gsipe@pyratl.ga.pyramid.com> #
|
# Some examples provided by George M. Sipe <gsipe@pyratl.ga.pyramid.com> #
|
||||||
# #
|
# #
|
||||||
# U.S. holidays provided by Dave Rickel <drickel@sjc.mentorg.com> #
|
# U.S. holidays provided by Dave Rickel <drickel@sjc.mentorg.com> #
|
||||||
@@ -16,7 +21,7 @@
|
|||||||
# "#PSSTUFF" for nifty PostScript examples #
|
# "#PSSTUFF" for nifty PostScript examples #
|
||||||
# #
|
# #
|
||||||
# This file is part of REMIND. #
|
# This file is part of REMIND. #
|
||||||
# Copyright (C) 1992-2024 Dianne Skoll #
|
# Copyright (C) 1992-2025 Dianne Skoll #
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
# #
|
# #
|
||||||
#############################################################################
|
#############################################################################
|
||||||
@@ -27,7 +32,7 @@ RUN OFF
|
|||||||
# Ensure required version of remind is used... #
|
# Ensure required version of remind is used... #
|
||||||
################################################
|
################################################
|
||||||
IF version() < "03.04.02"
|
IF version() < "03.04.02"
|
||||||
ERRMSG This file requires at least version 03.01.10 of Remind.%
|
ERRMSG This file requires at least version 03.04.02 of Remind.%
|
||||||
ERRMSG This version is version [version()].
|
ERRMSG This version is version [version()].
|
||||||
EXIT
|
EXIT
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -305,51 +310,51 @@ FSET _PastMon(x, y) IIF(WKDAYNUM(_h2(x,y))!=1, _h2(x,y), _h2(x,y)+1)
|
|||||||
SET InIsrael VALUE("InIsrael", 0)
|
SET InIsrael VALUE("InIsrael", 0)
|
||||||
SET Reform VALUE("Reform", 0)
|
SET Reform VALUE("Reform", 0)
|
||||||
|
|
||||||
[_h(1, "Tishrey")] ++4 MSG %"Rosh Hashana 1%" is %b.
|
REM [_h(1, "Tishrey")] ++4 MSG %"Rosh Hashana 1%" is %b.
|
||||||
|
|
||||||
# No RH-2 or Tzom Gedalia in Reform
|
# No RH-2 or Tzom Gedalia in Reform
|
||||||
IF !Reform
|
IF !Reform
|
||||||
[_h(2, "Tishrey")] ++4 MSG %"Rosh Hashana 2%" is %b.
|
REM [_h(2, "Tishrey")] ++4 MSG %"Rosh Hashana 2%" is %b.
|
||||||
[_PastSat(3, "Tishrey")] ++4 MSG %"Tzom Gedalia%" is %b.
|
REM [_PastSat(3, "Tishrey")] ++4 MSG %"Tzom Gedalia%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(10, "Tishrey")] ++4 MSG %"Yom Kippur%" is %b.
|
REM [_h(10, "Tishrey")] ++4 MSG %"Yom Kippur%" is %b.
|
||||||
[_h(15, "Tishrey")] ++4 MSG %"Sukkot 1%" is %b.
|
REM [_h(15, "Tishrey")] ++4 MSG %"Sukkot 1%" is %b.
|
||||||
|
|
||||||
IF !InIsrael
|
IF !InIsrael
|
||||||
[_h(16, "Tishrey")] MSG %"Sukkot 2%"
|
REM [_h(16, "Tishrey")] MSG %"Sukkot 2%"
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(21, "Tishrey")] ++4 MSG %"Hoshana Rabba%" is %b.
|
REM [_h(21, "Tishrey")] ++4 MSG %"Hoshana Rabba%" is %b.
|
||||||
[_h(22, "Tishrey")] ++4 MSG %"Shemini Atzeret%" is %b.
|
REM [_h(22, "Tishrey")] ++4 MSG %"Shemini Atzeret%" is %b.
|
||||||
|
|
||||||
IF InIsrael
|
IF InIsrael
|
||||||
[_h(22, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b.
|
REM [_h(22, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b.
|
||||||
ELSE
|
ELSE
|
||||||
[_h(23, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b.
|
REM [_h(23, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
# Because Kislev can change length, we must be more careful about Chanukah
|
# Because Kislev can change length, we must be more careful about Chanukah
|
||||||
FSET _chan(x) HEBDATE(24, "Kislev", $U-9)+x
|
FSET _chan(x) HEBDATE(24, "Kislev", $U-9)+x
|
||||||
[_chan(1)] ++4 MSG %"Chanukah 1%" is %b.
|
REM [_chan(1)] ++4 MSG %"Chanukah 1%" is %b.
|
||||||
[_chan(2)] MSG %"Chanukah 2%"
|
REM [_chan(2)] MSG %"Chanukah 2%"
|
||||||
[_chan(3)] MSG %"Chanukah 3%"
|
REM [_chan(3)] MSG %"Chanukah 3%"
|
||||||
[_chan(4)] MSG %"Chanukah 4%"
|
REM [_chan(4)] MSG %"Chanukah 4%"
|
||||||
[_chan(5)] MSG %"Chanukah 5%"
|
REM [_chan(5)] MSG %"Chanukah 5%"
|
||||||
[_chan(6)] MSG %"Chanukah 6%"
|
REM [_chan(6)] MSG %"Chanukah 6%"
|
||||||
[_chan(7)] MSG %"Chanukah 7%"
|
REM [_chan(7)] MSG %"Chanukah 7%"
|
||||||
[_chan(8)] MSG %"Chanukah 8%"
|
REM [_chan(8)] MSG %"Chanukah 8%"
|
||||||
|
|
||||||
# Not sure about Reform's position on the next one.
|
# Not sure about Reform's position on the next one.
|
||||||
IF !Reform
|
IF !Reform
|
||||||
# 10 Tevet will never be a Saturday, so whether or not to
|
# 10 Tevet will never be a Saturday, so whether or not to
|
||||||
# move it is moot. (Thanks to Art Werschulz.)
|
# move it is moot. (Thanks to Art Werschulz.)
|
||||||
[_h(10, "Tevet")] MSG %"Tzom Tevet%" is %b.
|
REM [_h(10, "Tevet")] MSG %"Tzom Tevet%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(15, "Shvat")] ++4 MSG %"Tu B'Shvat%" is %b.
|
REM [_h(15, "Shvat")] ++4 MSG %"Tu B'Shvat%" is %b.
|
||||||
[_h(14, "Adar A")] ++4 MSG %"Purim Katan%" is %b.
|
REM [_h(14, "Adar A")] ++4 MSG %"Purim Katan%" is %b.
|
||||||
[_h(15, "Adar A")] ++4 MSG %"Shushan Purim Katan%" is %b.
|
REM [_h(15, "Adar A")] ++4 MSG %"Shushan Purim Katan%" is %b.
|
||||||
|
|
||||||
# If Purim is on Sunday, then Fast of Esther is 11 Adar.
|
# If Purim is on Sunday, then Fast of Esther is 11 Adar.
|
||||||
IF WKDAYNUM(_h2(13, "Adar")) != 6
|
IF WKDAYNUM(_h2(13, "Adar")) != 6
|
||||||
@@ -357,18 +362,18 @@ IF WKDAYNUM(_h2(13, "Adar")) != 6
|
|||||||
ELSE
|
ELSE
|
||||||
REM [_h2(11, "Adar")] ++4 MSG %"Fast of Esther%" is %b.
|
REM [_h2(11, "Adar")] ++4 MSG %"Fast of Esther%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
[_h(14, "Adar")] ++4 MSG %"Purim%" is %b.
|
REM [_h(14, "Adar")] ++4 MSG %"Purim%" is %b.
|
||||||
[_h(15, "Adar")] ++4 MSG %"Shushan Purim%" is %b.
|
REM [_h(15, "Adar")] ++4 MSG %"Shushan Purim%" is %b.
|
||||||
[_h(15, "Nisan")] ++4 MSG %"Pesach%" is %b.
|
REM [_h(15, "Nisan")] ++4 MSG %"Pesach%" is %b.
|
||||||
|
|
||||||
IF !InIsrael
|
IF !InIsrael
|
||||||
[_h(16, "Nisan")] MSG %"Pesach 2%"
|
REM [_h(16, "Nisan")] MSG %"Pesach 2%"
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(21, "Nisan")] MSG %"Pesach 7%"
|
REM [_h(21, "Nisan")] MSG %"Pesach 7%"
|
||||||
|
|
||||||
IF !InIsrael && !Reform
|
IF !InIsrael && !Reform
|
||||||
[_h(22, "Nisan")] MSG %"Pesach 8%"
|
REM [_h(22, "Nisan")] MSG %"Pesach 8%"
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
REM [_PastSun(27, "Nisan")] SATISFY 1
|
REM [_PastSun(27, "Nisan")] SATISFY 1
|
||||||
@@ -384,36 +389,36 @@ ENDIF
|
|||||||
# Thursday. If 4 Iyar is a Sunday, then Yom Hazikaron
|
# Thursday. If 4 Iyar is a Sunday, then Yom Hazikaron
|
||||||
# moves to 5 Iyar and Yom Ha'atzmaut to 6 Iyar.
|
# moves to 5 Iyar and Yom Ha'atzmaut to 6 Iyar.
|
||||||
IF WKDAYNUM(_h2(4, "Iyar")) == 4 || WKDAYNUM(_h2(4, "Iyar")) == 5
|
IF WKDAYNUM(_h2(4, "Iyar")) == 4 || WKDAYNUM(_h2(4, "Iyar")) == 5
|
||||||
[_h(2, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
REM [_h(2, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
||||||
[_h(3, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
REM [_h(3, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
||||||
ELSE
|
ELSE
|
||||||
IF WKDAYNUM(_h2(4, "Iyar")) == 0
|
IF WKDAYNUM(_h2(4, "Iyar")) == 0
|
||||||
[_h(5, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
REM [_h(5, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
||||||
[_h(6, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
REM [_h(6, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
||||||
ELSE
|
ELSE
|
||||||
[_h(4, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
REM [_h(4, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
||||||
[_h(5, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
REM [_h(5, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
# Not sure about Reform's position on Lag B'Omer
|
# Not sure about Reform's position on Lag B'Omer
|
||||||
IF !Reform
|
IF !Reform
|
||||||
[_h(18, "Iyar")] ++4 MSG %"Lag B'Omer%" is %b.
|
REM [_h(18, "Iyar")] ++4 MSG %"Lag B'Omer%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(28, "Iyar")] ++4 MSG %"Yom Yerushalayim%" is %b.
|
REM [_h(28, "Iyar")] ++4 MSG %"Yom Yerushalayim%" is %b.
|
||||||
[_h(6, "Sivan")] ++4 MSG %"Shavuot%" is %b.
|
REM [_h(6, "Sivan")] ++4 MSG %"Shavuot%" is %b.
|
||||||
|
|
||||||
IF !InIsrael && !Reform
|
IF !InIsrael && !Reform
|
||||||
[_h(7, "Sivan")] MSG %"Shavuot 2%"
|
REM [_h(7, "Sivan")] MSG %"Shavuot 2%"
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
# Fairly sure Reform Jews don't observe the next two
|
# Fairly sure Reform Jews don't observe the next two
|
||||||
IF !Reform
|
IF !Reform
|
||||||
# Tzom Tamuz and Tish'a B'Av are moved to Sunday if they normally
|
# Tzom Tamuz and Tish'a B'Av are moved to Sunday if they normally
|
||||||
# fall on a Saturday
|
# fall on a Saturday
|
||||||
[_PastSat(17, "Tamuz")] ++4 MSG %"Tzom Tammuz%" is %b.
|
REM [_PastSat(17, "Tamuz")] ++4 MSG %"Tzom Tammuz%" is %b.
|
||||||
[_PastSat(9, "Av")] ++4 MSG %"Tish'a B'Av%" is %b.
|
REM [_PastSat(9, "Av")] ++4 MSG %"Tish'a B'Av%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
# Counting the omer - do the whole spiel, i.e:
|
# Counting the omer - do the whole spiel, i.e:
|
||||||
|
|||||||
24
examples/tflag.rem
Executable file
24
examples/tflag.rem
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env -S remind -@2
|
||||||
|
# This is a little Easter Egg that simply draws
|
||||||
|
# the Transgender Pride Flag. It's included in
|
||||||
|
# Remind because (1) the author is trans and (2)
|
||||||
|
# trans people are under attack in the USA and many
|
||||||
|
# other places. So this is a little show of support
|
||||||
|
# and resistance for trans people.
|
||||||
|
SET $AddBlankLines 0
|
||||||
|
BANNER %
|
||||||
|
set c max(columns()-1, 10)
|
||||||
|
set r max(rows(), 5)
|
||||||
|
|
||||||
|
set bar "█" * c
|
||||||
|
set dups r/5
|
||||||
|
set bars (bar + "%_") * dups
|
||||||
|
|
||||||
|
set bars mbsubstr(bars, 0, mbstrlen(bars)-2)
|
||||||
|
|
||||||
|
REM SPECIAL COLOR 91 206 250 [bars]
|
||||||
|
REM SPECIAL COLOR 245 169 184 [bars]
|
||||||
|
REM SPECIAL COLOR 255 255 255 [bars]
|
||||||
|
REM SPECIAL COLOR 245 169 184 [bars]
|
||||||
|
REM SPECIAL COLOR 91 206 250 [bars]
|
||||||
|
|
||||||
@@ -2,12 +2,12 @@
|
|||||||
# Not all sequences are supported by all terminals.
|
# Not all sequences are supported by all terminals.
|
||||||
|
|
||||||
# This file is part of REMIND
|
# This file is part of REMIND
|
||||||
# REMIND is Copyright (C) 1992-2024 by Dianne Skoll
|
# REMIND is Copyright (C) 1992-2025 by Dianne Skoll
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
if !defined("ansi_bold")
|
if !defined("ansi_bold")
|
||||||
# Disable ANSI attributes in calandar mode
|
# Disable ANSI attributes in calendar mode or JSON mode
|
||||||
if $CalMode
|
if $CalMode || $PSCal || $JSONMode
|
||||||
set ansi_normal ""
|
set ansi_normal ""
|
||||||
set ansi_bold ""
|
set ansi_bold ""
|
||||||
set ansi_faint ""
|
set ansi_faint ""
|
||||||
@@ -28,7 +28,7 @@ if !defined("ansi_bold")
|
|||||||
set ansi_underline2 char(27) + "[21m"
|
set ansi_underline2 char(27) + "[21m"
|
||||||
set ansi_overline char(27) + "[53m"
|
set ansi_overline char(27) + "[53m"
|
||||||
endif
|
endif
|
||||||
preserve ansi_normal ansi_bold ansi_faint ansi_italic ansi_underline2 ansi_reverse ansi_strikeout ansi_underline2 ansi_overline
|
preserve ansi_normal ansi_bold ansi_faint ansi_italic ansi_underline ansi_reverse ansi_strikeout ansi_underline2 ansi_overline
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Example: REM MSG I must [ansi_bold]emphasize[ansi_normal] \
|
# Example: REM MSG I must [ansi_bold]emphasize[ansi_normal] \
|
||||||
|
|||||||
65
include/holidays/README
Normal file
65
include/holidays/README
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
This directory contains holiday files. The two-character files contain
|
||||||
|
holidays for various countries. Some countries (such as US and CA) have
|
||||||
|
regions with their own different holidays; the regional holidays are
|
||||||
|
stored in *.rem files underneath the country-code directory (eg, us and ca,
|
||||||
|
respectively.)
|
||||||
|
|
||||||
|
Many of these files were generated from the excellent "holidays" Python
|
||||||
|
library at https://pypi.org/project/holidays/
|
||||||
|
|
||||||
|
I did great damage to the library and host a terrible, awful hacked version
|
||||||
|
at https://github.com/dfskoll/holidays; it is this repo (in the remind-output
|
||||||
|
branch) that I used to generate the Remind files.
|
||||||
|
|
||||||
|
********************** IMPORTANT CAVEATS **********************
|
||||||
|
|
||||||
|
Any holidays that depend on a non-Gregorian calendar such as Jewish,
|
||||||
|
Islamic, Chinese and other East Asian calendars will NOT appear in the
|
||||||
|
country files! The only exceptions are holidays depending on the
|
||||||
|
Orthodox Easter date, for which Remind has support.
|
||||||
|
|
||||||
|
Also, I have made no effort to track changes to holiday legislation
|
||||||
|
over time. Therefore, the holiday files may be inaccurate for years
|
||||||
|
prior to 2024. I also did not include any one-off holidays such as
|
||||||
|
the funeral of Queen Elizabeth on 19 September 2022.
|
||||||
|
|
||||||
|
Non-country holiday files are:
|
||||||
|
|
||||||
|
chinese-new-year.rem - Chinese New Year from 2022 through 2050
|
||||||
|
discordian.rem - Discordian holidays
|
||||||
|
jewish.rem - Jewish holidays
|
||||||
|
pagan.rem - Pagan holidays
|
||||||
|
|
||||||
|
ADVANCE WARNING:
|
||||||
|
================
|
||||||
|
|
||||||
|
None of the included holiday files have deltas or substitution sequences.
|
||||||
|
You can use the following trick if you would like (for example) 7 days'
|
||||||
|
advance warning of holidays:
|
||||||
|
|
||||||
|
# Save old definition (if any) of msgsuffix
|
||||||
|
PUSH-FUNCS msgsuffix
|
||||||
|
|
||||||
|
# Save old value of $DefaultDelta
|
||||||
|
PUSH-VARS $DefaultDelta
|
||||||
|
|
||||||
|
# We want 7 days' advance warning
|
||||||
|
SET $DefaultDelta 7
|
||||||
|
|
||||||
|
# Add a suffix to print " is in xxx days", etc.
|
||||||
|
# Note the char(8) at the start to put the suffix
|
||||||
|
# on the same line as the reminder, and the final %
|
||||||
|
# in the argument of dosubst() to avoid an *extra*
|
||||||
|
# newline from being added
|
||||||
|
FSET msgsuffix(x) char(8) + dosubst(" is %b.%", $T)
|
||||||
|
|
||||||
|
# Include your holiday files here...
|
||||||
|
SYSINCLUDE holidays/us.rem
|
||||||
|
SYSINCLUDE holidays/us/ny.rem
|
||||||
|
|
||||||
|
# Restore old value $DefaultDelta
|
||||||
|
POP-VARS
|
||||||
|
|
||||||
|
# Restore old version of msgsuffix
|
||||||
|
POP-FUNCS
|
||||||
|
|
||||||
28
include/holidays/ad.rem
Normal file
28
include/holidays/ad.rem
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Andorra.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/ad/
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
OMIT 6 January MSG Epiphany
|
||||||
|
OMIT [easterdate($Uy)-47] MSG Carnival
|
||||||
|
OMIT 14 March MSG Constitution Day
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Good Friday
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Easter Monday
|
||||||
|
OMIT 1 May MSG Labor Day
|
||||||
|
OMIT [easterdate($Uy)+50] MSG Whit Monday
|
||||||
|
OMIT 15 August MSG Assumption Day
|
||||||
|
OMIT 8 September MSG National Day
|
||||||
|
OMIT 1 November MSG All Saints' Day
|
||||||
|
OMIT 8 December MSG Immaculate Conception Day
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
OMIT 26 December MSG Saint Stephen's Day
|
||||||
15
include/holidays/ad/02.rem
Normal file
15
include/holidays/ad/02.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 02 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 02.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ad.rem
|
||||||
|
|
||||||
|
REM Third Saturday in July ADDOMIT SCANFROM -28 MSG Canillo Annual Festival
|
||||||
|
REM Sunday 16 July ADDOMIT SCANFROM -28 MSG Canillo Annual Festival
|
||||||
|
REM Monday 17 July ADDOMIT SCANFROM -28 MSG Canillo Annual Festival
|
||||||
14
include/holidays/ad/03.rem
Normal file
14
include/holidays/ad/03.rem
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 03 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 03.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ad.rem
|
||||||
|
|
||||||
|
OMIT 15 August MSG Encamp Annual Festival
|
||||||
|
OMIT 16 August MSG Encamp Annual Festival
|
||||||
14
include/holidays/ad/04.rem
Normal file
14
include/holidays/ad/04.rem
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 04 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 04.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ad.rem
|
||||||
|
|
||||||
|
OMIT 15 August MSG La Massana Annual Festival
|
||||||
|
OMIT 16 August MSG La Massana Annual Festival
|
||||||
14
include/holidays/ad/05.rem
Normal file
14
include/holidays/ad/05.rem
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 05 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 05.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ad.rem
|
||||||
|
|
||||||
|
OMIT 15 August MSG Ordino Annual Festival
|
||||||
|
OMIT 16 August MSG Ordino Annual Festival
|
||||||
16
include/holidays/ad/06.rem
Normal file
16
include/holidays/ad/06.rem
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 06 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 06.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ad.rem
|
||||||
|
|
||||||
|
REM Friday 23 July ADDOMIT SCANFROM -28 MSG Sant Julià de Lòria Annual Festival
|
||||||
|
REM Saturday 24 July ADDOMIT SCANFROM -28 MSG Sant Julià de Lòria Annual Festival
|
||||||
|
REM Sunday 25 July ADDOMIT SCANFROM -28 MSG Sant Julià de Lòria Annual Festival
|
||||||
|
REM Monday 26 July ADDOMIT SCANFROM -28 MSG Sant Julià de Lòria Annual Festival
|
||||||
15
include/holidays/ad/07.rem
Normal file
15
include/holidays/ad/07.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 07 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 07.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ad.rem
|
||||||
|
|
||||||
|
REM First Saturday in August ADDOMIT SCANFROM -28 MSG Andorra la Vella Annual Festival
|
||||||
|
REM Sunday 2 August ADDOMIT SCANFROM -28 MSG Andorra la Vella Annual Festival
|
||||||
|
REM Monday 3 August ADDOMIT SCANFROM -28 MSG Andorra la Vella Annual Festival
|
||||||
14
include/holidays/ad/08.rem
Normal file
14
include/holidays/ad/08.rem
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 08 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 08.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ad.rem
|
||||||
|
|
||||||
|
OMIT 25 July MSG Escaldes-Engordany Annual Festival
|
||||||
|
OMIT 26 July MSG Escaldes-Engordany Annual Festival
|
||||||
10
include/holidays/ae.rem
Normal file
10
include/holidays/ae.rem
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for United Arab Emirates
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG رأس السنة الميلادية
|
||||||
|
OMIT 2 December MSG اليوم الوطني
|
||||||
|
OMIT 3 December MSG اليوم الوطني
|
||||||
33
include/holidays/al.rem
Normal file
33
include/holidays/al.rem
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Albania
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Festat e Vitit të Ri
|
||||||
|
REM 1 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 1, 1)), 0, 6)] MSG Festat e Vitit të Ri (ditë pushimi e shtyrë)
|
||||||
|
OMIT 2 January MSG Festat e Vitit të Ri
|
||||||
|
REM 2 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 1, 2)), 0, 6)] MSG Festat e Vitit të Ri (ditë pushimi e shtyrë)
|
||||||
|
OMIT 14 March MSG Dita e Verës
|
||||||
|
REM 14 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 14)), 0, 6)] MSG Dita e Verës (ditë pushimi e shtyrë)
|
||||||
|
OMIT 22 March MSG Dita e Nevruzit
|
||||||
|
REM 22 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 22)), 0, 6)] MSG Dita e Nevruzit (ditë pushimi e shtyrë)
|
||||||
|
REM 31 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 31)), 0, 6)] MSG E diela e Pashkëve Katolike (ditë pushimi e shtyrë)
|
||||||
|
OMIT [easterdate($Uy)] MSG E diela e Pashkëve Katolike
|
||||||
|
OMIT [easterdate($Uy)] MSG E diela e Pashkëve Ortodokse
|
||||||
|
OMIT 1 May MSG Dita Ndërkombëtare e Punëtorëve
|
||||||
|
REM 1 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 5, 1)), 0, 6)] MSG Dita Ndërkombëtare e Punëtorëve (ditë pushimi e shtyrë)
|
||||||
|
REM 5 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 5, 5)), 0, 6)] MSG E diela e Pashkëve Ortodokse (ditë pushimi e shtyrë)
|
||||||
|
OMIT 5 September MSG Dita e Shenjtërimit të Shenjt Terezës
|
||||||
|
REM 5 September OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 9, 5)), 0, 6)] MSG Dita e Shenjtërimit të Shenjt Terezës (ditë pushimi e shtyrë)
|
||||||
|
OMIT 22 November MSG Dita e Alfabetit
|
||||||
|
REM 22 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 11, 22)), 0, 6)] MSG Dita e Alfabetit (ditë pushimi e shtyrë)
|
||||||
|
OMIT 28 November MSG Dita Flamurit dhe e Pavarësisë
|
||||||
|
REM 28 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 11, 28)), 0, 6)] MSG Dita Flamurit dhe e Pavarësisë (ditë pushimi e shtyrë)
|
||||||
|
OMIT 29 November MSG Dita e Çlirimit
|
||||||
|
REM 29 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 11, 29)), 0, 6)] MSG Dita e Çlirimit (ditë pushimi e shtyrë)
|
||||||
|
OMIT 8 December MSG Dita Kombëtare e Rinisë
|
||||||
|
REM 8 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 12, 8)), 0, 6)] MSG Dita Kombëtare e Rinisë (ditë pushimi e shtyrë)
|
||||||
|
OMIT 25 December MSG Krishtlindjet
|
||||||
|
REM 25 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 12, 25)), 0, 6)] MSG Krishtlindjet (ditë pushimi e shtyrë)
|
||||||
19
include/holidays/am.rem
Normal file
19
include/holidays/am.rem
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Armenia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Նոր տարվա օր
|
||||||
|
OMIT 2 January MSG Նոր տարվա օր
|
||||||
|
OMIT 6 January MSG Սուրբ Ծնունդ եւ Հայտնություն
|
||||||
|
OMIT 28 January MSG Բանակի օր
|
||||||
|
OMIT 8 March MSG Կանանց տոն
|
||||||
|
OMIT 24 April MSG Եղեռնի զոհերի հիշատակի օր
|
||||||
|
OMIT 1 May MSG Աշխատանքի օր
|
||||||
|
OMIT 9 May MSG Հաղթանակի և Խաղաղության տոն
|
||||||
|
OMIT 28 May MSG Հանրապետության օր
|
||||||
|
OMIT 5 July MSG Սահմանադրության օր
|
||||||
|
OMIT 21 September MSG Անկախության օր
|
||||||
|
OMIT 31 December MSG Նոր տարվա գիշեր
|
||||||
41
include/holidays/ao.rem
Normal file
41
include/holidays/ao.rem
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Angola
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Dia do Ano Novo
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 4] MSG Dia do Ano Novo (ponte)
|
||||||
|
REM 3 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 4)) == 2] MSG Dia do Início da Luta Armada de Libertação Nacional (ponte)
|
||||||
|
OMIT 4 February MSG Dia do Início da Luta Armada de Libertação Nacional
|
||||||
|
REM 5 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 4)) == 4] MSG Dia do Início da Luta Armada de Libertação Nacional (ponte)
|
||||||
|
REM 12 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 13)) == 2] MSG Dia do Carnaval (ponte)
|
||||||
|
REM 14 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 13)) == 4] MSG Dia do Carnaval (ponte)
|
||||||
|
OMIT [easterdate($Uy)-47] MSG Dia do Carnaval
|
||||||
|
REM 7 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 8)) == 2] MSG Dia Internacional da Mulher (ponte)
|
||||||
|
OMIT 8 March MSG Dia Internacional da Mulher
|
||||||
|
REM 9 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 8)) == 4] MSG Dia Internacional da Mulher (ponte)
|
||||||
|
REM 22 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 23)) == 2] MSG Dia da Libertação da África Austral (ponte)
|
||||||
|
OMIT 23 March MSG Dia da Libertação da África Austral
|
||||||
|
REM 24 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 23)) == 4] MSG Dia da Libertação da África Austral (ponte)
|
||||||
|
REM 3 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 4)) == 2] MSG Dia da Paz e Reconciliação Nacional (ponte)
|
||||||
|
OMIT 4 April MSG Dia da Paz e Reconciliação Nacional
|
||||||
|
REM 5 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 4)) == 4] MSG Dia da Paz e Reconciliação Nacional (ponte)
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Sexta-Feira Santa
|
||||||
|
REM 30 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 2] MSG Dia Internacional do Trabalhador (ponte)
|
||||||
|
OMIT 1 May MSG Dia Internacional do Trabalhador
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 4] MSG Dia Internacional do Trabalhador (ponte)
|
||||||
|
REM 16 September ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 9, 17)) == 2] MSG Dia do Fundador da Nação e do Herói Nacional (ponte)
|
||||||
|
OMIT 17 September MSG Dia do Fundador da Nação e do Herói Nacional
|
||||||
|
REM 18 September ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 9, 17)) == 4] MSG Dia do Fundador da Nação e do Herói Nacional (ponte)
|
||||||
|
REM 1 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 2)) == 2] MSG Dia dos Finados (ponte)
|
||||||
|
OMIT 2 November MSG Dia dos Finados
|
||||||
|
REM 3 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 2)) == 4] MSG Dia dos Finados (ponte)
|
||||||
|
REM 10 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 11)) == 2] MSG Dia da Independência Nacional (ponte)
|
||||||
|
OMIT 11 November MSG Dia da Independência Nacional
|
||||||
|
REM 12 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 11)) == 4] MSG Dia da Independência Nacional (ponte)
|
||||||
|
REM 24 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 2] MSG Dia de Natal e da Família (ponte)
|
||||||
|
OMIT 25 December MSG Dia de Natal e da Família
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 4] MSG Dia de Natal e da Família (ponte)
|
||||||
|
REM 31 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 2] MSG Dia do Ano Novo (ponte)
|
||||||
38
include/holidays/ar.rem
Normal file
38
include/holidays/ar.rem
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Argentina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Año Nuevo
|
||||||
|
OMIT [easterdate($Uy)-48] MSG Día de Carnaval
|
||||||
|
OMIT [easterdate($Uy)-47] MSG Día de Carnaval
|
||||||
|
OMIT 24 March MSG Día Nacional de la Memoria por la Verdad y la Justicia
|
||||||
|
OMIT 2 April MSG Día del Veterano y de los Caidos en la Guerra de Malvinas
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Viernes Santo
|
||||||
|
OMIT 1 May MSG Día del Trabajo
|
||||||
|
OMIT 25 May MSG Día de la Revolución de Mayo
|
||||||
|
REM 15 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 17)) == 3] MSG Paso a la Inmortalidad del General Don Martín Miguel de Güemes (observado)
|
||||||
|
REM 16 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 17)) == 2] MSG Paso a la Inmortalidad del General Don Martín Miguel de Güemes (observado)
|
||||||
|
REM 17 June ADDOMIT SCANFROM -28 SATISFY [$Tw != 2 && $Tw != 3 && $Tw != 4] MSG Paso a la Inmortalidad del General Don Martín Miguel de Güemes (observado)
|
||||||
|
OMIT 20 June MSG Paso a la Inmortalidad del General Don Manuel Belgrano
|
||||||
|
REM 21 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 17)) == 4] MSG Paso a la Inmortalidad del General Don Martín Miguel de Güemes (observado)
|
||||||
|
OMIT 9 July MSG Día de la Independencia
|
||||||
|
REM 15 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 17)) == 3] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 16 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 17)) == 2] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 17 August ADDOMIT SCANFROM -28 SATISFY [$Tw != 2 && $Tw != 3 && $Tw != 4 && $Tw != 5] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 20 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 17)) == 5] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 21 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 17)) == 4] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 10 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 12)) == 3] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 11 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 12)) == 2] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 12 October ADDOMIT SCANFROM -28 SATISFY [$Tw != 2 && $Tw != 3 && $Tw != 4 && $Tw != 5] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 15 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 12)) == 5] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 16 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 12)) == 4] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 18 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 20)) == 3] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
REM 19 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 20)) == 2] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
REM 20 November ADDOMIT SCANFROM -28 SATISFY [$Tw != 2 && $Tw != 3 && $Tw != 4 && $Tw != 5] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
REM 23 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 20)) == 5] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
REM 24 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 20)) == 4] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
OMIT 8 December MSG Inmaculada Concepción de María
|
||||||
|
OMIT 25 December MSG Navidad
|
||||||
40
include/holidays/as.rem
Normal file
40
include/holidays/as.rem
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for American Samoa
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM Third Monday in January ADDOMIT SCANFROM -28 MSG Martin Luther King Jr. Day
|
||||||
|
REM Third Monday in February ADDOMIT SCANFROM -28 MSG Washington's Birthday
|
||||||
|
REM 16 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 17)) == 6] MSG American Samoa Flag Day (observed)
|
||||||
|
OMIT 17 April MSG American Samoa Flag Day
|
||||||
|
REM 18 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 17)) == 0] MSG American Samoa Flag Day (observed)
|
||||||
|
REM Last Monday in May ADDOMIT SCANFROM -28 MSG Memorial Day
|
||||||
|
REM 18 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 19)) == 6] MSG Juneteenth National Independence Day (observed)
|
||||||
|
OMIT 19 June MSG Juneteenth National Independence Day
|
||||||
|
REM 20 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 19)) == 0] MSG Juneteenth National Independence Day (observed)
|
||||||
|
REM 3 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 4)) == 6] MSG Independence Day (observed)
|
||||||
|
OMIT 4 July MSG Independence Day
|
||||||
|
REM 5 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 4)) == 0] MSG Independence Day (observed)
|
||||||
|
REM 15 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 16)) == 6] MSG Manu'a Islands Cession Day (observed)
|
||||||
|
OMIT 16 July MSG Manu'a Islands Cession Day
|
||||||
|
REM 17 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 16)) == 0] MSG Manu'a Islands Cession Day (observed)
|
||||||
|
REM First Monday in September ADDOMIT SCANFROM -28 MSG Labor Day
|
||||||
|
REM Second Monday in October ADDOMIT SCANFROM -28 MSG Columbus Day
|
||||||
|
REM Second Sunday in October ADDOMIT SCANFROM -28 MSG White Sunday
|
||||||
|
REM 10 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 11)) == 6] MSG Veterans Day (observed)
|
||||||
|
OMIT 11 November MSG Veterans Day
|
||||||
|
REM 12 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 11)) == 0] MSG Veterans Day (observed)
|
||||||
|
REM Fourth Thursday in November ADDOMIT SCANFROM -28 MSG Thanksgiving
|
||||||
|
REM 24 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 31 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 14 February MSG Valentine's Day
|
||||||
|
REM 17 March MSG Saint Patrick's Day
|
||||||
|
REM 31 October MSG Halloween
|
||||||
32
include/holidays/at.rem
Normal file
32
include/holidays/at.rem
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Austria.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/at/
|
||||||
|
|
||||||
|
OMIT 1 January MSG Neujahr
|
||||||
|
OMIT 6 January MSG Heilige Drei Könige
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Ostermontag
|
||||||
|
OMIT 1 May MSG Staatsfeiertag
|
||||||
|
OMIT [easterdate($Uy)+39] MSG Christi Himmelfahrt
|
||||||
|
OMIT [easterdate($Uy)+50] MSG Pfingstmontag
|
||||||
|
OMIT [easterdate($Uy)+60] MSG Fronleichnam
|
||||||
|
OMIT 15 August MSG Mariä Himmelfahrt
|
||||||
|
OMIT 26 October MSG Nationalfeiertag
|
||||||
|
OMIT 1 November MSG Allerheiligen
|
||||||
|
OMIT 8 December MSG Mariä Empfängnis
|
||||||
|
OMIT 25 December MSG Christtag
|
||||||
|
OMIT 26 December MSG Stefanitag
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM [easterdate($Uy)-2] MSG Karfreitag
|
||||||
|
REM 24 December MSG Heiliger Abend
|
||||||
|
REM 31 December MSG Silvester
|
||||||
15
include/holidays/at/1.rem
Normal file
15
include/holidays/at/1.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 1 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 1.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 11 November MSG Hl. Martin
|
||||||
16
include/holidays/at/2.rem
Normal file
16
include/holidays/at/2.rem
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 2 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 2.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 19 March MSG Hl. Josef
|
||||||
|
REM 10 October MSG Tag der Volksabstimmung
|
||||||
15
include/holidays/at/3.rem
Normal file
15
include/holidays/at/3.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 3 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 3.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 15 November MSG Hl. Leopold
|
||||||
15
include/holidays/at/4.rem
Normal file
15
include/holidays/at/4.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 4 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 4.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 4 May MSG Hl. Florian
|
||||||
15
include/holidays/at/5.rem
Normal file
15
include/holidays/at/5.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 5 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 5.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 24 September MSG Hl. Rupert
|
||||||
15
include/holidays/at/6.rem
Normal file
15
include/holidays/at/6.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 6 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 6.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 19 March MSG Hl. Josef
|
||||||
15
include/holidays/at/7.rem
Normal file
15
include/holidays/at/7.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 7 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 7.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 19 March MSG Hl. Josef
|
||||||
15
include/holidays/at/8.rem
Normal file
15
include/holidays/at/8.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 8 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 8.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 19 March MSG Hl. Josef
|
||||||
15
include/holidays/at/9.rem
Normal file
15
include/holidays/at/9.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 9 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 9.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 15 November MSG Hl. Leopold
|
||||||
21
include/holidays/au.rem
Normal file
21
include/holidays/au.rem
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Australia.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/au/
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
OMIT 26 January MSG Australia Day
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Good Friday
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Easter Monday
|
||||||
|
OMIT 25 April MSG ANZAC Day
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
OMIT 26 December MSG Boxing Day
|
||||||
27
include/holidays/au/act.rem
Normal file
27
include/holidays/au/act.rem
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision ACT in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision ACT.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
REM Second Monday in March ADDOMIT SCANFROM -28 MSG Canberra Day
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM Monday 27 May ADDOMIT SCANFROM -28 MSG Reconciliation Day
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM First Monday in October ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM First Monday in August SCANFROM -28 MSG Bank Holiday
|
||||||
25
include/holidays/au/nsw.rem
Normal file
25
include/holidays/au/nsw.rem
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision NSW in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision NSW.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM First Monday in October ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM First Monday in August SCANFROM -28 MSG Bank Holiday
|
||||||
28
include/holidays/au/nt.rem
Normal file
28
include/holidays/au/nt.rem
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision NT in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision NT.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM First Monday in May ADDOMIT SCANFROM -28 MSG May Day
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM First Monday in August ADDOMIT SCANFROM -28 MSG Picnic Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 1] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 24 December MSG Christmas Eve (from 7pm)
|
||||||
|
REM 31 December MSG New Year's Eve (from 7pm)
|
||||||
23
include/holidays/au/qld.rem
Normal file
23
include/holidays/au/qld.rem
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision QLD in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision QLD.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM First Monday in May ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
REM Wednesday 10 August ADDOMIT SCANFROM -28 MSG The Royal Queensland Show
|
||||||
|
REM First Monday in October ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
29
include/holidays/au/sa.rem
Normal file
29
include/holidays/au/sa.rem
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision SA in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision SA.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
REM Second Monday in March ADDOMIT SCANFROM -28 MSG Adelaide Cup Day
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM First Monday in October ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
OMIT 26 December MSG Proclamation Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 1] MSG Proclamation Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Proclamation Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Proclamation Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 24 December MSG Christmas Eve (from 7pm)
|
||||||
|
REM 31 December MSG New Year's Eve (from 7pm)
|
||||||
16
include/holidays/au/tas.rem
Normal file
16
include/holidays/au/tas.rem
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision TAS in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision TAS.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/au.rem
|
||||||
|
|
||||||
|
REM Second Monday in March ADDOMIT SCANFROM -28 MSG Eight Hours Day
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
24
include/holidays/au/vic.rem
Normal file
24
include/holidays/au/vic.rem
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision VIC in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision VIC.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
REM Second Monday in March ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM Saturday 1 October --8 ADDOMIT SCANFROM -28 MSG Grand Final Day
|
||||||
|
REM First Tuesday in November ADDOMIT SCANFROM -28 MSG Melbourne Cup Day
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
24
include/holidays/au/wa.rem
Normal file
24
include/holidays/au/wa.rem
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision WA in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision WA.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
REM First Monday in March ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM 26 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 25)) == 0] MSG ANZAC Day (observed)
|
||||||
|
REM 27 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 25)) == 6] MSG ANZAC Day (observed)
|
||||||
|
REM First Monday in June ADDOMIT SCANFROM -28 MSG Western Australia Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 1] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
19
include/holidays/aw.rem
Normal file
19
include/holidays/aw.rem
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Aruba
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Aña Nobo
|
||||||
|
OMIT 25 January MSG Dia di Betico
|
||||||
|
OMIT [easterdate($Uy)-48] MSG Dialuna prome cu diaranson di shinish
|
||||||
|
OMIT 18 March MSG Dia di Himno y Bandera
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Bierna Santo
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Di dos dia di Pasco di Resureccion
|
||||||
|
OMIT 1 May MSG Dia di Obrero
|
||||||
|
OMIT [easterdate($Uy)+39] MSG Dia di Asuncion
|
||||||
|
REM 31 August ADDOMIT SCANFROM -28 SATISFY [$Tw != 0] MSG Dia di Rey
|
||||||
|
REM 1 September ADDOMIT SCANFROM -28 SATISFY [$Tw == 1] MSG Dia di Rey
|
||||||
|
OMIT 25 December MSG Pasco di Nacemento
|
||||||
|
OMIT 26 December MSG Di dos dia di Pasco di Nacemento
|
||||||
44
include/holidays/az.rem
Normal file
44
include/holidays/az.rem
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Azerbaijan
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Yeni il bayramı
|
||||||
|
REM 1 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 1, 1)), 0, 6)] MSG Yeni il bayramı (müşahidə olunur)
|
||||||
|
OMIT 2 January MSG Yeni il bayramı
|
||||||
|
REM 2 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 1, 2)), 0, 6)] MSG Yeni il bayramı (müşahidə olunur)
|
||||||
|
OMIT 20 January MSG Ümumxalq hüzn günü
|
||||||
|
OMIT 8 March MSG Qadınlar günü
|
||||||
|
REM 8 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 8)), 0, 6)] MSG Qadınlar günü (müşahidə olunur)
|
||||||
|
OMIT 20 March MSG Novruz bayramı
|
||||||
|
REM 20 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 20)), 0, 6)] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 21 March MSG Novruz bayramı
|
||||||
|
REM 21 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 21)), 0, 6)] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 22 March MSG Novruz bayramı
|
||||||
|
REM 22 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 22)), 0, 6)] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 23 March MSG Novruz bayramı
|
||||||
|
REM 23 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 23)), 0, 6)] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 24 March MSG Novruz bayramı
|
||||||
|
REM 24 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 24)), 0, 6)] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 9 May MSG Faşizm üzərində qələbə günü
|
||||||
|
REM 9 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 5, 9)), 0, 6)] MSG Faşizm üzərində qələbə günü (müşahidə olunur)
|
||||||
|
OMIT 28 May MSG Müstəqillik Günü
|
||||||
|
REM 28 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 5, 28)), 0, 6)] MSG Müstəqillik Günü (müşahidə olunur)
|
||||||
|
OMIT 15 June MSG Azərbaycan xalqının milli qurtuluş günü
|
||||||
|
REM 15 June OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 6, 15)), 0, 6)] MSG Azərbaycan xalqının milli qurtuluş günü (müşahidə olunur)
|
||||||
|
OMIT 26 June MSG Azərbaycan Respublikasının Silahlı Qüvvələri günü
|
||||||
|
REM 26 June OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 6, 26)), 0, 6)] MSG Azərbaycan Respublikasının Silahlı Qüvvələri günü (müşahidə olunur)
|
||||||
|
OMIT 8 November MSG Zəfər Günü
|
||||||
|
REM 8 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 11, 8)), 0, 6)] MSG Zəfər Günü (müşahidə olunur)
|
||||||
|
OMIT 9 November MSG Azərbaycan Respublikasının Dövlət bayrağı günü
|
||||||
|
REM 9 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 11, 9)), 0, 6)] MSG Azərbaycan Respublikasının Dövlət bayrağı günü (müşahidə olunur)
|
||||||
|
OMIT 31 December MSG Dünya azərbaycanlılarının həmrəyliyi günü
|
||||||
|
REM 31 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 12, 31)), 0, 6)] MSG Dünya azərbaycanlılarının həmrəyliyi günü (müşahidə olunur)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 27 September MSG Anım Günü
|
||||||
|
REM 18 October MSG Müstəqilliyin Bərpası Günü
|
||||||
|
REM 12 November MSG Konstitusiya Günü
|
||||||
|
REM 17 November MSG Milli Dirçəliş Günü
|
||||||
22
include/holidays/ba.rem
Normal file
22
include/holidays/ba.rem
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bosnia And Herzegovina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Bosnia And Herzegovina.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/ba/
|
||||||
|
|
||||||
|
OMIT 1 January MSG Nova godina
|
||||||
|
OMIT 2 January MSG Nova godina
|
||||||
|
OMIT 7 January MSG Božić (Pravoslavni)
|
||||||
|
OMIT [orthodoxeaster($Uy)-2] MSG Veliki petak (Pravoslavni)
|
||||||
|
OMIT [orthodoxeaster($Uy)+1] MSG Uskrsni ponedjeljak (Katolički)
|
||||||
|
OMIT 1 May MSG Međunarodni praznik rada
|
||||||
|
OMIT 2 May MSG Međunarodni praznik rada
|
||||||
|
OMIT 25 December MSG Božić (Katolički)
|
||||||
23
include/holidays/ba/bih.rem
Normal file
23
include/holidays/ba/bih.rem
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision BIH in Bosnia And Herzegovina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision BIH.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ba.rem
|
||||||
|
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG Nova godina (preneseno)
|
||||||
|
OMIT 6 January MSG Badnji dan (Pravoslavni)
|
||||||
|
OMIT 1 March MSG Dan nezavisnosti
|
||||||
|
OMIT [orthodoxeaster($Uy)-2] MSG Veliki petak (Katolički)
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Uskrs (Katolički)
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Vaskrs (Pravoslavni)
|
||||||
|
OMIT [orthodoxeaster($Uy)+1] MSG Uskrsni ponedjeljak (Pravoslavni)
|
||||||
|
REM 3 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Međunarodni praznik rada (preneseno)
|
||||||
|
OMIT 9 May MSG Dan pobjede nad fašizmom
|
||||||
|
OMIT 25 November MSG Dan državnosti
|
||||||
|
OMIT 24 December MSG Badnji dan (Katolički)
|
||||||
20
include/holidays/ba/brc.rem
Normal file
20
include/holidays/ba/brc.rem
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision BRC in Bosnia And Herzegovina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision BRC.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ba.rem
|
||||||
|
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG Nova godina (preneseno)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG Nova godina (preneseno)
|
||||||
|
REM 8 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 7)) == 0] MSG Božić (Pravoslavni) (preneseno)
|
||||||
|
OMIT 8 March MSG Dan uspostavljanja Brčko distrikta
|
||||||
|
REM 9 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 8)) == 0] MSG Dan uspostavljanja Brčko distrikta (preneseno)
|
||||||
|
REM 3 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Međunarodni praznik rada (preneseno)
|
||||||
|
REM 3 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 6] MSG Međunarodni praznik rada (preneseno)
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Božić (Katolički) (preneseno)
|
||||||
23
include/holidays/ba/srp.rem
Normal file
23
include/holidays/ba/srp.rem
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision SRP in Bosnia And Herzegovina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision SRP.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/ba.rem
|
||||||
|
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG Nova godina (preneseno)
|
||||||
|
OMIT 6 January MSG Badnji dan (Pravoslavni)
|
||||||
|
OMIT 14 January MSG Pravoslavna Nova godina
|
||||||
|
OMIT [orthodoxeaster($Uy)-2] MSG Veliki petak (Katolički)
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Uskrs (Katolički)
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Vaskrs (Pravoslavni)
|
||||||
|
OMIT [orthodoxeaster($Uy)+1] MSG Uskrsni ponedjeljak (Pravoslavni)
|
||||||
|
REM 3 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 6] MSG Međunarodni praznik rada (preneseno)
|
||||||
|
OMIT 9 May MSG Dan pobjede nad fašizmom
|
||||||
|
OMIT 21 November MSG Dan uspostave Opšteg okvirnog sporazuma za mir u Bosni i Hercegovini
|
||||||
|
OMIT 24 December MSG Badnji dan (Katolički)
|
||||||
28
include/holidays/bb.rem
Normal file
28
include/holidays/bb.rem
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Barbados
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
OMIT 21 January MSG Errol Barrow Day
|
||||||
|
REM 22 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 21)) == 0] MSG Errol Barrow Day (observed)
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Good Friday
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Easter Monday
|
||||||
|
OMIT 28 April MSG National Heroes Day
|
||||||
|
REM 29 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 28)) == 0] MSG National Heroes Day (observed)
|
||||||
|
OMIT 1 May MSG May Day
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG May Day (observed)
|
||||||
|
OMIT [easterdate($Uy)+50] MSG Whit Monday
|
||||||
|
OMIT 1 August MSG Emancipation Day
|
||||||
|
REM First Monday in August ADDOMIT SCANFROM -28 MSG Kadooment Day
|
||||||
|
REM 2 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 1)) == 1] MSG Emancipation Day (observed)
|
||||||
|
REM 3 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 1)) == 0] MSG Emancipation Day (observed)
|
||||||
|
OMIT 30 November MSG Independence Day
|
||||||
|
REM 1 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 30)) == 0] MSG Independence Day (observed)
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
OMIT 26 December MSG Boxing Day
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
14
include/holidays/bd.rem
Normal file
14
include/holidays/bd.rem
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bangladesh
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 21 February MSG International Mother's language Day
|
||||||
|
OMIT 17 March MSG Sheikh Mujibur Rahman's Birthday and Children's Day
|
||||||
|
OMIT 26 March MSG Independence Day
|
||||||
|
OMIT 14 April MSG Bengali New Year's Day
|
||||||
|
OMIT 1 May MSG May Day
|
||||||
|
OMIT 15 August MSG National Mourning Day
|
||||||
|
OMIT 16 December MSG Victory Day
|
||||||
24
include/holidays/be.rem
Normal file
24
include/holidays/be.rem
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Belgium
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Nieuwjaar
|
||||||
|
OMIT [easterdate($Uy)] MSG Pasen
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Paasmaandag
|
||||||
|
OMIT 1 May MSG Dag van de Arbeid
|
||||||
|
OMIT [easterdate($Uy)+39] MSG O. L. H. Hemelvaart
|
||||||
|
OMIT [easterdate($Uy)+49] MSG Pinksteren
|
||||||
|
OMIT [easterdate($Uy)+50] MSG Pinkstermaandag
|
||||||
|
OMIT 21 July MSG Nationale feestdag
|
||||||
|
OMIT 15 August MSG O. L. V. Hemelvaart
|
||||||
|
OMIT 1 November MSG Allerheiligen
|
||||||
|
OMIT 11 November MSG Wapenstilstand
|
||||||
|
OMIT 25 December MSG Kerstmis
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM [easterdate($Uy)-2] MSG Goede Vrijdag
|
||||||
|
REM [easterdate($Uy)+40] MSG Vrijdag na O. L. H. Hemelvaart
|
||||||
|
REM 26 December MSG Banksluitingsdag
|
||||||
29
include/holidays/bf.rem
Normal file
29
include/holidays/bf.rem
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Burkina Faso
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
OMIT 3 January MSG Revolution Day
|
||||||
|
REM 4 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 3)) == 0] MSG Revolution Day (observed)
|
||||||
|
OMIT 8 March MSG International Women's Day
|
||||||
|
REM 9 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 8)) == 0] MSG International Women's Day (observed)
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Easter Monday
|
||||||
|
OMIT 1 May MSG Labour Day
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Labour Day (observed)
|
||||||
|
OMIT [easterdate($Uy)+39] MSG Ascension Day
|
||||||
|
OMIT 5 August MSG Independence Day
|
||||||
|
REM 6 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 5)) == 0] MSG Independence Day (observed)
|
||||||
|
OMIT 15 August MSG Assumption Day
|
||||||
|
REM 16 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 15)) == 0] MSG Assumption Day (observed)
|
||||||
|
OMIT 31 October MSG Martyrs' Day
|
||||||
|
OMIT 1 November MSG All Saints' Day
|
||||||
|
REM 1 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 31)) == 0] MSG Martyrs' Day (observed)
|
||||||
|
REM 2 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 1)) == 0] MSG All Saints' Day (observed)
|
||||||
|
OMIT 11 December MSG Proclamation of Independence Day
|
||||||
|
REM 12 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 11)) == 0] MSG Proclamation of Independence Day (observed)
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
34
include/holidays/bg.rem
Normal file
34
include/holidays/bg.rem
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bulgaria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Нова година
|
||||||
|
REM 1 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 1, 1)), 0, 6)] MSG Нова година (почивен ден)
|
||||||
|
OMIT 3 March MSG Ден на Освобождението на България от османско иго
|
||||||
|
REM 3 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 3, 3)), 0, 6)] MSG Ден на Освобождението на България от османско иго (почивен ден)
|
||||||
|
OMIT [orthodoxeaster($Uy)-2] MSG Велики петък
|
||||||
|
OMIT [orthodoxeaster($Uy)-1] MSG Велика събота
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Великден
|
||||||
|
OMIT [orthodoxeaster($Uy)+1] MSG Великден
|
||||||
|
OMIT 1 May MSG Ден на труда и на международната работническа солидарност
|
||||||
|
REM 1 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 5, 1)), 0, 6)] MSG Ден на труда и на международната работническа солидарност (почивен ден)
|
||||||
|
OMIT 6 May MSG Гергьовден, Ден на храбростта и Българската армия
|
||||||
|
REM 6 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 5, 6)), 0, 6)] MSG Гергьовден, Ден на храбростта и Българската армия (почивен ден)
|
||||||
|
OMIT 24 May MSG Ден на светите братя Кирил и Методий, на българската азбука, просвета и култура и на славянската книжовност
|
||||||
|
REM 24 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 5, 24)), 0, 6)] MSG Ден на светите братя Кирил и Методий, на българската азбука, просвета и култура и на славянската книжовност (почивен ден)
|
||||||
|
OMIT 6 September MSG Ден на Съединението
|
||||||
|
REM 6 September OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 9, 6)), 0, 6)] MSG Ден на Съединението (почивен ден)
|
||||||
|
OMIT 22 September MSG Ден на Независимостта на България
|
||||||
|
REM 22 September OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 9, 22)), 0, 6)] MSG Ден на Независимостта на България (почивен ден)
|
||||||
|
OMIT 24 December MSG Бъдни вечер
|
||||||
|
REM 24 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 12, 24)), 0, 6)] MSG Бъдни вечер (почивен ден)
|
||||||
|
OMIT 25 December MSG Рождество Христово
|
||||||
|
REM 25 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 12, 25)), 0, 6)] MSG Рождество Христово (почивен ден)
|
||||||
|
OMIT 26 December MSG Рождество Христово
|
||||||
|
REM 26 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [isany(wkdaynum(date($Ty, 12, 26)), 0, 6)] MSG Рождество Христово (почивен ден)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 1 November MSG Ден на народните будители
|
||||||
11
include/holidays/bh.rem
Normal file
11
include/holidays/bh.rem
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bahrain
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG رأس السنة الميلادية
|
||||||
|
OMIT 1 May MSG عيد العمال
|
||||||
|
OMIT 16 December MSG اليوم الوطني
|
||||||
|
OMIT 17 December MSG اليوم الوطني
|
||||||
30
include/holidays/bi.rem
Normal file
30
include/holidays/bi.rem
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Burundi
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
OMIT 5 February MSG Unity Day
|
||||||
|
REM 6 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 5)) == 0] MSG Unity Day (observed)
|
||||||
|
OMIT 6 April MSG President Ntaryamira Day
|
||||||
|
REM 7 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 6)) == 0] MSG President Ntaryamira Day (observed)
|
||||||
|
OMIT 1 May MSG Labour Day
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Labour Day (observed)
|
||||||
|
OMIT [easterdate($Uy)+39] MSG Ascension Day
|
||||||
|
OMIT 8 June MSG President Nkurunziza Day
|
||||||
|
REM 9 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 8)) == 0] MSG President Nkurunziza Day (observed)
|
||||||
|
OMIT 1 July MSG Independence Day
|
||||||
|
REM 2 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 1)) == 0] MSG Independence Day (observed)
|
||||||
|
OMIT 15 August MSG Assumption Day
|
||||||
|
REM 16 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 15)) == 0] MSG Assumption Day (observed)
|
||||||
|
OMIT 13 October MSG Prince Louis Rwagasore Day
|
||||||
|
REM 14 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 13)) == 0] MSG Prince Louis Rwagasore Day (observed)
|
||||||
|
OMIT 21 October MSG President Ndadaye's Day
|
||||||
|
REM 22 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 21)) == 0] MSG President Ndadaye's Day (observed)
|
||||||
|
OMIT 1 November MSG All Saints' Day
|
||||||
|
REM 2 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 1)) == 0] MSG All Saints' Day (observed)
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
22
include/holidays/bn.rem
Normal file
22
include/holidays/bn.rem
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Brunei
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Awal Tahun Masihi
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG Awal Tahun Masihi (diperhatikan)
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 5] MSG Awal Tahun Masihi (diperhatikan)
|
||||||
|
OMIT 23 February MSG Hari Kebangsaan
|
||||||
|
REM 24 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 23)) == 0] MSG Hari Kebangsaan (diperhatikan)
|
||||||
|
REM 24 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 23)) == 5] MSG Hari Kebangsaan (diperhatikan)
|
||||||
|
OMIT 31 May MSG Hari Angkatan Bersenjata Diraja Brunei
|
||||||
|
REM 1 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 31)) == 0] MSG Hari Angkatan Bersenjata Diraja Brunei (diperhatikan)
|
||||||
|
REM 1 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 31)) == 5] MSG Hari Angkatan Bersenjata Diraja Brunei (diperhatikan)
|
||||||
|
OMIT 15 July MSG Hari Keputeraan KDYMM Sultan Brunei
|
||||||
|
REM 16 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 15)) == 0] MSG Hari Keputeraan KDYMM Sultan Brunei (diperhatikan)
|
||||||
|
REM 16 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 15)) == 5] MSG Hari Keputeraan KDYMM Sultan Brunei (diperhatikan)
|
||||||
|
OMIT 25 December MSG Hari Natal
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Hari Natal (diperhatikan)
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 5] MSG Hari Natal (diperhatikan)
|
||||||
32
include/holidays/bo.rem
Normal file
32
include/holidays/bo.rem
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Bolivia.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/bo/
|
||||||
|
|
||||||
|
OMIT 1 January MSG Año Nuevo
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG Año Nuevo (observado)
|
||||||
|
OMIT 22 January MSG Día de la Creación del Estado Plurinacional de Bolivia
|
||||||
|
REM 23 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 22)) == 0] MSG Día de la Creación del Estado Plurinacional de Bolivia (observado)
|
||||||
|
OMIT [easterdate($Uy)-48] MSG Carnaval
|
||||||
|
OMIT [easterdate($Uy)-47] MSG Carnaval
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Viernes Santo
|
||||||
|
OMIT 1 May MSG Día del Trabajo
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Día del Trabajo (observado)
|
||||||
|
OMIT [easterdate($Uy)+60] MSG Corpus Christi
|
||||||
|
OMIT 21 June MSG Año Nuevo Aymara Amazónico
|
||||||
|
REM 22 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 21)) == 0] MSG Año Nuevo Aymara Amazónico (observado)
|
||||||
|
OMIT 6 August MSG Día de la Independencia de Bolivia
|
||||||
|
REM 7 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 6)) == 0] MSG Día de la Independencia de Bolivia (observado)
|
||||||
|
OMIT 17 October MSG Día de la Dignidad Nacional
|
||||||
|
OMIT 2 November MSG Día de Todos los Difuntos
|
||||||
|
OMIT 25 December MSG Navidad
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Navidad (observado)
|
||||||
13
include/holidays/bo/b.rem
Normal file
13
include/holidays/bo/b.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision B in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision B.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 18 November MSG Día del departamento de Beni
|
||||||
13
include/holidays/bo/c.rem
Normal file
13
include/holidays/bo/c.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision C in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision C.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 14 September MSG Día del departamento de Cochabamba
|
||||||
13
include/holidays/bo/h.rem
Normal file
13
include/holidays/bo/h.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision H in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision H.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 25 May MSG Día del departamento de Chuquisaca
|
||||||
13
include/holidays/bo/l.rem
Normal file
13
include/holidays/bo/l.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision L in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision L.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 16 July MSG Día del departamento de La Paz
|
||||||
13
include/holidays/bo/n.rem
Normal file
13
include/holidays/bo/n.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision N in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision N.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 11 October MSG Día del departamento de Pando
|
||||||
13
include/holidays/bo/o.rem
Normal file
13
include/holidays/bo/o.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision O in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision O.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT [easterdate($Uy)-51] MSG Carnaval de Oruro
|
||||||
13
include/holidays/bo/p.rem
Normal file
13
include/holidays/bo/p.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision P in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision P.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 10 November MSG Día del departamento de Potosí
|
||||||
13
include/holidays/bo/s.rem
Normal file
13
include/holidays/bo/s.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision S in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision S.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 24 September MSG Día del departamento de Santa Cruz
|
||||||
13
include/holidays/bo/t.rem
Normal file
13
include/holidays/bo/t.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision T in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision T.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 15 April MSG La Tablada
|
||||||
33
include/holidays/br.rem
Normal file
33
include/holidays/br.rem
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Brazil.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/br/
|
||||||
|
|
||||||
|
OMIT 1 January MSG Confraternização Universal
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Sexta-feira Santa
|
||||||
|
OMIT 21 April MSG Tiradentes
|
||||||
|
OMIT 1 May MSG Dia do Trabalhador
|
||||||
|
OMIT 7 September MSG Independência do Brasil
|
||||||
|
OMIT 12 October MSG Nossa Senhora Aparecida
|
||||||
|
OMIT 2 November MSG Finados
|
||||||
|
OMIT 15 November MSG Proclamação da República
|
||||||
|
OMIT 20 November MSG Dia Nacional de Zumbi e da Consciência Negra
|
||||||
|
OMIT 25 December MSG Natal
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM [easterdate($Uy)-48] MSG Carnaval
|
||||||
|
REM [easterdate($Uy)-47] MSG Carnaval
|
||||||
|
REM [easterdate($Uy)-46] MSG Início da Quaresma
|
||||||
|
REM [easterdate($Uy)+60] MSG Corpus Christi
|
||||||
|
REM 28 October MSG Dia do Servidor Público
|
||||||
|
REM 24 December MSG Véspera de Natal
|
||||||
|
REM 31 December MSG Véspera de Ano-Novo
|
||||||
21
include/holidays/br/ac.rem
Normal file
21
include/holidays/br/ac.rem
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision AC in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision AC.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
REM 23 January ADDOMIT SCANFROM -28 SATISFY [$Tw < 2 || $Tw > 4] MSG Dia do Evangélico
|
||||||
|
REM Friday 23 January ADDOMIT SCANFROM -23 SATISFY [wkdaynum(date($Ty, 1, 23)) >= 2 && wkdaynum(date($Ty, 1, 23)) <= 4] MSG Dia do Evangélico
|
||||||
|
REM 8 March ADDOMIT SCANFROM -28 SATISFY [$Tw < 2 || $Tw > 4] MSG Dia Internacional da Mulher
|
||||||
|
REM Friday 8 March ADDOMIT SCANFROM -23 SATISFY [wkdaynum(date($Ty, 3, 8)) >= 2 && wkdaynum(date($Ty, 3, 8)) <= 4] MSG Dia Internacional da Mulher
|
||||||
|
OMIT 15 June MSG Aniversário do Acre
|
||||||
|
REM 23 September ADDOMIT SCANFROM -28 SATISFY [$Tw < 2 || $Tw > 4] MSG Dia da Amazônia
|
||||||
|
REM Friday 23 September ADDOMIT SCANFROM -23 SATISFY [wkdaynum(date($Ty, 9, 23)) >= 2 && wkdaynum(date($Ty, 9, 23)) <= 4] MSG Dia da Amazônia
|
||||||
|
REM 17 November ADDOMIT SCANFROM -28 SATISFY [$Tw < 2 || $Tw > 4] MSG Assinatura do Tratado de Petrópolis
|
||||||
|
REM Friday 17 November ADDOMIT SCANFROM -23 SATISFY [wkdaynum(date($Ty, 11, 17)) >= 2 && wkdaynum(date($Ty, 11, 17)) <= 4] MSG Assinatura do Tratado de Petrópolis
|
||||||
16
include/holidays/br/al.rem
Normal file
16
include/holidays/br/al.rem
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision AL in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision AL.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 24 June MSG São João
|
||||||
|
OMIT 29 June MSG São Pedro
|
||||||
|
OMIT 16 September MSG Emancipação Política de Alagoas
|
||||||
|
OMIT 30 November MSG Dia do Evangélico
|
||||||
13
include/holidays/br/am.rem
Normal file
13
include/holidays/br/am.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision AM in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision AM.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 5 September MSG Elevação do Amazonas à categoria de província
|
||||||
15
include/holidays/br/ap.rem
Normal file
15
include/holidays/br/ap.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision AP in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision AP.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 19 March MSG São José
|
||||||
|
OMIT 25 July MSG São Tiago
|
||||||
|
OMIT 13 September MSG Criação do Território Federal
|
||||||
13
include/holidays/br/ba.rem
Normal file
13
include/holidays/br/ba.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision BA in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision BA.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 2 July MSG Independência da Bahia
|
||||||
15
include/holidays/br/ce.rem
Normal file
15
include/holidays/br/ce.rem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision CE in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision CE.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 19 March MSG São José
|
||||||
|
OMIT 25 March MSG Abolição da escravidão no Ceará
|
||||||
|
OMIT 15 August MSG Nossa Senhora da Assunção
|
||||||
14
include/holidays/br/df.rem
Normal file
14
include/holidays/br/df.rem
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision DF in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision DF.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 21 April MSG Fundação de Brasília
|
||||||
|
OMIT 30 November MSG Dia do Evangélico
|
||||||
13
include/holidays/br/es.rem
Normal file
13
include/holidays/br/es.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision ES in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision ES.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT [easterdate($Uy)+8] MSG Nossa Senhora da Penha
|
||||||
14
include/holidays/br/go.rem
Normal file
14
include/holidays/br/go.rem
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision GO in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision GO.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 26 July MSG Fundação da cidade de Goiás
|
||||||
|
OMIT 24 October MSG Pedra fundamental de Goiânia
|
||||||
13
include/holidays/br/ma.rem
Normal file
13
include/holidays/br/ma.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision MA in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision MA.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 28 July MSG Adesão do Maranhão à independência do Brasil
|
||||||
13
include/holidays/br/mg.rem
Normal file
13
include/holidays/br/mg.rem
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision MG in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision MG.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also SYSINCLUDE holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 21 April MSG Execução de Tiradentes
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user