{"id":24653173,"url":"https://github.com/rouftom/react-mui-scheduler","last_synced_at":"2026-02-27T17:40:46.844Z","repository":{"id":57334898,"uuid":"411138492","full_name":"rouftom/react-mui-scheduler","owner":"rouftom","description":"React material planner is a react component based on @mui v5 that allows you to manage data in a calendar","archived":false,"fork":false,"pushed_at":"2024-05-30T01:59:59.000Z","size":908,"stargazers_count":70,"open_issues_count":16,"forks_count":32,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-28T01:15:00.471Z","etag":null,"topics":["mui","scheduler"],"latest_commit_sha":null,"homepage":"https://rouftom.github.io/react-mui-scheduler-demo/","language":"JavaScript","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/rouftom.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-09-28T04:37:51.000Z","updated_at":"2025-10-14T20:16:45.000Z","dependencies_parsed_at":"2025-01-25T20:14:00.989Z","dependency_job_id":"8a0c40cd-7c34-4ecf-9bfd-e9400ce72a8f","html_url":"https://github.com/rouftom/react-mui-scheduler","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/rouftom/react-mui-scheduler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rouftom%2Freact-mui-scheduler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rouftom%2Freact-mui-scheduler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rouftom%2Freact-mui-scheduler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rouftom%2Freact-mui-scheduler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rouftom","download_url":"https://codeload.github.com/rouftom/react-mui-scheduler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rouftom%2Freact-mui-scheduler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29906546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T17:28:36.873Z","status":"ssl_error","status_checked_at":"2026-02-27T17:28:20.970Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["mui","scheduler"],"created_at":"2025-01-25T20:13:57.944Z","updated_at":"2026-02-27T17:40:46.820Z","avatar_url":"https://github.com/rouftom.png","language":"JavaScript","funding_links":["https://www.buymeacoffee.com/Lnp9rkM"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"\" target=\"_blank\"\u003e\u003cimg align=\"center\" src=\"https://user-images.githubusercontent.com/12144793/166131609-62c6fa1d-c8fc-4147-8adc-78260836b94b.gif\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003c!-- ![month-mode-preview.png](https://user-images.githubusercontent.com/12144793/166131609-62c6fa1d-c8fc-4147-8adc-78260836b94b.gif \"Month mode preview\") --\u003e\n\n\u003ch1 align=\"center\"\u003e📅 React Material Scheduler\u003c/h1\u003e\n\u003cp align=\"center\"\u003edeveloped with \u003ca target=\"_blank\" href=\"https://mui.com\"\u003e@mui v5\u003c/a\u003e \u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"MIT license\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\"\u003e\n  \u003cimg alt=\"GitHub release (latest by date)\" src=\"https://img.shields.io/github/v/release/rouftom/react-mui-scheduler\"\u003e\n  \u003cimg alt=\"GitHub code size in bytes\" src=\"https://img.shields.io/github/languages/code-size/rouftom/react-mui-scheduler\"\u003e\n  \u003cimg alt=\"Snyk Vulnerabilities for GitHub Repo\" src=\"https://img.shields.io/snyk/vulnerabilities/github/rouftom/react-mui-scheduler\"\u003e\n\u003c/p\u003e\n\n---\n\nReact mui scheduler is a react component based on @mui v5 that allows you to manage data in a calendar.\n\u003cp\u003e\u003ca href=\"https://rouftom.github.io/react-mui-scheduler-demo/\" target=\"_blank\"\u003eDemo here\u003c/a\u003e\u003c/p\u003e\n\n## 🚀 Installation\n```nodejs\n  npm install react-mui-scheduler\n```\n\n## 💻 Usage\n```javascript\nimport React, {useState} from 'react'\nimport ReactDOM from 'react-dom'\nimport Scheduler from \"react-mui-scheduler\"\n\nfunction App() {\n  const [state] = useState({\n    options: {\n      transitionMode: \"zoom\", // or fade\n      startWeekOn: \"mon\",     // or sun\n      defaultMode: \"month\",    // or week | day | timeline\n      minWidth: 540,\n      maxWidth: 540,\n      minHeight: 540,\n      maxHeight: 540\n    },\n    alertProps: {\n      open: true,\n      color: \"info\",          // info | success | warning | error\n      severity: \"info\",       // info | success | warning | error\n      message: \"🚀 Let's start with awesome react-mui-scheduler 🔥 🔥 🔥\" ,\n      showActionButton: true,\n      showNotification: true,\n      delay: 1500\n    },\n    toolbarProps: {\n      showSearchBar: true,\n      showSwitchModeButtons: true,\n      showDatePicker: true\n    }\n  })\n  \n  const events = [\n    {\n      id: \"event-1\",\n      label: \"Medical consultation\",\n      groupLabel: \"Dr Shaun Murphy\",\n      user: \"Dr Shaun Murphy\",\n      color: \"#f28f6a\",\n      startHour: \"04:00 AM\",\n      endHour: \"05:00 AM\",\n      date: \"2022-05-05\",\n      createdAt: new Date(),\n      createdBy: \"Kristina Mayer\"\n    },\n    {\n      id: \"event-2\",\n      label: \"Medical consultation\",\n      groupLabel: \"Dr Claire Brown\",\n      user: \"Dr Claire Brown\",\n      color: \"#099ce5\",\n      startHour: \"09:00 AM\",\n      endHour: \"10:00 AM\",\n      date: \"2022-05-09\",\n      createdAt: new Date(),\n      createdBy: \"Kristina Mayer\"\n    },\n    {\n      id: \"event-3\",\n      label: \"Medical consultation\",\n      groupLabel: \"Dr Menlendez Hary\",\n      user: \"Dr Menlendez Hary\",\n      color: \"#263686\",\n      startHour: \"13 PM\",\n      endHour: \"14 PM\",\n      date: \"2022-05-10\",\n      createdAt: new Date(),\n      createdBy: \"Kristina Mayer\"\n    },\n    {\n      id: \"event-4\",\n      label: \"Consultation prénatale\",\n      groupLabel: \"Dr Shaun Murphy\",\n      user: \"Dr Shaun Murphy\",\n      color: \"#f28f6a\",\n      startHour: \"08:00 AM\",\n      endHour: \"09:00 AM\",\n      date: \"2022-05-11\",\n      createdAt: new Date(),\n      createdBy: \"Kristina Mayer\"\n    }\n  ]\n  \n  const handleCellClick = (event, row, day) =\u003e {\n    // Do something...\n  }\n  \n  const handleEventClick = (event, item) =\u003e {\n    // Do something...\n  }\n  \n  const handleEventsChange = (item) =\u003e {\n    // Do something...\n  }\n  \n  const handleAlertCloseButtonClicked = (item) =\u003e {\n    // Do something...\n  }\n  \n  return (\n    \u003cScheduler\n      locale=\"en\"\n      events={events}\n      legacyStyle={false}\n      options={state?.options}\n      alertProps={state?.alertProps}\n      toolbarProps={state?.toolbarProps}\n      onEventsChange={handleEventsChange}\n      onCellClick={handleCellClick}\n      onTaskClick={handleEventClick}\n      onAlertCloseButtonClicked={handleAlertCloseButtonClicked}\n    /\u003e\n  )\n}\n\nReactDOM.render(\u003cApp /\u003e, document.querySelector('#yourComponentRootId'))\n\n```\n\n## Data structure\n\n| Name \t|  Type \t|   Required\t|  Details \t|  \n|------\t|---\t|---\t|---\t|\n|    id  \t|  `string` \t|  `true` \t|  unique id for every event \t|\n|    label  \t|  `string` \t|  `true` \t|   \t| \n|    color  \t|  `string` \t|  `true` \t|  If not set, the primary color of the theme will be applied \t| \n|    groupLabel  \t|  `string` \t|  `true` \t|   \t|\n|    startHour  \t|  `string` \t|  `true` \t|  Hour string format with `HH:mm aaa` \t|  \n|    endHour  \t|  `string` \t|  `true` \t|  Hour string format with `HH:mm aaa` \t| \n|    date  \t|  `string` \t|  `true` \t|  Date string, must be formatted with `yyyy-MM-dd` date format \t| \n\n\nFor more details about date formats, see [date-fns docs](https://date-fns.org/v2.24.0/docs/)\n\n\n## Props\n\n| Name \t|  Type \t|   Default\t|  Description \t|  Values \t|\n|------\t|---\t|---\t|---\t|---\t|\n|    locale  \t|  string \t|  `en` \t|  This prop is used to set the locale of the scheduler \t|  `ar`, `de`, `en`, `es`, `fr`, `ja`, `ko`, `zh` \t|\n|   events   \t|   object\t|   \t|   This prop sets event data\t|   \t|\n|    legacyStyle  \t|  boolean \t|  `false` \t|  This prop allows to use the old display style \t|  `false`, `true` \t|\n|    options  \t|  object \t|   \t|  This prop is used to set scheduler properties \t|   \t|\n|    alertProps  \t|  object \t|   \t|  This prop is used to set scheduler properties \t|    \t|\n|    toolbarProps  \t|  object \t|   \t|  This prop is used to set toolbar properties \t|   \t|\n|    onEventsChange  \t|  event \t|   \t|  This event is fired when the event change occurs \t|   \t|\n|    onCellClick  \t|  event \t|   \t|  This event is fired when a cell is clicked \t|   \t|\n|    onTaskClick  \t|  event \t|   \t|  This event is fired when a task is clicked \t|   \t|\n|    onAlertCloseButtonClicked  \t|  event \t|   \t|  This event is fired when the close button of the alert component \t|   \t|\n\n\n\n## Options\n\n| Name \t|  Type \t|   Default\t|  Description \t|  Values \t|\n|------\t|---\t|---\t|---\t|---\t|\n|    transitionMode  \t|  string \t|  `zoom` \t|  This option is used to define the type of scheduler transition \t|  `zoom`, `fade`, `slide` \t|\n|   startWeekOn   \t|   string\t|  `mon` \t|   This option is used to set the start of the calendar week to Monday or Sunday\t|  `mon`, `sun` \t|\n|    defaultMode  \t|  string \t|  `week` \t|  This option allows you to define the type of view to display \t|  `month`, `week`, `day`, `timeline` \t|\n|    minWidth  \t|  number \t|  `540` \t|  This option allows you to define the minimum width of the container \t|  `number` \t|\n|    maxWidth  \t|  number \t|  `540` \t|  This option allows you to define the maximum width of the container \t|  `number` \t|\n|    minHeight  \t|  number \t|  `540` \t|  This option allows you to define the minimum height of the container \t|  `number` \t|\n|    maxHeigh  \t|  number \t|  `540` \t|  This option allows you to define the maximum height of the container \t|  `number` \t|\n\n\n\n## alertProps\n\n| Name \t|  Type \t|   Default\t|  Description \t|  Values \t|\n|------\t|---\t|---\t|---\t|---\t|\n|    open  \t|  boolean \t|  `true` \t|  This option opens the notification Alert component \t|  `true`, `false` \t|\n|   color   \t|   string\t|  `info` \t|   Alert notification color\t|  `info`, `success`, `warning`, `error` \t|\n|    severity  \t|  string \t|  `info` \t|  Alert notification severity \t|  `info`, `success`, `warning`, `error` \t|\n|    message  \t|  string \t|  `🚀 Let's start with awesome react-mui-scheduler 🔥 🔥 🔥` \t|  Alert notification message to display \t|  `string` \t|\n|    showActionButton  \t|  boolean \t|  `true` \t|  This option displays or not the action button on the Alert \t|  `boolean` \t|\n|    showNotification  \t|  boolean \t|  `true` \t|  This option allows to display or not a notification when data change \t|  `boolean` \t|\n|    delay  \t|  number \t|  `1500` \t|  This option allows you to define the display delay in milliseconds of the Alert\t|  `number` \t|\n\n\n## toolbarProps\n\n| Name \t|  Type \t|   Default\t|  Description \t|  Values \t|\n|------\t|---\t|---\t|---\t|---\t|\n|    showSearchBar  \t|  boolean \t|  `true` \t|  Show or hide the search bar \t|  `true`, `false` \t|\n|    showSwitchModeButtons  \t|  boolean \t|  `true` \t|   Show or hide the view mode button group switcher\t|  `true`, `false` \t|\n|    showDatePicker  \t|  boolean \t|  `true` \t|  Show or hide the date picker buttons \t|  `true`, `false` \t|\n\n\n## Methods\n\n| Method \t|  Params \t|  Type \t|  Description \t|  \n|------\t|---\t|---\t|---\t|\n|  `handleCellClick(event: Event, row: object, day: object)`    \t|  `event: Event`, `row: object`, `day: object` \t|  Event \t|  Triggered when you click on a cell \t|\n|  `handleEventClick(event: Event, item: object)`    \t|  `event: Event`, `item: object` \t|  Event \t|  Triggered when you click on an event \t|\n|  `handleEventsChange(item: object)`    \t|  `item: object` \t|  Event \t|  Triggers when a data update occurs \t|\n|  `handleAlertCloseButtonClicked(item: object)`    \t|  `item: object` \t|  Event \t|  Triggers when clicking on the close button of the notification alert \t|\n\n\n\n## 😁 Authors\n\n- Muller Roufaou ([rouftom](http://github.com/rouftom))\n\n\n\n## 🤔 FAQ\n\n* __Where can I find more documentation?__\n\n  This library is a marriage of [@mui](http://mui.com/getting-started/usage/) and a React setup created with [React](https://fr.reactjs.org/). Either one would be a great place to start!\n\n\n## 🙇‍♂️ Extra\n\n    Do you like this library ? Buy me a coffee or support me with a star on Github\n\n\u003ca href=\"https://www.buymeacoffee.com/Lnp9rkM\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 40px !important;width: 180px !important;\" \u003e\u003c/a\u003e\n\n* Btc address: `bc1qettgagenn9nc8ks7ghntjfme96yvvkfhntk774`\n\n* Eth address: `0xB0413d8D0336E263e289A915c383e152155881E0`\n\n\n## 🔥 Some features to add in next releases\n\n- ✅ Week, day and timeline mode switch view\n\n- 👉 Option menu\n\n- 👉 Export events as PDF and CSV\n\n- ✅ Internationalization\n\n- 👉 Typescript support\n\n- ✅ Display style customization\n\n\n## License\n\n### react-mui-scheduler\n\nMIT License\n\nCopyright (c) 2022 rouftom\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frouftom%2Freact-mui-scheduler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frouftom%2Freact-mui-scheduler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frouftom%2Freact-mui-scheduler/lists"}