{"_id":"@bitovi/calendar-events-component","_rev":"26-a42262872a78af7dd176df27b6813ceb","name":"@bitovi/calendar-events-component","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.11":{"name":"@bitovi/calendar-events-component","version":"0.0.11","keywords":["canjs","donejs","donejs-plugin"],"author":{"url":"http://bitovi.com","name":"bitovi","email":"contact@bitovi.com"},"license":"MIT","_id":"@bitovi/calendar-events-component@0.0.11","maintainers":[{"name":"cherif_b","email":"cherif.bouchelaghem@gmail.com"},{"name":"matthewp","email":"matthew@matthewphillips.info"},{"name":"imjoshdean","email":"me@imjoshdean.com"},{"name":"justinbmeyer","email":"justin@bitovi.com"}],"homepage":"http://bitovi.com","bugs":{"url":"https://github.com/bitovi/calendar-events/issues"},"dist":{"shasum":"2779ae663f63c3bb03861cde41732e1f199b8693","tarball":"https://registry.npmjs.org/@bitovi/calendar-events-component/-/calendar-events-component-0.0.11.tgz","fileCount":17,"integrity":"sha512-oshdWHxlZ0S6EDVe1PtfGi4emyDOXXo23bBT1LhzKFYBWg5jO5i1USIY0ufdoCzej/vJS0VJaqctM6oPgjvHVw==","signatures":[{"sig":"MEUCIAYtXs2ONvQMp4ObCbNYuaey4N16sZFEcc4YhG6hySd5AiEA1C1LZGeVG9Ax3CJpMMwB2xUNDl3Jf9UEthzzab40gaM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48338,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaNUPCRA9TVsSAnZWagAAn8UP/0iS+zQpiowsm07Br4TS\nah/v9s6YFT4HltR0fBlLXI0B+nKfrrThYkr5h92P8pSHdKnYNHdLwBKLg0wW\nGsslYxazxQNvfTDU/plUMhIGou5KCt9At1kHx2Gof2+8UnzAFZfSrdfb8GGJ\n6w6PfzAkIw41cUaMoWOZQgthxUex1PhexYZ4yuGcwAr+eodLPFChRhny2zZ1\nljyj/I3T1Isgg0wYR9Uya6TD40DO/FWXcnJYia1mmGu43TQ56SqaziarLQF4\nJUhRDFPzO1vY/5u3dwC3Q9BYeTFD3WsmZ/GLtZ11PbPZtvfwmL5UPr6UCf57\neylqLtHZUXtSproEtrrkJl6E+fwJAxMpeXQfJDLSTRrqsBIvfTkPsT6/NxOO\n+pBV/Da91iha16Nvxwo9NM9Eu59KE1typprZa4bF/SK8EUYw/ygr6HpfIAbR\nxEVis6XjY8+2n3gLK4IAHQ/aDov0yjyu6WTDQd25QJH3vGzEe2vWhTiajeo8\n4CBHIcwafXG52vgG4Y5SqOga0CLZzsDLTUbYiYgxLrr9MA4Lcm+m5DDU4tg6\nPS4w7ADgUntfZiVFGdX1yBa9jsYH3J88AAv4v5Ryzw+VAhjXjZr6jiVmwRfU\nHtfjKVIGJgVSC+QvnNy7wWur4OhVDxMIOl8oXaZYiwFNUnQUhthsy8alVRjy\n6hcs\r\n=P0FD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"calendar-events","steal":{},"gitHead":"ee3ae78b64ea0213666ccee163152a9e873253e2","scripts":{"test":"npm run jshint && npm run testee","build":"node build.js","jshint":"jshint ./*.js --config","testee":"testee test.html --browsers firefox","develop":"done-serve --static --develop --port 8080","version":"git commit -am \"Update version number\" && git checkout -b release && git add -f dist/","preversion":"npm test && npm run build","postpublish":"git push --tags && git checkout master && git branch -D release && git push","release:major":"npm version major && npm publish --access public","release:minor":"npm version minor && npm publish --access public","release:patch":"npm version patch && npm publish --access public"},"_npmUser":{"name":"cherif_b","email":"cherif.bouchelaghem@gmail.com"},"repository":{"url":"git://github.com/bitovi/calendar-events.git","type":"git"},"_npmVersion":"6.14.6","description":"custom element that shows a google calendar","directories":{},"_nodeVersion":"12.18.3","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"steal":"^2.1.6","jshint":"^2.9.1","testee":"^0.9.1","steal-qunit":"^1.0.1","steal-tools":"^2.0.9"},"_npmOperationalInternal":{"tmp":"tmp/calendar-events-component_0.0.11_1600705806488_0.4414614315921077","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@bitovi/calendar-events-component","version":"0.1.0","keywords":["canjs","donejs","donejs-plugin"],"author":{"url":"http://bitovi.com","name":"bitovi","email":"contact@bitovi.com"},"license":"MIT","_id":"@bitovi/calendar-events-component@0.1.0","maintainers":[{"name":"janebitovi","email":"jane@bitovi.com"},{"name":"kyle-n","email":"kylebnazario@gmail.com"},{"name":"bitovi-os","email":"os@bitovi.com"},{"name":"bitovi-core-os","email":"core@donejs.com"},{"name":"mickmcgrath13","email":"mick.mc.13@gmail.com"},{"name":"phillipskevin","email":"kphillips86@gmail.com"},{"name":"tehfedaykin","email":"jennifer.wadella@gmail.com"},{"name":"rlmcneary2","email":"rlmcneary2@gmail.com"},{"name":"mhaynie_bitovi","email":"mhaynie@bitovi.com"},{"name":"fabioemoutinho","email":"fabioemoutinho@gmail.com"},{"name":"christopherjbaker","email":"slithytove2@gmail.com"},{"name":"justinbmeyer","email":"justin@bitovi.com"},{"name":"cherif_b","email":"cherif.bouchelaghem@gmail.com"},{"name":"jazzy_michael","email":"thejazzymichael@gmail.com"},{"name":"alishouman","email":"alyshouman@gmail.com"}],"homepage":"http://bitovi.com","bugs":{"url":"https://github.com/bitovi/calendar-events/issues"},"dist":{"shasum":"29aa41ec70691e2c0fad3158d1f793e038513e69","tarball":"https://registry.npmjs.org/@bitovi/calendar-events-component/-/calendar-events-component-0.1.0.tgz","fileCount":17,"integrity":"sha512-8ltqBl8N+Ze8eqJmT2amuy66D367yWem6eWjAvu0a5MxB0COq2leGlD4EnETxIP0v0RkQukbjOhTEk4n7PeUOQ==","signatures":[{"sig":"MEUCIB0mD9P1HytXx++WSWoxCx5FsgXpC0VVkTNpcw2PpdkqAiEAuLtEAaVjUqyyLuTITt4FBbxvsz/ZOVi6rUNUXpfzvco=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":371953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLag9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5Nw/+N/54JcU2tZdM66p8tr3LtW6BNHM6GvSkAQxLOqclSsG3Fuhs\r\nvm/7lN1pRMYt94Pd6llgOlHGZF84iKfsmupa7MJZJiTCNR0jdPdSTShof1d7\r\nrmksrysHExOB7Vghby8ME9YLO4rsIotxVRPN8OyrL2lqUhM0MG994eiJvSLW\r\nglVyzBeGmnng6CYv5dIEFlVPXBpLNVFdkZfjLJFp66D0m2yZN6mKq+EezufI\r\nEe8IZsVktjZW+UGLPc/Vgb3V56XypG3uvPV7ZNqDqBn3BZrXQUQpiJ+p8myj\r\nMAxAkd/VRWRb+0ZG3YFoQN4hz9DHST+uCg6QwU6Mo3aLvTmmCKO4w3OpZZuu\r\nRn66joQLRTYZeDk9Js9nPxh/o/PahIwjJdwue5Tb7epcdvElh+xZtkFfKmU1\r\niqd4Ajkzl0q2dGiy6/ROup/8L4FbNyT/LYX9Kwy3zhZZIWB2ovvVQZLQtADV\r\n/zZNOME4x6M22WKAKbZsma0qH35BDAr2h/onInZsdXgHpZPUm0qMaHnjHIDz\r\nPMVZ33uLX+EPOJm2s2jSapalU6yP/rvCtSR0mN4+1bstnWTeJ4hJYQSVulHB\r\n5RhmVPLdt2NwcKNKuaZ/hO/IDULhv8dk6C8bW2M5QFL92/GzHsIZrCzjmQ9z\r\nP7P2B7jiqjWtmsE45DXsQgCyUUXBYSYxo54=\r\n=Udiy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"calendar-events","steal":{},"gitHead":"133b9df6e7e20e3934d8c36360fce8a85b6caccf","scripts":{"test":"npm run jshint && npm run testee","build":"node build.js","jshint":"jshint ./*.js --config","testee":"testee test.html --browsers firefox","develop":"done-serve --static --develop --port 8080","version":"git commit -am \"Update version number\" && git checkout -b release && git add -f dist/","preversion":"npm test && npm run build","postpublish":"git push --tags && git checkout main && git branch -D release && git push","release:major":"npm version major && npm publish --access public","release:minor":"npm version minor && npm publish --access public","release:patch":"npm version patch && npm publish --access public"},"_npmUser":{"name":"janebitovi","email":"jane@bitovi.com"},"repository":{"url":"git://github.com/bitovi/calendar-events.git","type":"git"},"_npmVersion":"8.11.0","description":"custom element that shows a google calendar","directories":{},"_nodeVersion":"16.16.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"steal":"^2.1.6","jshint":"^2.9.1","testee":"^0.9.1","steal-qunit":"^1.0.1","steal-tools":"^2.0.9"},"_npmOperationalInternal":{"tmp":"tmp/calendar-events-component_0.1.0_1680713789059_0.8920665721512204","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@bitovi/calendar-events-component","version":"0.2.0","keywords":["canjs","donejs","donejs-plugin"],"author":{"url":"http://bitovi.com","name":"bitovi","email":"contact@bitovi.com"},"license":"MIT","_id":"@bitovi/calendar-events-component@0.2.0","maintainers":[{"name":"janebitovi","email":"jane@bitovi.com"},{"name":"kyle-n","email":"kylebnazario@gmail.com"},{"name":"bitovi-os","email":"os@bitovi.com"},{"name":"bitovi-core-os","email":"core@donejs.com"},{"name":"mickmcgrath13","email":"mick.mc.13@gmail.com"},{"name":"phillipskevin","email":"kphillips86@gmail.com"},{"name":"tehfedaykin","email":"jennifer.wadella@gmail.com"},{"name":"rlmcneary2","email":"rlmcneary2@gmail.com"},{"name":"mhaynie_bitovi","email":"mhaynie@bitovi.com"},{"name":"fabioemoutinho","email":"fabioemoutinho@gmail.com"},{"name":"christopherjbaker","email":"slithytove2@gmail.com"},{"name":"justinbmeyer","email":"justin@bitovi.com"},{"name":"cherif_b","email":"cherif.bouchelaghem@gmail.com"},{"name":"jazzy_michael","email":"thejazzymichael@gmail.com"},{"name":"alishouman","email":"alyshouman@gmail.com"}],"homepage":"http://bitovi.com","bugs":{"url":"https://github.com/bitovi/calendar-events/issues"},"dist":{"shasum":"3191ccc0f79d69a3a9c12fac634648272708d734","tarball":"https://registry.npmjs.org/@bitovi/calendar-events-component/-/calendar-events-component-0.2.0.tgz","fileCount":17,"integrity":"sha512-Ki/fFT00Xv124sjXjzP2M30cjdTASfpGUY1P3JF1MUcWsNGifsjFNaaFvL5OOxCk0zcSmSndxHjNjDw4NfOgoA==","signatures":[{"sig":"MEYCIQDq0ZyUUqwBs+i+gK8wBfPlH/PExuk40g1WE4gZ1EgA3QIhAMlRgQsdOUe94dwIthGGqmJrsrGqQa8NvopBrE6neqNC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":376110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNFjmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNrRAAjlnW4Gb6CNkQZFRR+hr9yYQb32GGImtd7pNMrxercZ+1+50G\r\naYxoBdLTPuohsDpD5/niiBz+iEYNWqgIrvabMJ5g1cvOp2/ni7XVR+wMgnvp\r\nAIyAUY/wDYer8fx1dqTD28CU7eI8zAg/lR0NSWyRs70P2j9DBKidMkbxd/QZ\r\neViBst+PgrRaAUtVzutYXd6MxHjwzF568ERbYpJ8jSfxAI/Sf12c1MXryMSa\r\nqr2SC1KFspkj+j5cKwvwjjg8Yc+EPt/hpD6BRDV0X0rfQ8J4mE/bGu/us69w\r\ny+mIcqryQ3bmuARLhGBWW1qyWpxY1T3NUglCb/eysGpjFZfDfQ7u6mabuxhj\r\nVJubwGVCOFiswcHKYI1NEg4Do2F9ebzoGJyEtu5vkhqYsClNKuknuB3MZOlR\r\nFaAUUp3njAjOM08Qdyu40MKAcsZyJNYsM1O0EkKQsOvAJv/saO4xXrdI3scY\r\nVBSuLW2bAXi0l02C2yZDTUygAZ6OoJpNvQHfuskcogHm0GQw9llKG7xAKtw6\r\nXsRKmnKQMIQHuAxlz7xbVa6Jy8o36Oh+t/wCnEWySyQWhpAwfvonBm91z19J\r\ns8j35concyngP4en45ePytxw9VtEsk/bjBQpgv5tQNTeYKsfYELei9RCnNfV\r\nDkgfIO6F2+9mH+okAQA1lAq2wJae6LAO8UA=\r\n=8tXo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"calendar-events","steal":{},"gitHead":"742395adca2a9ece544347b65defdd61ea758df1","scripts":{"test":"npm run jshint && npm run testee","build":"node build.js","jshint":"jshint ./*.js --config","testee":"testee test.html --browsers firefox","develop":"done-serve --static --develop --port 8080","version":"git commit -am \"Update version number\" && git checkout -b release && git add -f dist/","preversion":"npm test && npm run build","postpublish":"git push --tags && git checkout main && git branch -D release && git push","release:major":"npm version major && npm publish --access public","release:minor":"npm version minor && npm publish --access public","release:patch":"npm version patch && npm publish --access public"},"_npmUser":{"name":"janebitovi","email":"jane@bitovi.com"},"repository":{"url":"git://github.com/bitovi/calendar-events.git","type":"git"},"_npmVersion":"8.11.0","description":"custom element that shows a google calendar","directories":{},"_nodeVersion":"16.16.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"steal":"^2.1.6","jshint":"^2.9.1","testee":"^0.9.1","steal-qunit":"^1.0.1","steal-tools":"^2.0.9"},"_npmOperationalInternal":{"tmp":"tmp/calendar-events-component_0.2.0_1681152230247_0.7066232637969376","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-09-21T16:30:06.239Z","modified":"2026-05-21T14:19:02.811Z","0.0.11":"2020-09-21T16:30:06.647Z","0.1.0":"2023-04-05T16:56:29.215Z","0.2.0":"2023-04-10T18:43:50.502Z"},"bugs":{"url":"https://github.com/bitovi/calendar-events/issues"},"author":{"url":"http://bitovi.com","name":"bitovi","email":"contact@bitovi.com"},"license":"MIT","homepage":"http://bitovi.com","keywords":["canjs","donejs","donejs-plugin"],"repository":{"url":"git://github.com/bitovi/calendar-events.git","type":"git"},"description":"custom element that shows a google calendar","maintainers":[{"email":"justin@bitovi.com","name":"justinbmeyer"},{"email":"cherif.bouchelaghem@gmail.com","name":"cherif_b"},{"email":"alyshouman@gmail.com","name":"alishouman"},{"email":"os@bitovi.com","name":"bitovi-os"},{"email":"kylebnazario@gmail.com","name":"kyle-n"},{"email":"mhaynie@bitovi.com","name":"mhaynie_bitovi"},{"email":"brad@bitovi.com","name":"bmomberger-bitovi"},{"email":"fabioemoutinho@gmail.com","name":"fabioemoutinho"},{"email":"rich@limnous.com","name":"rlmcneary2"},{"email":"jennifer.wadella@gmail.com","name":"tehfedaykin"},{"email":"kphillips86@gmail.com","name":"phillipskevin"},{"email":"mick.mc.13@gmail.com","name":"mickmcgrath13"},{"email":"core@donejs.com","name":"bitovi-core-os"},{"email":"jane@bitovi.com","name":"janebitovi"},{"email":"DanD.Tran89@gmail.com","name":"dandamantran89"},{"email":"sandover@gmail.com","name":"sandover"}],"readme":"## @bitovi/calendar-events\n\nThe `@bitovi/calendar-events` package exports a `<calendar-events>`\ncustom element that lists events loaded from a google calendar.\n\nImport the `calendar-events.js` file from `/dist/amd/`, `/dist/cjs/`, or `/dist/global/`\n\nUse it by adding the custom element to your page:\n\n```html\n<calendar-events\n  api-key=\"AIzaSyBsNpdGbkTsqn1BCSPQrjO9OaMySjK5Sns\"\n  calendar-id=\"jupiterjs.com_g27vck36nifbnqrgkctkoanqb4@group.calendar.google.com\"\n  event-count=\"3\"\n  show-recurring\n></calendar-events>\n```\n\n## Attributes\n\n### api-key\n\n`required`\n\nSet this to a google api key.\n\n### calendar-id\n\n`required`\n\nThe calendar whose events will be displayed.\n\n### event-count\n\nThe total number of events to display. This defaults to `10`.\n\n### show-recurring\n\nIf present, this will include recurring events.\n\n\n## HTML\n\nThe default html output for an event looks like the following:\n\n```html\n<calendar-events>\n  <div class=\"calendar-events-event\">\n    <div class='event-header'>\n      <div class='event-summary'><a class='event-url event-title'></a></div>\n      <div class='event-group'></div>\n      <div class='event-date'></div>\n      <div class='event-location'></div>\n      <div class='event-body'></div>\n    </div>\n    <div class='event-footer'><a class='event-url'>View Event</a></div>\n  </div>\n  ...\n</calendar-events>\n```\n\nYou can customize it by adding it to a `<template>` within your page:\n\n```html\n<calendar-events>\n  <template>\n    <a class='event-url'>\n      <h1 class='event-title'></h1>\n      <p class='event-body'></p>\n    </a>\n  </template>\n</calendar-events>\n```\n\nIf you wrap your custom event template in a container with class `calendar-events-event`, you can specify custom templates for other states as well:\n\n```html\n<calendar-events>\n  <template>\n    <div class=\"calendar-events-event\">\n      <a class='event-url'>\n        <h1 class='event-title'></h1>\n        <p class='event-body'></p>\n      </a>\n    </div>\n    <div class='calendar-events-pending'>Appears when the calendar API is fetching</div>\n    <div class='calendar-events-rejected'><p>Appears when an error occured.</p></div>\n    <div class='calendar-events-resolved'><p>Appears when there are no events to display.</p></div>\n  </template>\n</calendar-events>\n```\n\nWithin the event template (`.calendar-events-event`), the following classes will allow the element to be updated with corresponding information about the event. The textContent of every tag matching the class is replaced.\n\n`.event-title` - The title of the event (`event.summary` from the API response)\n\n`.event-group` - The name of the Calendar the event was created under (`event.organizer.displayName`)\n\n`.event-location` - The location field or hangout link, urls become links. (`event.location || event.hangoutLink`)\n\n`.event-body` - The content of the description field. Linebreaks in plaintext converted into br tags. (`event.description`)\n\n`a.event-url` - Updates the href (must be an `a` tag in your template) as a link to the event itself. (`event.htmlLink`)\n\n`.event-all-day` - adds a `data-all-day` attribute to the element with a value of true or false for styling purposes like hiding the time.\n\n`.event-date` - The event's start date and time. (`event.start.dateTime || event.start.date`)\n\n### .event-date locales and options\n\nThe replaced value of `.event-date` uses [date.toLocaleString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString). The `locales` and `options` parameters are best documented under the [Intl.DateTimeFormat() constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat).\n\nBy default, if the calendar start date does not include a time (\"All Day\" is checked) then the date shown in `.event-date` elements will be the result of calling `.toLocaleString(undefined, { month: \"short\", day: \"numeric\", year: \"numeric\" })`\n\nIn the US, that might produce the string `Apr 7, 2023`. In Japan, it may return `2023年4月7日`. Order of the options does not matter.\n\nBy default, if the calendar start date also includes a time, the default options are:\n\n```\nmonth: \"short\",\nday: \"numeric\",\nyear: \"numeric\",\nhour: \"numeric\",\nminute: \"2-digit\"\n```\n\nwhich may produce `Apr 7, 2023, 9:21 PM` in the US or `2023年4月7日 21:21` in Japan.\n\n#### data-locales\n\nTo set a specific locale, pass a space separated list of locale tags like so:\n\n`<span class=\"event-date\" data-locales=\"en-US\"></span>`\n\nor\n\n`<span class=\"event-date\" data-locales=\"iu-Cans-CA es-PR\"></span>`\n\nthe first tag in the list that's suported by the browser will be chosen.\n\n#### data-options\n\nBrowsers do not support all combinations of [the possible options options](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#datestyle) but many work as expected.\n\nYou can use the `data-options` attribute to customize the output.\n\nOptions in the mdn documentation linked above can be placed in the attribute in a space separated list to include them in the output.\n\n```html\n<span class=\"event-date\" data-locales=\"en-US\" data-options=\"month day weekday\"></span>\n<span class=\"event-date\" data-locales=\"en-US\" data-options=\"weekday\"></span>\n<span class=\"event-date\" data-locales=\"en-US\" data-options=\"year\"></span>\n<span class=\"event-date\" data-locales=\"en-US\" data-options=\"month\"></span>\n<span class=\"event-date\" data-locales=\"en-US\" data-options=\"day\"></span>\n<span class=\"event-date\" data-locales=\"en-US\" data-options=\"hour\"></span>\n<span class=\"event-date\" data-locales=\"en-US\" data-options=\"hour hourCycle:h24\"></span>\n<span class=\"event-date\" data-locales=\"en-US\" data-options=\"hour hour12:false\"></span>\n```\n\nThese are the most common combinations:\n```\ndata-options=\"weekday year month day hour minute second\"\ndata-options=\"weekday year month day\"\ndata-options=\"year month day\"\ndata-options=\"year month\"\ndata-options=\"month day\"\ndata-options=\"hour minute second\"\ndata-options=\"hour minute\"\n```\n\nDefaults are used for each option. To choose specifc variants of an option, add a colon immediately after the option property and its desired value imediately after that.\n\n```html\n<span class=\"event-date\" data-options=\"month:short day:2-digit weekday:short\"></span>\n\n<span class=\"event-date\" data-options=\"hour hourCycle:h24\"></span>\n<span class=\"event-date\" data-options=\"hour hour12:false\"></span>\n\n<span class=\"event-date\" data-options=\"weekday:long\"></span>\n<span class=\"event-date\" data-options=\"weekday:short\"></span>\n<span class=\"event-date\" data-options=\"weekday:narrow\"></span>\n\n<span class=\"event-date\" data-options=\"year:numeric\"></span>\n<span class=\"event-date\" data-options=\"year:2-digit\"></span>\n\n<span class=\"event-date\" data-options=\"month:numeric\"></span>\n<span class=\"event-date\" data-options=\"month:2-digit\"></span>\n<span class=\"event-date\" data-options=\"month:long\"></span>\n<span class=\"event-date\" data-options=\"month:short\"></span>\n<span class=\"event-date\" data-options=\"month:narrow\"></span>\n\n<span class=\"event-date\" data-options=\"day:numeric\"></span>\n<span class=\"event-date\" data-options=\"day:2-digit\"></span>\n```\n\n### data-find\n\nCopy text and urls from links in the event's description (.event-body) into other parts of the template.\n\nGiven this event description:\n\nQA Con 2023 [register here](https://bitovi.com) if you wish.\n[Check out Andrew's meme of the day here](https://i.imgur.com/i7eZZ5X.jpg).\n\nthe following event template\n\n```html\n<calendar-events>\n  <template>\n    <div class=\"calendar-events-event\">\n      <a data-find=\"register\"></a>\n      <img data-find=\"meme\">\n\n      <p class='event-body'></p>\n      <a data-find=\"register\">Register Here!</a>\n    </div>\n  </template>\n</calendar-events>\n```\n\nwould produce:\n\n```html\n<div class=\"calendar-events-event\">\n  <a data-find=\"register\" href=\"https://bitovi.com\">register here</a>\n  <img data-find=\"meme\" src=\"https://i.imgur.com/i7eZZ5X.jpg\" alt=\"Check out Andrew's meme of the day here\">\n\n  <p class='event-body'>\n    QA Con 2023 <a href=\"https://bitovi.com\">register here</a> if you wish.<br>\n    <a href=\"https://i.imgur.com/i7eZZ5X.jpg\">Check out Andrew's meme of the day here</a>.\n  </p>\n  <a data-find=\"register\" href=\"https://bitovi.com\">Register Here!</a>\n</div>\n```\n\nif you want the copied data to be removed from the event-body, add `data-cut` flag to the `data-find` elements:\n\n```html\n<calendar-events>\n  <template>\n    <div class=\"calendar-events-event\">\n      <a data-find=\"register\" data-cut></a>\n      <img data-find=\"meme\" data-cut>\n\n      <p class='event-body'></p>\n      <a data-find=\"register\">Register Here!</a>\n    </div>\n  </template>\n</calendar-events>\n```\n\nbecomes:\n\n```html\n<div class=\"calendar-events-event\">\n  <a data-find=\"register\" href=\"https://bitovi.com\">register here</a>\n  <img data-find=\"meme\" src=\"https://i.imgur.com/i7eZZ5X.jpg\" alt=\"Check out Andrew's meme of the day here\">\n\n  <p class='event-body'>\n    QA Con 2023  if you wish.<br>\n    .\n  </p>\n  <a data-find=\"register\" href=\"https://bitovi.com\">Register Here!</a>\n</div>\n```\n\nCoordinate with your marketing team on what keywords your templates can expect to find in the link text within your event descriptions.\n\nUsing either above template, if the event description was instead:\n\n\"2077 DLC marketing campaign starts in June!\"\n\nthe result would be:\n\n```html\n<div class=\"calendar-events-event\">\n  <p class='event-body'>\n    2077 DLC marketing campaign starts in June!\n  </p>\n</div>\n```\n\n(any links without an `href` or images without a `src` are removed from the output)\n\nYou can specify default `href` / `src` attributes in the template, `data-find` will override them if found, otherwise the defaults will remain in the final output.\n\nIf a link in the template uses the `.event-url` class AND `data-find`, the event url will act as a default href value and only be overwritten if data-find matched. If not matched, the link will remain in the output with the event-url.\n\nDefault textContent of a link will NOT be overwritten by `data-find`.\n\nDefault alt text of an image WILL be overwritten by `data-find`.\n\nFinally, if your marketing team wants to be more flexible with their link text in the event descriptions, you can specify multiple find terms in your template with a space-separated-list of terms:\n\n```html\n...\n<a data-find=\"register registration\"></a>\n...\n```\n\nThere should not be more than one link in the event's description whose text contains a `data-find` query term (case insensitive), but if there is, only the first one is used.\n","readmeFilename":"README.md"}