{"id":26279058,"url":"https://github.com/jools-r/mka_ical","last_synced_at":"2026-07-13T06:32:20.749Z","repository":{"id":90705033,"uuid":"145590967","full_name":"jools-r/mka_ical","owner":"jools-r","description":"Publish ical calendars as event list to your website","archived":false,"fork":false,"pushed_at":"2018-08-21T22:23:43.000Z","size":367,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-04T13:47:53.214Z","etag":null,"topics":["textpattern-plugin"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jools-r.png","metadata":{"files":{"readme":"readme.textile","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-08-21T16:31:10.000Z","updated_at":"2018-08-21T22:23:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"0fa6fd3c-1e45-4997-b457-d77fdd87c3db","html_url":"https://github.com/jools-r/mka_ical","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jools-r/mka_ical","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jools-r%2Fmka_ical","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jools-r%2Fmka_ical/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jools-r%2Fmka_ical/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jools-r%2Fmka_ical/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jools-r","download_url":"https://codeload.github.com/jools-r/mka_ical/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jools-r%2Fmka_ical/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35413537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"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":["textpattern-plugin"],"created_at":"2025-03-14T13:19:14.826Z","updated_at":"2026-07-13T06:32:20.737Z","avatar_url":"https://github.com/jools-r.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nh1. mka_ical - Help\n\nh3. Display ical calendars as event lists\n\nmka_ical is a Textpattern plugin for displaying events from an iCal URL (e.g. Google Calendar) or ics file using a standard or user-definable template.\n\nIt's also possible to specify a folder or a Textpattern category for images referenced in the feed. The image is drawn from the title of the event and the name of the image.\n\n\nh2. Tags\n\nh3. Tag: mka_ical\n\nInserts a public calendar from an ics url or file, or a googlemail account. Can be used as a standalone or as a container tag.\n\nThe following attributes are available:\n\n*url* (string, default: \"\", required)\nUrl of the ICS file\n\n*googlemail*\nGoogleMail address. The user's public google calendar will automatically be referenced.\n\n*limit* (int, default: @0@, optional)\nDefines how many events are shown. Defaults to 0 (= all)\n\n*pastevents* (boolean, default: @FALSE@, optional)\nDisplay past events\n\n*html_id* (string, default: @icalevents@, optional)\nSets the html id for the event list\n\n*class*\nSets the CSS class for the event list\n\n*details* (boolean, default: @TRUE@, optional)\nDisplay the details\n\n*cachingtime* (int, default: @30@ (minutes), optional)\nDuration that local cache file persists\n\n*form* (string, default: none, optional)\nName of txp form to use to format each event item\n\n*fmttime* (string, default: @%H:%M@, optional)\nFormat string for the time\n\n*fmtdate* (string, default: @%d.%m.%Y@, optional)\nFormat string for the date\n\n*img* (boolean, default: @FALSE@)\nDisplay an image for each date (requires following attributes)\n\n*imgfolder* (string, default: @images@, optional)\nImage folder\n\n*defaultimg* (string, default: @none.gif@, optional)\nDefault image\n\n\nh3. Tag: mka_if_first_event\n\nUse as a container tag. The tag will execute the contained statements if the displayed event is the _first_ in the currently displayed calendar.\n\n\nh3. Tag: mka_if_last_event\n\nUse as a container tag. The tag will execute the contained statements if the displayed event is the _last_ in the currently displayed calendar.\n\n\nh3. Tag: mka_if_different\n\nUse as a container tag. The tag will execute the contained statements when the value of the contained statement differs from the preceding value for that contained statement.\n\nIf additionally processing the @{placeholder}@ values, e.g. with mka_format_date, set the @key@ attribute to a name of your choosing. See Example 4.\n\nAttribute:\n\n*key* (string, default: empty, optional)\nA name for your if_different instance.\n\n\nh3. Tag: mka_format_date\n\nUse as a container tag around an existing date, time or datetime placeholder. The tag will reformat the date or time output according to a specified format. \n\nAttribute:\n\n*format* (date parameter, default: empty)\nUse the date formatting parameters of \"strftime\":http://php.net/manual/en/function.strftime.php to define the date and/or time format.\n\n_Note: The @fmtdate@ and @fmttime@ attributes of @mka_ical@ control how the placeholders @{start_date}@, @{end_date}@ and @{start_time}@ and @{endtime}@ are formatted for the entire calendar. This tag allows you to override the date or time format._\n\n\nh2. Placeholder variables\n\n; @{date}@\n: Date (format according to \"fmtdate\" and \"fmttime\" attributes)\n; @{start_datetime}@\n: Start datetime in @%Y-%m-%d %H:%M@ format\n; @{start_date}@\n: Start date (format according to \"fmtdate\" attribute)\n; @{start_time}@\n: Start time (format according to \"fmttime\" attribute)\n; @{end_datetime}@\n: End datetime in @%Y-%m-%d %H:%M@ format\n; @{end_date}@\n: End date (format according to \"fmtdate\" attribute)\n; @{end_time}@\n: End time (format according to \"fmttime\" attribute)\n; @{duration}@\n: Duration (formatted as days:hours:minutes:seconds)\n; @{title}@\n: Title (ics summary entry)\n; @{description}@\n: Description\n; @{location}@\n: Location/venue\n; @{uid}@\n: Event unique ID\n; @{imagesrc}@\n: Link to image\n; @{imageid}@\n: ID# of image (when using images from categories)\n\n\nh2. Examples\n\n\nh3. Example 1 (using a public Google Calendar)\n\nbc. \u003ctxp:mka_ical googlemail=\"YOURADDRESSNAME@googlemail.com\" /\u003e\n\n* *googlemail*: Your GoogleMail address or name.\n\n\nh3. Example 2 (using a custom url and additional options)\n\nbc. \u003ctxp:mka_ical url=\"https://domain.com/url-of-ics-file/calendar.ics\"\n    pastevents=\"1\" img=\"1\" imgfolder=\"images/events/\" defaultimg=\"none.gif\" /\u003e\n\n* *url*: URL of a calendar file\n* *pastevents*: [0,1] Show past events?\n* *limit*: [0,1,2,3,4,…] Show only X events\n* *img*: [0,1] Show images?\n* *imgfolder*: Where are the images?\n* *defaultimg*: Name of the default image\n\n\nh3. Example 3 (mka_ical as a container tag)\n\nbc.. \u003ctxp:mka_ical wraptag=\"\" break=\"\"\n    googlemail=\"YOURADDRESSNAME@googlemail.com\"\u003e\n    \u003cdiv class=\"h-event\"\u003e \u003c!-- microdata h-event --\u003e\n    \u003ch1 class=\"p-name\"\u003e{title}\u003c/h1\u003e\n    \u003cp class=\"h-event__meta\"\u003e\n    From \u003ctime class=\"dt-start\" datetime=\"{start_datetime}\"\u003e{start_date} {start_time}\u003c/time\u003e\n        to \u003ctime class=\"dt-end\" datetime=\"{end_datetime}\"\u003e{end_time}\u003c/time\u003e\n        at \u003cspan class=\"p-location\"\u003e{location}\u003c/span\u003e\n    \u003c/p\u003e\n    \u003cimg class=\"event-img\" src=\"{imagesrc}\" border=\"0\" align=\"left\"\u003e\n    \u003cp class=\"p-summary\"\u003e{description}\u003c/p\u003e\n    \u003ca class=\"u-url\" href=\"{event_url}\"\u003eMore information\u003c/a\u003e\n    \u003c/div\u003e\n\u003c/txp:mka_ical\u003e\n\nh3. Example 4 (“Month year” headings using mka_if_different and mka_format_date)\n\nbc.. \u003ctxp:mka_ical url=\"calendar.ics\" wraptag=\"\" break=\"\"\u003e\n    \u003ctxp:mka_if_different key=\"month_year\"\u003e\u003ch2\u003e\u003ctxp:mka_format_date format=\"%B %Y\"\u003e{start_date}\u003c/txp:mka_format_date\u003e\u003c/h2\u003e\u003c/txp:mka_if_different\u003e\n    \u003cdiv class=\"h-event\"\u003e\n        \u003cp class=\"h-event__meta\"\u003e\n            \u003ctime class=\"dt-start\" datetime=\"{start_datetime}\"\u003e{start_date}\u003c/time\u003e –\n            \u003ctime class=\"dt-end\" datetime=\"{end_datetime}\"\u003e{end_time}\u003c/time\u003e,\n            \u003cspan class=\"p-location\"\u003e{location}\u003c/span\u003e\n        \u003c/p\u003e\n        \u003ctxp:evaluate wraptag=\"p\" class=\"description\"\u003e{description}\u003c/txp:evaluate\u003e\n    \u003c/div\u003e\n\u003c/txp:mka_ical\u003e\n\n\nh3. Standard output\n\nbc.. \u003cspan class=\"date\"\u003e{date}\u003c/span\u003e\n\u003cspan class=\"title\"\u003e{title}\u003c/span\u003e\n\u003cspan class=\"description\"\u003e{description}\u003c/span\u003e\n\n\nh2. Changelog\n\n* *0.7.0* – Textpattern v4.7 and php 7 compatibility (jools-r)\n** Plugin cleanup and reconfiguration for rah_blobin/plugin compiler\n** Inclusion of updated ical parser library (php5.6+ compatibility) in plugin\n** Updated google calendar URL\n** New 'mka_if_first_event' tag\n** New 'mka_if_last_event' tag\n** New 'mka_if_different' tag\n** New 'mka_format_date' tag\n** Tag registration for Txp 4.6+\n** Updated help\n** Additional replacement placeholders\n** Attribute 'cssid' renamed to 'html_id' in line with other txp tags (cssid still accepted for now)\n** New 'googlemaildomain' attribute if using just google username but need to use 'gmail' rather than 'googlemail' (default setting)\n** Cached json file now located in /tmp folder (as defined in prefs), not /files\n* *0.6.3* – Debug details removed (Martin Kozianka)\n* *0.6.2* - Output the date with *strftime*. Resolve: error when displaying without image (Martin Kozianka)\n* *0.6.1* – First public version (Martin Kozianka)\n\n\nh2. Credits\n\nThis plugin was originally the work of Martin Kozianka (\"kozianka.de\":https://kozianka.de) and has since been updated to work with Textpattern 4.7+.\n\nIt makes use of the ICal parsing library \"TKr/intouch-iCalendar\":https://github.com/TKr/intouch-iCalendar which is a fork of \"intouch-iCalendar\":https://github.com/mfkahn/intouch-iCalendar which is in turn based on \"SG-iCalendar\":http://sevengoslings.net/icalendar by Morten Fangel.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjools-r%2Fmka_ical","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjools-r%2Fmka_ical","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjools-r%2Fmka_ical/lists"}