toIcsDateTime helper for America/New_York
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 88/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- backend
Research direction
Create src/lib/ics/dateTime.ts and dateTime.test.ts; first read src/lib/domain/section.ts for the Meeting and dateRange fields, then run pnpm test without setting TZ. Implement the helper with date-fns or Intl.DateTimeFormat using the supplied time zone. Done means the acceptance cases pass for local and UTC output, DST Date inputs, and an unknown time zone error.
Written by the indexing model from the issue text.
Description
What to build
A helper toIcsDateTime(date, tz) for calendar files: given a calendar date ("2026-08-12") plus a "HH:MM" time, or a JS Date, and an IANA time zone, return the iCalendar local date-time form YYYYMMDDTHHMMSS (for use with a TZID= parameter) and, for UTC, the ...Z form. DogDays only ever passes America/New_York, and UGA's term crosses the end of daylight saving time (Nov 1, 2026), so a class at 09:10 must stay at 09:10 local on both sides of it.
Use date-fns (already a dependency) or Intl.DateTimeFormat with timeZone; no new packages.
The file it touches
New src/lib/ics/dateTime.ts and dateTime.test.ts. For the time and weekday fields to format, see src/lib/domain/section.ts (Meeting, dateRange).
Acceptance check (pnpm test only, set no TZ env var; the tests must pass on a machine in any time zone)
2026-08-1209:10 gives20260812T091000.- The UTC form of 09:10 on 2026-08-12 is
20260812T131000Z(EDT, UTC-4), and of 09:10 on 2026-11-03 is20261103T141000Z(EST, UTC-5). - A
Dateinput at the spring-forward and fall-back days gives the right local time. - An unknown time zone throws a clear error.
New here? Setup is in docs/getting-started/setup.md; the first-PR walk-through is docs/getting-started/first-contribution.md.
- Dominant language
- TypeScript
- Stars
- 19
- Forks
- 94
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from DevDogsUGA/DogDays
-
import-export
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
DevDogsUGA/DogDays#785 ·
-
Frontend time-gaps
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
DevDogsUGA/DogDays#784 ·
-
good first issue polish
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
DevDogsUGA/DogDays#780 ·
-
good first issue polish
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
DevDogsUGA/DogDays#779 ·
-
good first issue polish
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
DevDogsUGA/DogDays#778 ·
All issues in DevDogsUGA/DogDays
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
NaturalIntelligence/fast-xml-parser#890 · 1 comment ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
zsviczian/obsidian-excalidraw-plugin#3000 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
pnpm/get.pnpm.io#68 ·
-
[BUG] Cloudflare KV binding 模式下 kvDriver.list() 沿用 EdgeOne 语义,字段名不匹配导致 key 格式下初始化 500 并耗尽 list 配额Possibly taken @wumingzhinu claimed this today. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
OpenListTeam/OpenList-Worker#125 ·
Maintainers usually reply within 2 days
-
Android (vision-camera-location): HybridLocationManager never quits its HandlerThread on disposeOpen
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
margelo/react-native-vision-camera#4217 ·
Maintainers usually reply within 4 days