[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7085":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},7085,"CalendarKit","richardtop\u002FCalendarKit","richardtop","📅 Calendar for Apple platforms in Swift","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=cJ63-_z1qg8",null,"Swift",2703,362,46,33,0,6,29.68,"MIT License",false,"master",[23,24,25,26,27,28,29,30,31,32,33,34],"calendar","calendarkit","catalyst","cocoapods","ios","ios-calendar","ios-lib","ios-swift","ios-ui","macos","swift","swift-package-manager","2026-06-12 02:01:34","![CalendarKit](https:\u002F\u002Fuser-images.githubusercontent.com\u002F8013017\u002F146282209-191d8550-3cfa-45f5-bd82-6a9d2b53bc6f.png#gh-dark-mode-only)\n![CalendarKit](https:\u002F\u002Fuser-images.githubusercontent.com\u002F8013017\u002F146282215-41e228cc-2724-4722-ba16-3126c47730c8.png#gh-light-mode-only)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Frichardtop\u002Fcalendarkit)](https:\u002F\u002Fswiftpackageindex.com\u002Frichardtop\u002FCalendarKit)\n[![SwiftPM compatible](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSwiftPM-compatible-orange.svg)](https:\u002F\u002Fswiftpackageindex.com\u002Frichardtop\u002FCalendarKit) \n[![Swift Compatibility](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Frichardtop%2FCalendarKit%2Fbadge%3Ftype%3Dswift-versions)](https:\u002F\u002Fswiftpackageindex.com\u002Frichardtop\u002FCalendarKit)\n[![Platform Compatibility](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Frichardtop%2FCalendarKit%2Fbadge%3Ftype%3Dplatforms)](https:\u002F\u002Fswiftpackageindex.com\u002Frichardtop\u002FCalendarKit)\n[![Tag](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Ftag\u002Frichardtop\u002Fcalendarkit)](https:\u002F\u002Fcocoapods.org\u002Fpods\u002FCalendarKit)\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002FCalendarKit)](https:\u002F\u002Fcocoapods.org\u002Fpods\u002FCalendarKit)\n\n\n[![YouTube Channel Subscribers](https:\u002F\u002Fimg.shields.io\u002Fyoutube\u002Fchannel\u002Fsubscribers\u002FUCx1gvWpy5zjOd7yZyDwmXEA?style=social)](https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCx1gvWpy5zjOd7yZyDwmXEA?sub_confirmation=1)\n[![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Frichardtop_ios?style=social)](https:\u002F\u002Ftwitter.com\u002Frichardtop_ios)\n[![GitHub followers](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Ffollowers\u002Frichardtop?style=social)](https:\u002F\u002Fgithub.com\u002Frichardtop)\n\n\n# CalendarKit\n**CalendarKit** is a Swift calendar UI library for iOS and Mac Catalyst. It looks similar to the Apple Calendar app out-of-the-box, while allowing customization when needed. CalendarKit is composed of multiple modules which can be used together or independently.\n\n## Tutorials\n- [Create iOS Calendar App in Swift with CalendarKit - Official Tutorial](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=cJ63-_z1qg8)\n- [Live Programming with CalendarKit - For Beginners](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=krIfO3s3ZrM)\n\n## Need Help?\nIf you have a **programming question** about how to use CalendarKit in your application, ask it on StackOverflow with the [CalendarKit](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002Ftagged\u002Fcalendarkit) tag.\n\nCheck out the [Sample App](https:\u002F\u002Fgithub.com\u002Frichardtop\u002FCalendarApp) for reference.\n\n[Create a new Issue from template](https:\u002F\u002Fgithub.com\u002Frichardtop\u002FCalendarKit\u002Fissues\u002Fnew\u002Fchoose) to report a bug or request a new feature.\n\n\n## Examples\n[Video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Fi-Qqp9BaAs)\n\n[Sample App](https:\u002F\u002Fgithub.com\u002Frichardtop\u002FCalendarApp)\n\n## Installation\nCalendarKit can be installed with Swift Package Manager or with CocoaPods.\n### Swift Package Manager (Xcode 12 or higher)\n\nThe preferred way of installing CalendarKit is via the [Swift Package Manager](https:\u002F\u002Fswift.org\u002Fpackage-manager\u002F).\n\n1. In Xcode, open your project and navigate to **File** → **Swift Packages** → **Add Package Dependency...**\n2. Paste the repository URL (`https:\u002F\u002Fgithub.com\u002Frichardtop\u002FCalendarKit.git`) and click **Next**.\n3. For **Rules**, select **Version (Up to Next Major)** and click **Next**.\n4. Click **Finish**.\n\n[Adding Package Dependencies to Your App](https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Fswift_packages\u002Fadding_package_dependencies_to_your_app)\n\n## Usage\n1. Subclass `DayViewController`\n2. Implement `EventDataSource` protocol to show events.\n\nCalendarKit requires `EventDataSource` to return an array of objects conforming to `EventDescriptor` protocol, specifying all the information needed to display a particular event. You're free to use a default `Event` class as a model or create your own class conforming to the `EventDescriptor` protocol.\n\n```swift\n\u002F\u002F Return an array of EventDescriptors for particular date\noverride func eventsForDate(_ date: Date) -> [EventDescriptor] {\n  var models = myAppEventStore.getEventsForDate(date) \u002F\u002F Get events (models) from the storage \u002F API\n\n  var events = [Event]()\n\n  for model in models {\n      \u002F\u002F Create new EventView\n      let event = Event()\n      \u002F\u002F Specify DateInterval\n      event.dateInterval = DateInterval(start: model.startDate, end: model.endDate)\n      \u002F\u002F Add info: event title, subtitle, location to the array of Strings\n      var info = [model.title, model.location]\n      info.append(\"\\(datePeriod.beginning!.format(with: \"HH:mm\")) - \\(datePeriod.end!.format(with: \"HH:mm\"))\")\n      \u002F\u002F Set \"text\" value of event by formatting all the information needed for display\n      event.text = info.reduce(\"\", {$0 + $1 + \"\\n\"})\n      events.append(event)\n  }\n  return events\n}\n```\nAfter receiving an array of events for a particular day, CalendarKit will handle view layout and display.\n\n### Usage\nTo respond to the user input, override mehtods of `DayViewDelegate`, for example:\n\n```swift\noverride func dayViewDidSelectEventView(_ eventView: EventView) {\n  print(\"Event has been selected: \\(eventview.data)\")\n}\n\noverride func dayViewDidLongPressEventView(_ eventView: EventView) {\n  print(\"Event has been longPressed: \\(eventView.data)\")\n}\n```\n\n## Localization\nCalendarKit supports localization and uses iOS default locale to display month and day names. First day of the week is also selected according to the iOS locale.\n\n\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8013017\u002F22315567\u002F8ba5f9c2-e378-11e6-860d-b94e87a2a45c.PNG\" alt=\"German\" width=\"320\">\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8013017\u002F22315600\u002Fc87e826a-e378-11e6-9280-732982b42077.PNG\" alt=\"Norwegian\" width=\"320\">\n\n\n## Styles\nBy default, CalendarKit looks similar to the Apple Calendar app and fully supports Dark Mode. If needed, CalendarKit's look can be easily customized. Steps to apply a custom style are as follows:\n\n1. Create a new `CalendarStyle` object (or copy existing one)\n2. Change style by updating the properties.\n3. Invoke `updateStyle` method with the new `CalendarStyle`.\n\n\n```Swift\nlet style = CalendarStyle()\nstyle.backgroundColor = UIColor.black\ndayView.updateStyle(style)\n```\n\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F8013017\u002F22717896\u002Fa2a6c6f2-edae-11e6-8ac3-d9add3d61fb9.png\" alt=\"Light theme\" width=\"320\"> \u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F8013017\u002F69188457-3dfe6880-0b25-11ea-9674-39b9f3c1cd00.png\" alt=\"Dark theme\" width=\"320\"> \n\n\n## Requirements\n\n- iOS 11.0+, macOS (Catalyst) 10.15+\n- Swift 5.7+\n\n## Contributing\nThe list of features currently in development can be viewed on the [issues](https:\u002F\u002Fgithub.com\u002Frichardtop\u002FCalendarKit\u002Fissues) page.\n\nBefore contributing, please review [guidelines and code style](https:\u002F\u002Fgithub.com\u002Frichardtop\u002FCalendarKit\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md).\n\n\n## Author\n\nRichard Topchii\n\n\n## License\n\n**CalendarKit** is available under the MIT license. See the LICENSE file for more info.\n","CalendarKit 是一个用于 iOS 和 Mac Catalyst 的 Swift 日历 UI 库。它开箱即用时外观类似于苹果自带的日历应用，同时也支持根据需要进行自定义。该库由多个模块组成，这些模块既可以一起使用也可以独立使用，提供了高度的灵活性和可扩展性。项目采用了 MIT 许可证，并且可以通过 Swift Package Manager 或 CocoaPods 方便地集成到项目中。适用于需要在 Apple 平台上快速开发具有日历功能的应用场景，无论是个人开发者还是团队都可以轻松上手并利用其强大的功能来提升应用体验。",2,"2026-06-11 03:10:27","top_language"]