Skip to content
DayPilot

JavaScript Calendar and Scheduler Tutorials

This page lists tutorials that show how to create a scheduling web application for various fields, such as internal company use (timesheet, production, shift planning, shared resource reservation), services (doctor appointment scheduling, hotel room reservation), and project management.

Beginners can start with basic tutorials that explain the basic concepts like installation and initial configuration of the the components (e.g. HTML5 Scheduler). Experienced users can continue with more advanced projects that show how to use the Scheduler in a real-world scenario. There are also tutorials that demonstrate specific features of the scheduler and calendar components (dynamic loading, PDF export, infinite scrolling). If you are looking for a specific use case which is missing, you can drop us a note in the forum.

All calendar and scheduler tutorials include a downloadable project with source code. You can use the project source code to start your own implementation and save some time with the initial setup and configuration. The tutorial text explains the key areas of the code and shows different views and options using screenshots.

The projects use HTML5 and plain JavaScript interface for the frontend (UI). Most of the tutorial use PHP as the server-side technology for the backend (REST API), but there are also tutorials for other server-side technologies (ASP.NET Core, Spring Boot).

There is also an online configurator tool available that lets you customize selected properties of the components. It shows the changes immediately using a live preview. You can use it to create a quick proof-of-concept project - the configurator will generate a downloadable project that includes the dependencies and the selected component configuration.

In addition to vanilla JavaScript and TypeScript, DayPilot also supports popular JavaScript client-side frameworks, including Angular, React, and Vue.js.

React: Milestone Scheduler

React: Milestone Scheduler

How to display milestones in the React Scheduler component. You can use custom shapes, icons, colors and connect the milestones using links.
React Scheduler: Visually Connect Tasks using Links

React Scheduler: Visually Connect Tasks using Links

Links can be used to display relationships between tasks in the React Scheduler UI component. Learn about the most common use cases and configuration options.
JavaScript Scheduler: Keyboard Navigation

JavaScript Scheduler: Keyboard Navigation

How to enable keyboard navigation in the JavaScript Scheduler component. Use the keyboard to focus cells in the grid, select a time range and edit existing events.
JavaScript Scheduler: How to Export HTML to Image

JavaScript Scheduler: How to Export HTML to Image

How to configure the image export of the JavaScript Scheduler to include rich HTML content.
JavaScript Scheduler: Resource Utilization Chart for Rows

JavaScript Scheduler: Resource Utilization Chart for Rows

How to dynamically calculate the utilization percentage for each resource and display a chart with utilization details in the Scheduler row headers.
JavaScript Scheduler: Find Next Free Slot

JavaScript Scheduler: Find Next Free Slot

Add an icon to the JavaScript Scheduler row headers that will let users scroll to the next free slot in the row.
React Scheduler: External Drag and Drop

React Scheduler: External Drag and Drop

How to activate external items so they can be dragged to the React Scheduler component.
JavaScript Scheduler: How to Unschedule Events

JavaScript Scheduler: How to Unschedule Events

When removing events from the scheduler, it is possible to remove them completely or to move them to a queue of unscheduled tasks or a row with unassigned events (while keeping the scheduled time).
JavaScript Monthly Calendar: Max Events + Expand Button

JavaScript Monthly Calendar: Max Events + Expand Button

How to limit the number of concurrent events displayed by the monthly calendar and add an "expand" button to access the events.
React JSX Components in Scheduler Grid Cells

React JSX Components in Scheduler Grid Cells

How to render custom React JSX component in the Scheduler grid cells.
JavaScript Monthly Calendar: How to Disable Selected Days

JavaScript Monthly Calendar: How to Disable Selected Days

How to mark selected days as disabled and prevent adding, moving, and resizing events. You can use this technique to disable days in the past, weekends, holidays or other dates.
ASP.NET Core Timesheet (.NET 10, SQL Server, Entity Framework)

ASP.NET Core Timesheet (.NET 10, SQL Server, Entity Framework)

How to create a drag-and-drop timesheet application in ASP.NET Core (.NET 10) with SQL Server and Entity Framework.
JavaScript Scheduler: Expandable Event Groups

JavaScript Scheduler: Expandable Event Groups

How to group related events into a single event in the JavaScript Scheduler component and add expand [+] and collapse [-] icons that allow changing the event visibility.
JavaScript Scheduler: A Guide to Touch and Mobile Support

JavaScript Scheduler: A Guide to Touch and Mobile Support

Build a touch-friendly JavaScript Scheduler with DayPilot. Create, move and resize events, open an event menu, and edit dates and resources on phones, tablets and desktop browsers.
ASP.NET Core Shift Planning (Entity Framework, .NET 10)

ASP.NET Core Shift Planning (Entity Framework, .NET 10)

This tutorial explains how to create a visual ASP.NET Core application for scheduling shifts (multiple locations and employees). It uses a modern UI that lets you manage shifts using drag and drop.
Vue Calendar: Using Templates to Add Icons, Buttons, or Progress Bars to Events (Open-Source)

Vue Calendar: Using Templates to Add Icons, Buttons, or Progress Bars to Events (Open-Source)

Vue templates allow adding dynamic content to Vue Calendar events, including interactive elements and custom Vue components.
React Scheduler: Timeline Zoom

React Scheduler: Timeline Zoom

How to add a zoom feature to the React Scheduler timeline. You can change the zoom level (and timeline resolution) using a "range" control and "zoom in" and "zoom out" buttons.
JavaScript Scheduler: Events as Drag and Drop Target

JavaScript Scheduler: Events as Drag and Drop Target

How to configure Scheduler event boxes to accept items from an external list (drag and drop). Implemented using standard HTML5 drag and drop API.
React Scheduler: How to Enable Undo/Redo

React Scheduler: How to Enable Undo/Redo

The React Scheduler component can record all drag and drop actions and allow unlimited undo/redo. See how to add undo/redo buttons and display the full history.
JavaScript Scheduler: Swapping Events (Drag and Drop)

JavaScript Scheduler: Swapping Events (Drag and Drop)

How to implement event swapping using drag an drop in the JavaScript Scheduler component. Detect events at the target position and move the target event to the source position after drop. The Scheduler provides real-time feedback during dragging.