{"adoption": {"forks": 152, "observed_at": "2026-08-28T04:05:09.717313+00:00", "stars": 1602}, "canonical_url": "https://ross.abutalabs.com/products/recurr", "card": {"archived": false, "artifact_type": "library", "description": "PHP library for working with recurrence rules (RRULE); meant to help with recurring calendar events.", "domain": ["developer-tools", "web-development"], "enriched": true, "function": ["date-time", "parser"], "health_score": 47, "homepage": null, "language": "PHP", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["simshaun/recurr"], "name": "simshaun/recurr", "platform": ["php"], "pushed_at": "2025-10-07T07:01:11+00:00", "repo": "simshaun/recurr", "stars": 1602, "tags": ["rrule", "recurrence-rules", "calendar-events", "rfc5545", "icalendar"], "topics": ["php", "recurring-events", "recurrence", "recurrence-rules"], "urls": [], "use_cases": ["parse RRULE strings into recurring event dates in PHP", "generate DateTime objects from recurrence rules for a calendar", "build RRULE strings programmatically with a fluent API", "compute occurrences of monthly or weekly recurring events", "limit or constrain generated recurrence dates", "implement recurring events in a scheduling application"], "what_it_is": "Recurr is a PHP library for parsing, building, and transforming recurrence rules (RRULE from RFC 5545) into DateTime objects. It is designed to power calendars with recurring events and is inspired by rrule.js.", "when_to_avoid": ["you need full iCalendar file parsing or generation, not just RRULEs", "you are not working in PHP", "you need recurrence handling in JavaScript (use rrule.js instead)"], "when_to_choose": ["you need RFC 5545 RRULE support in a PHP project", "you are building a calendar or scheduling feature with recurring events", "you want a small focused library rather than a full iCalendar suite"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/recurr", "repo": "simshaun/recurr", "role": "main", "score": 52}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.717313+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:52:38.049088+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c652351670605e6036586b5e876cf1690ef6b807a3d29c674309d4fc86af7cb8", "fetched_at": "2026-08-28T04:05:09.717313+00:00", "kind": "readme", "missing": false, "url": "https://github.com/simshaun/recurr"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 45, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4830, "days_push": 330, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 52, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}