collective/icalendar - Open Source PR Review Scorecard

icalendar parser library for Python

C-Rank Grade: A (Welcoming) - 57/100

External PR Merge Rate: 53%

Response Time: 2d

First Timer Success: 53%

Frequently Asked Questions

Is collective/icalendar welcoming to first-time open-source contributors?

collective/icalendar has a recorded first-timer success rate of 52.6%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in collective/icalendar respond to incoming external pull requests in approximately 54.1 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 56.9 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 56.9 places collective/icalendar in the A tier.

What is the external contributor pull request merge rate for collective/icalendar?

The external contributor pull request merge rate for collective/icalendar is 52.7%, based on public PR activity from non-core contributors.

Are there Good First Issues available in collective/icalendar?

collective/icalendar currently has 24 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

collective
collective/icalendarA•Welcoming1.2k
GitHub
Back to Explorer
collective

collective/icalendar

1,169
InactiveA•Welcoming(57/100)Python

icalendar parser library for Python

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Strict Quality Architect

Warmth Score
7.0/10
Patience Score
7.5/10
Nitpick Rate
38%

Balanced & professional review environment in collective/icalendar. Maintains strict focus on technical quality and test standards.

Top PR Submission Do's

  • •Add unit tests with >80% coverage for modified code paths
  • •Run repository linter and code formatters locally before pushing
  • •Link relevant GitHub issue ID in PR description pre-flight checklist

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit unlinked PRs without referencing an existing issue
  • •Do not mix refactoring and feature logic into a single commit
  • •Do not ping maintainers repeatedly within 24 hours of opening
Response Velocity
2 days+
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
52.7%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
52.6%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
64 core
Highly collaborative maintainer core
Diagnostic Health HUD
52.7%
Merge Gauge
52.6%
1st-Timer
Community Vibe37/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for collective/icalendar
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/collective/icalendar)](https://getmerged.abhishekco.de/collective/icalendar?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

icalendar's test suit issues some warnings. $ uv run pytest =============================================================== warnings summary ================================================================ src/icalendar/tests/rfc_7265_jcal/test_examples.py: 4 warnings src/icalendar/tests/test_equality.py: 6 warnings src/icalendar/tests/test_issue_313_globally_unique_tzid.py: 3 warnings /home/blackberry/icalendar/src/icalendar/prop/dt/types.py:107: GloballyUniqueTZIDGuessed: Timezone '/freeassociation.sourceforge.net/Europe/Berlin' is a globally unique TZID; guessing it means 'Europe/Berlin' by stripping the vendor prefix. This may be wrong. See RFC 5545 section 3.2.19. return vDatetime.from_ical(ical, timezone=timezone) src/icalendar/tests/rfc_7265_jcal/test_examples.py: 4 warnings src/icalendar/tests/test_equality.py: 6 warnings src/icalendar/tests/test_issue_313_globally_unique_tzid.py: 4 warnings /home/blackberry/icalendar/src/icalendar/prop/dt/types.py:107: GloballyUniqueT

📅 Opened Oct 2, 2026💬 0 comments
Quality: 90/100Contribute

The contributing page shows a lot if different activities that you can do to contribute. The Matrix chat should be added as a way to get in touch. https://matrix.to/#/#pycal:chat.pycal.org Also, for me, it does not flow quite right. I think, we can categorise these contributions: code contributions triage ...? financial support other ways How to contribute as a first-timer: Please have a look at other project's contributing pages and see what you like about these. This page is also for you. Please post your ideas of how to make it better for you to find what you need.

📅 Opened Oct 2, 2026💬 2 comments
Quality: 100/100Contribute

vRecur is a dictionary but we know very well which keys we have in it. In the same manner as the Components, it would be nice to have accessors for getting, setting and deleting the values. mandatory freq MUST occur. vRecur.freq: FREQ must be present. Absence raises InvalidCalendar on get invalid values raise InvalidCalendar The return type is registered in icalendar.enum cannot be deleted optional These accessors only have one value at most until -> date|datetime count interval wkst skip -> vSkip rscale -> enum Append that checklist to the PR template: ## Implementation - [ ] return type is `None` or what is specified in the `vRecur.types` - [ ] setting to None deletes the value - [ ] del deletes the value - [ ] if multiple values are given, the first one is returned - [ ] if an empty list is in there, None is returned - [ ] doc string with an example value: >>> vRecur("<...>").<...> - [ ] doc string summarizes what this property is about - [ ] doc string shows the r

📅 Opened Sep 30, 2026💬 6 comments
Quality: 100/100Contribute

PARTSTAT is one of the enums in icalendar.enums. The RFC specifies that values that are not enclosed in "" can be case-insensitive. I would like to make sure that this code works for all of our case-insensitive enums: >>> from icalendar.enums import PARTSTAT >>> PARTSTAT("needs-action") == PARTSTAT("NEEDS-ACTION") == PARTSTAT.NEEDS_ACTION True

📅 Opened Sep 28, 2026💬 2 comments
Quality: 90/100Contribute

#1135 requests support for xCal serialization. The work has started in the xCal branch. This issue is there to contribute to the work. Many classes and conversions need to be added. Classes that need conversion 3.6.1. Binary 3.6.2. Boolean 3.6.3. Calendar User Address 3.6.4. Date 3.6.5. Date-Time 3.6.6. Duration 3.6.7. Float 3.6.8. Integer 3.6.9. Period of Time 3.6.10. Recurrence Rule 3.6.11. Text 3.6.12. Time 3.6.13. URI 3.6.14. UTC Offset vDDDLists - included in the tests of the different subclasses vDDDTypes - included in the tests of the different subclasses vBroken vCategories vInline vN vOrg vUid vUnknown vURI vXmlReference Contribution Choose a class and comment below that you would like to work on it. Then, start a Pull Request. The contribution must go to the xcal branch of icalendar. Copy the test cases of structurally related class (text bases/value based/date based) Adapt them to fit that particular value type Implement xCal conversion on the cla

📅 Opened Sep 23, 2026💬 2 comments
Quality: 90/100Contribute
Looking for more Python beginner tasks?Explore Python GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for collective/icalendar

When evaluating whether to contribute to collective/icalendar, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of collective/icalendar acknowledge new external contributions in approximately 2 days+. Out of all submitted pull requests from non-core authors in the last 180-day window, 52.7% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to collective/icalendar

01

Is collective/icalendar welcoming to first-time open-source contributors?

collective/icalendar has a recorded first-timer success rate of 52.6%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~2 days+. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 56.9 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 56.9 places collective/icalendar in the Welcoming tier.

04

What is the external contributor pull request merge rate for collective/icalendar?

The external pull request merge rate is 52.7%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in collective/icalendar?

Yes, collective/icalendar currently has 24 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for collective/icalendar are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.