{"id":19535577,"url":"https://github.com/miyako/4d-plugin-ical-v3","last_synced_at":"2025-09-14T06:10:26.764Z","repository":{"id":147172363,"uuid":"247847345","full_name":"miyako/4d-plugin-ical-v3","owner":"miyako","description":"Updated version of iCal API","archived":false,"fork":false,"pushed_at":"2024-08-29T03:31:56.000Z","size":10947,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-16T10:53:02.428Z","etag":null,"topics":["4d-plugin"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miyako.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-17T00:52:31.000Z","updated_at":"2024-08-29T03:31:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"613ef1ad-c486-4cf5-8846-e714d1d7b666","html_url":"https://github.com/miyako/4d-plugin-ical-v3","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/miyako/4d-plugin-ical-v3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miyako%2F4d-plugin-ical-v3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miyako%2F4d-plugin-ical-v3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miyako%2F4d-plugin-ical-v3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miyako%2F4d-plugin-ical-v3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miyako","download_url":"https://codeload.github.com/miyako/4d-plugin-ical-v3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miyako%2F4d-plugin-ical-v3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275067856,"owners_count":25399777,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["4d-plugin"],"created_at":"2024-11-11T02:19:09.949Z","updated_at":"2025-09-14T06:10:26.716Z","avatar_url":"https://github.com/miyako.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"![version](https://img.shields.io/badge/version-17%2B-3E8B93)\n![platform](https://img.shields.io/static/v1?label=platform\u0026message=mac-intel%20|%20mac-arm\u0026color=blue)\n[![license](https://img.shields.io/github/license/miyako/4d-plugin-ical-v3)](LICENSE)\n![downloads](https://img.shields.io/github/downloads/miyako/4d-plugin-ical-v3/total)\n![deprecated](https://img.shields.io/badge/-deprecated-inactive)\n\nSee [4d-utility-sign-app](https://github.com/miyako/4d-utility-sign-app) on how to enable the plugin in 4D.\n\nAlternatively use [4d-class-build-application](https://github.com/miyako/4d-class-build-application) to modify 4D entitlements.\n\n# 4d-plugin-ical-v3\nUpdated version of iCal API\n\n[miyako.github.io](https://miyako.github.io/2020/03/17/4d-plugin-ical-v3.html)\n\n### Remarks\n\nYou must first call ``iCal_Request_permisson`` to ask permission from the user to access their calendar. It is an asynchronous call, which means that in the first instance, it will always return ``{\"success\":false}``. Later, after the user has granted permission, you might get ``{\"success\":true}``.\n\n* If the main app (4D) does not have the required ``Info.plist`` property, the following error might be returned.\n\n```json\n{\n  \"success\":false,\n  \"errorMessage\":\"NScalendarUsageDescription is missing in app info.plist\"\n}\n```\n\n* If the main app (4D) does not have the required codesigning entitlements, the following error might be returned.\n\n```json\n{\n  \"success\":false,\n  \"errorMessage\":\"com.apple.security.personal-information.calendars is missing in app entitlement\"\n}\n```\n\nor \n\n```json\n{\n  \"success\":false,\n  \"errorMessage\":\"com.apple.security.personal-information.calendars is set to false in app entitlement\"\n}\n```\n\nIf the main app (4D) has the required ``Info.plist`` property as well as codesigning entitlement, and the user has not yet been asked for these permissions for the current application, up to 3 dialogs might be presented, one after the other.\n\n\u003cimg width=\"532\" alt=\"スクリーンショット 2020-03-17 9 51 06\" src=\"https://user-images.githubusercontent.com/1725068/76811694-d8518d00-6835-11ea-85a3-5556bc3522f6.png\"\u003e\n\n\u003cimg width=\"532\" alt=\"スクリーンショット 2020-03-17 9 51 10\" src=\"https://user-images.githubusercontent.com/1725068/76811698-dc7daa80-6835-11ea-9e40-d8352d98c0b9.png\"\u003e\n\n\u003cimg width=\"532\" alt=\"スクリーンショット 2020-03-17 11 15 52\" src=\"https://user-images.githubusercontent.com/1725068/76815335-b7db0000-6840-11ea-81ff-b1501dbe786f.png\"\u003e\n\n**Note**: The plugin does not need access Reminder or Contacts. However the underlying API will prompt the requests.\n\nThe system will only display the dialogs once per application session, and never if the user has already denied the same request.\n\nYou can reset security settings from Terminal.\n\n```sh\ntccutil reset Reminders com.4d.4d\ntccutil reset AddressBook com.4d.4d\ntccutil reset Calendar com.4d.4d\n```\n\nAfter the dialog has been presented, one of the following status will be returned.\n\n```json\n{\n  \"success\":true\n}\n```\n\n```json\n{\n  \"success\":false,\n  \"errorMessage\":\"permission denied\"\n}\n```\n\n```json\n{\n  \"success\":false,\n  \"errorMessage\":\"permission restricted\"\n}\n```\n\n```json\n{\n  \"success\":false,\n  \"errorMessage\":\"permission not determined\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiyako%2F4d-plugin-ical-v3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiyako%2F4d-plugin-ical-v3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiyako%2F4d-plugin-ical-v3/lists"}