#################### # Notes # #################### # For some reason, Omit doesn't like having a day in it's definition. # You can get around this limitation by using REM without a message. # If the rem has `SATISFY 1` in its definition, it will always be run and Trigdate # will be set. # You can then use Trigdate (or %T) in the omit definition # https://blog.thechases.com/posts/remind/#omit-weekdays #################### # New Year # #################### # New Year is always January 1st OMIT 01 Jan MSG New Year's Day # Although, there will be a bank holliday on the following monday if # new years day is on a weekend OMIT 02 Jan [YEAR(CURRENT())] THROUGH 03 Jan [YEAR(CURRENT())] SATISFY [$Uw == 1] MSG New Year's Bank Holiday #################### # Easter # #################### # Easter is confusing, thankfully remind gives us a way to get it SET easter EASTERDATE(YEAR(CURRENT())) # Good Friday is always exactly 2 days before easter OMIT [trigger(easter-2)] MSG Good Friday # Easter is on easter OMIT [trigger(easter)] MSG Easter Sunday # Easter Monday is always 1 day after Easter OMIT [trigger(easter+1)] MSG Easter Monday # Mothering Sunday is always 3 weeks before easter # It is not a bank holliday though so don't omit it REM [trigger(easter-21)] MSG Mothering Sunday #################### # Christmas # #################### # Christmas is always the 25th December REM 25 Dec SCANFROM [$U - 7] SATISFY 1 set christmas trigdate() # Christmas eve is always the 24th December # It is not a bank holliday though REM [christmas - 1] MSG Christmas Eve # if Christmas fell on a Saturday IF wkdaynum(christmas) == 6 REM [christmas] MSG Christmas Day REM [christmas+1] MSG Boxing Day # The following Mon and Tues will be bank hollidays OMIT [christmas+2] MSG Christmas day (substitute bank holliday) OMIT [christmas+3] MSG Boxing Day (substitute bank holliday) ELSE # if it fell on a Friday IF wkdaynum(christmas) == 5 OMIT [christmas] MSG Christmas Day REM [christmas+1] MSG Boxing Day OMIT [christmas+3] MSG Boxing Day (substitute bank holliday) ELSE # if it falls on a Sunday IF wkdaynum(christmas) == 0 REM [christmas] MSG Christmas Day OMIT [christmas+1] MSG Boxing Day OMIT [christmas+2] MSG Christmas day (substitute bank holliday) ELSE # otherwise, observed=actual OMIT [christmas] MSG Christmas Day OMIT [christmas+1] MSG Boxing Day ENDIF ENDIF ENDIF # If I don't buy an advent callender, I'll be in trouble REM 1 Dec ++7 MSG %"Advent starts %b%"%_Have you bought an advent callender%_scratchcard advent calender is on cork board #################### # Other Events # #################### # Valentine's day is always 14th February REM 14 Feb ++14 MSG Valentine's Day %b # Early May bank holliday is the first Monday in May REM Mon 1 May SCANFROM [$U - 7] SATISFY 1 OMIT [$T] MSG Early May Bank Holiday # Spring bank holiday is the last Monday in May # (7 days before first Monday in June) REM Mon 1 Jun --7 SCANFROM [$U - 7] SATISFY 1 OMIT [$T] MSG Spring Bank Holiday (Whitsun) # 3rd Sunday of June # This expression means the first Sunday after or on 15th June REM Sun 15 Jun MSG Father's Day # Summer bank holiday is the last Monday in May # (7 days before first Monday in June) REM Mon 1 Sep --7 SCANFROM [$U - 7] SATISFY 1 OMIT [$T] MSG Summer Bank Holiday # Black Friday is always the 4th Friday of November # that is the same as saying the friday on or after the 22nd REM Fri 22 November MSG Black Friday #################### # Daylight Savings # #################### # British summer time starts on the last Sunday of March REM Sun 1 Apr --7 ++1 MSG %"Clocks Forward%" British Summer Time Starts # British summer time ends on the last Sunday of October REM Sun 1 Nov --7 ++1 MSG %"Clocks Backward%" British Summer Time Ends