New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@blade47/react-scheduler

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@blade47/react-scheduler

React scheduler component based on Material-UI & Dayjs

latest
Source
npmnpm
Version
1.0.9
Version published
Maintainers
1
Created
Source

React Scheduler Component

A feature-rich, customizable calendar and scheduling component for React applications, forked from @aldabil/react-scheduler with additional features and improvements.

Notes

This fork was created to address specific requirements for a project. Not all functionalities have been tested yet.
For documentation, features, and additional usage examples, visit the original npm package page.

Overview

This enhanced React Scheduler component provides comprehensive event scheduling capabilities with multiple view options (day, week, month, agenda), drag-and-drop functionality, and extensive customization options. It is designed to handle both simple and complex scheduling needs seamlessly.

Main Enhancements Compared to @aldabil/react-scheduler

  • Replaced date-fns with dayjs.
  • Enhanced customDialog option for better dialog state management.
  • Added minDate and maxDate options for calendar range limitation.
  • Redesigned and refactored component internals for improved performance.
  • Introduced enableTodayButton option (automatically activates if "today" is out of the provided date range).
  • Added an enableAgenda option for toggling the agenda view.
  • Added selectedResource as optional prop for selecting the default resource view.
  • Open-sans / Manrope default font.

https://github.com/user-attachments/assets/0b6676f6-18a5-4142-8870-3f2cd3f50356

Installation

To install the package:

npm install @blade47/react-scheduler

Notice: This component uses mui / emotion / dayjs. If your project is not already using these libraries, this component may not be suitable.

Usage

Basic Example

import { Scheduler } from "@blade47/react-scheduler";

<Scheduler
    view="month"
    events={[
        {
            event_id: 1,
            title: "Event 1",
            start: new Date("2021/05/02 09:30"),
            end: new Date("2021/05/02 10:30"),
        },
        {
            event_id: 2,
            title: "Event 2",
            start: new Date("2021/05/04 10:00"),
            end: new Date("2021/05/04 11:00"),
        },
    ]}
/>;

Scheduler Props

All props are optional.

PropValueDefault
minDateDate. Minimum date of the calendar.null
maxDateDate. Maximum date of the calendar.null
enableTodayButtonboolean. Show/Hide today button.true
customDialogFunction(open: boolean, props: DialogProps): JSX.Element. Custom dialog component.null
enableAgendaboolean. Show/Hide agenda view.true
selectedResourcestring. Default resource view.null

Original Props

Here are the original props supported by the library.
Click here to see the full list

SchedulerRef

The SchedulerRef allows control over the internal state of the Scheduler component from outside its props. Here's a usage example:

import { Scheduler, SchedulerRef } from "@blade47/react-scheduler";

const SomeComponent = () => {
    const calendarRef = useRef<SchedulerRef>(null);

    return <Fragment>
        <div>
            <Button onClick={()=>{
                calendarRef.current.scheduler.handleState("day", "view");
            }}>
                Change View
            </Button>
            <Button onClick={()=>{
                calendarRef.current.scheduler.triggerDialog(true, {
                    start: new Date("2023-12-01T09:00:00"),
                    end: new Date("2023-12-01T10:00:00"),
                })
            }}>
                Add Event Tomorrow
            </Button>
        </div>

        <Scheduler ref={calendarRef} events={[]} />
    </Fragment>
};

You can utilize handleState for dynamic control:

calendarRef.current.scheduler.handleState(value, key);

Available Demos

Todos

  • Tests
  • Drag&Drop - partially
  • Resizable
  • Recurring events - partially
  • Localization
  • Hour format 12 | 24

Keywords

react

FAQs

Package last updated on 21 Apr 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts