GothenburgBitFactory / GothenburgBitFactory/taskwarrior

Better automation of recurring holidays

Open
#4,181 1 comment 0 reactions 0 assignees View on GitHub
topic:time
Dominant language
C++
Stars
6.1k
Forks
423
Avg merge
1d 19h
Merged PRs (30d)
11

Description

One feature requests and a bug report for the holidays option. Whilst the generated files are fine, my employer gives a few more holidays on predictable dates, and I'd like to be able to have them computed automatically.

# Offset bug
Currently the `holiday.___.date` does not seem to honour offsets (or I am doing something silly). E.g.
```
holiday.whitmonday.name=Whitmonday
holiday.whitmonday.date=pentecost + 1d
```
marks a holiday on Whitsunday (i.e. Pentecost) rather than Monday.

That Christmas is `dec + 24d` is a bit confusing at first, but likely not worth introducing new syntax for. Something like `dec 25th` would be ambiguous in other contexts (of this year or next occurring?).

# Compute holidays relative to year rather than current date in calendar view
Not strictly necessary (and might have some weird edge cases I haven't thought of) but currently holidays are computed according to the usual rules. However, this means that only the next recurring holiday shows up, which is slightly annoying if planning beyond one year in the future or looking back at past months.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the holiday.whitmonday.date offset example and trace the holiday option and calendar view paths. Investigate how recurring holidays are computed for generated files and calendar dates. Done means offsets produce the intended date and recurring holidays are computed relative to the displayed calendar year, with edge cases covered by tests if the existing test location is found.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.