{"id":28385783,"url":"https://github.com/beyonk-group/svelte-scheduler","last_synced_at":"2025-06-26T12:31:24.121Z","repository":{"id":42848777,"uuid":"203158899","full_name":"beyonk-group/svelte-scheduler","owner":"beyonk-group","description":"Scheduling and Calendaring component for Svelte","archived":false,"fork":false,"pushed_at":"2023-01-06T05:15:06.000Z","size":1073,"stargazers_count":6,"open_issues_count":12,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-30T13:48:31.421Z","etag":null,"topics":["beyonk","calendar","component","dates","diary","events","journal","scheduler","svelte"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/beyonk-group.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2019-08-19T11:26:10.000Z","updated_at":"2024-12-06T10:55:16.000Z","dependencies_parsed_at":"2023-02-05T10:01:25.161Z","dependency_job_id":null,"html_url":"https://github.com/beyonk-group/svelte-scheduler","commit_stats":null,"previous_names":["beyonk-group/svelte-scheduler"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/beyonk-group/svelte-scheduler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beyonk-group%2Fsvelte-scheduler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beyonk-group%2Fsvelte-scheduler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beyonk-group%2Fsvelte-scheduler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beyonk-group%2Fsvelte-scheduler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beyonk-group","download_url":"https://codeload.github.com/beyonk-group/svelte-scheduler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beyonk-group%2Fsvelte-scheduler/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262067869,"owners_count":23253685,"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","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":["beyonk","calendar","component","dates","diary","events","journal","scheduler","svelte"],"created_at":"2025-05-30T11:44:05.450Z","updated_at":"2025-06-26T12:31:24.115Z","avatar_url":"https://github.com/beyonk-group.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://beyonk.com\"\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/218949/144224348-1b3a20d5-d68e-4a7a-b6ac-6946f19f4a86.png\" width=\"198\" /\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n\u003c/a\u003e\n\n## Svelte Scheduler\n\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com) [![CircleCI](https://circleci.com/gh/beyonk-adventures/svelte-scheduler.svg?style=shield)](https://circleci.com/gh/beyonk-adventures/svelte-scheduler) [![svelte-v3](https://img.shields.io/badge/svelte-v3-blueviolet.svg)](https://svelte.dev)\n\nCalendaring component in Svelte\n\n**This project is a work-in-progress. It doesn't work as advertised right now, we're just assessing the shape of things. You might consider avoiding it entirely, or opening a lot of PRs :)**\n\n## Installation\n\n`npm install --save-dev @beyonk/svelte-scheduler`\n\n## Usage\n\nCreate an instance of the Scheduler, and pass it a method to fetch your monthly schedules.\n\nIn the example below this is a simple JSON file which has nested years, months, and days.\n\nInside each day is a reference to a component which should be rendered for that day, and a series of props to pass to it.\n\n```jsx\nBasic usage\n\n// App.svelte\n\u003cScheduler bind:fetchSchedule /\u003e\n\n\u003cscript\u003e\n  import Scheduler from '@beyonk/svelte-scheduler'\n  import Popdown from './Popdown.svelte'\n  import get from 'just-safe-get'\n\n  async function fetchSchedule (year, month) {\n    return get(schedules, [ year, month ])\n  }\n\n  const schedules = {\n    2019: {\n      8: {\n        22: {\n          component: EventList,\n          props: {}\n        }\n      }\n    }\n  }\n\u003c/script\u003e\n```\n\nOur EventList component responsively shows a quick day overview.\n\n```jsx\n// EventList.svelte\n\u003cp\u003e\n  ... whatever you want here.\n\u003c/p\u003e\n```\n\nEach render, and each time the month is changed, the fetchSchedule method will be called again. fetchSchedule returns a simple json object of days of the month.\n\n## Events\n\n```jsx\nThe scheduler fires a select event when a valid day is clicked, and sets the class 'is-selected' on that day in the calendar.\n\n// App.svelte\n\u003cScheduler on:select={select} /\u003e\n\n\u003cscript\u003e\n  import Scheduler from '@beyonk/svelte-scheduler'\n  import get from 'just-safe-get'\n\n  function select (e) {\n    const { year, month, day } = e.details\n    // You can use year/month/day to fetch full information about an event.\n  }\n\u003c/script\u003e\n```\n## Overview\n\n```jsx\nThe scheduler can show a day-overview component when a day is clicked. Specify the 'overview' property on your month data.\n\nThe overview component receives the same props as your day component.\n\n// App.svelte\n\u003cScheduler bind:fetchSchedule /\u003e\n\n\u003cscript\u003e\n  import Scheduler from '@beyonk/svelte-scheduler'\n  import Popdown from './Popdown.svelte'\n  import EventList from './EventList.svelte'\n  import get from 'just-safe-get'\n\n  async function fetchSchedule (year, month) {\n    return get(schedules, [ year, month ])\n  }\n\n  const schedules = {\n    2019: {\n      8: {\n        22: {\n          component: EventList,\n          overview: Popdown\n          props: {}\n        }\n      }\n    }\n  }\n\u003c/script\u003e\n```\n\nOur Popdown component lists full event detail.\n\n```jsx\n// Popdown.svelte\n\u003cp\u003e\n  ... whatever you want here.\n\u003c/p\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeyonk-group%2Fsvelte-scheduler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeyonk-group%2Fsvelte-scheduler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeyonk-group%2Fsvelte-scheduler/lists"}