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

[Import/Export] Wrap events in one VCALENDAR

Open
#787 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
73/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
backend

Research direction

Read the plan shape in src/lib/planFile/schema.ts, the section types in src/lib/domain/section.ts, and the meetingToVEvent work in src/lib/ics/meeting.ts from blocked issue #786. Implement the whole-plan calendar in src/lib/ics/plan.ts and cover it in plan.test.ts; use pnpm test as the acceptance check. Done means stable UIDs, a CRLF-formatted calendar with the required America/New_York VTIMEZONE, and the specified event counts, including for an empty plan.

Written by the indexing model from the issue text.

Description

import-export

What to build

Put the completed class events inside one calendar file. Include the required file headers, timezone description and closing line so calendar apps can open the result.

Files

  • src/lib/ics/plan.ts (new file)
  • Starting example: src/lib/domain/section.ts
    Code to add or extend: wrapCalendar(events: readonly string[]): string.

Steps

  1. Create BEGIN:VCALENDAR, VERSION:2.0, PRODID:-//DevDogsUGA//DogDays//EN, CALSCALE:GREGORIAN and completed timezone component.
  2. Append event strings and END:VCALENDAR with trailing CRLF.
  3. Empty events still produce a valid wrapper; no timestamp generation here.

Example

[] → zero VEVENTs but complete calendar and timezone component.

Check it works

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

Before starting

  • #835 — Assemble one VEVENT
  • #833 — Compose the supplied New York timezone component

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.