Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Import/Export] Find the first meeting occurrence

Open
#786 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
83/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
backend

Research direction

Read the section types in src/lib/domain/section.ts and the getting-started setup guide, then create src/lib/ics/meeting.ts and meeting.test.ts. Use the listed acceptance checks with pnpm test: verify DTSTART, BYDAY and UNTIL, escaped LOCATION text, null for a TBA meeting, and folded summary lines. Coordinate the date formatting with issue #788's helper when it merges.

Written by the indexing model from the issue text.

Description

import-export

What to build

Find the first date on which a class actually meets. Use its active start/end dates and weekdays so the exported calendar does not begin on a day with no class.

Files

Steps

  1. Return null for null range or empty weekday list.
  2. Parse range.start as UTC midnight and walk at most7 calendar dates using getUTCDay/setUTCDate. Stop after range.end.
  3. Map Sunday0..Saturday6 explicitly to domain weekday strings and return the first matching ISO date.

Example

Range 2026-08-12..2026-08-14 with MWF → 2026-08-12; range ending before any requested weekday → null.

Check it works

In src/lib/ics/meeting.test.ts, check the example above and the failure or limit described in the steps. Run pnpm test -- src/lib/ics/meeting.test.ts, pnpm lint and pnpm typecheck.

Before starting

  • #831 — Convert New York wall time to UTC
  • #832 — Fold UTF-8 iCalendar lines

References

Assign yourself before starting, or comment to claim the issue. Project setup.

Dominant language
TypeScript
Stars
19
Forks
94
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DevDogsUGA/DogDays

All issues in DevDogsUGA/DogDays

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.