Convert Figma logo to code with AI

neuronetio logogantt-schedule-timeline-calendar

Gantt Gantt Gantt Timeline Schedule Calendar [ javascript gantt, js gantt, projects gantt, timeline, scheduler, gantt timeline, reservation timeline, react gantt, angular gantt, vue gantt, svelte gantt, booking manager ]

3,105
361
3,105
23

Top Related Projects

1,471

GPL version of Javascript Gantt Chart

jQuery Gantt editor

🍞📅A JavaScript calendar that has everything you need.

A datepicker for twitter bootstrap (@twbs)

Quick Overview

Gantt-Schedule-Timeline-Calendar (GSTC) is a powerful JavaScript library for creating interactive Gantt charts, schedules, and timelines. It offers a highly customizable and feature-rich solution for visualizing and managing time-based data in web applications.

Pros

  • Highly customizable with numerous configuration options
  • Supports various view modes (day, week, month, year)
  • Responsive design and touch-friendly for mobile devices
  • Extensive API for programmatic control and integration

Cons

  • Steep learning curve due to its complexity and extensive features
  • Limited documentation and examples for advanced use cases
  • Requires a commercial license for production use
  • Large file size may impact initial load times for web applications

Code Examples

  1. Basic initialization:
import GSTC from 'gantt-schedule-timeline-calendar';

const config = {
  licenseKey: 'YOUR_LICENSE_KEY',
  list: {
    columns: {
      data: [
        {
          id: 'id',
          header: 'ID',
          width: 50
        },
        {
          id: 'name',
          header: 'Name',
          width: 200
        }
      ]
    }
  },
  chart: {
    items: [
      {
        id: '1',
        name: 'Task 1',
        start: '2023-05-01',
        end: '2023-05-10'
      }
    ]
  }
};

const element = document.getElementById('gstc');
const gstc = GSTC.api.create(element, config);
  1. Adding custom actions:
const config = {
  // ... other config options
  actions: {
    'my-action': (element, action) => {
      console.log('Custom action triggered:', action);
    }
  }
};

// Trigger the custom action
gstc.api.triggerAction('my-action', { someData: 'example' });
  1. Updating items dynamically:
const newItems = [
  {
    id: '2',
    name: 'New Task',
    start: '2023-05-15',
    end: '2023-05-20'
  }
];

gstc.api.mergeState({
  [GSTC.api.ITEM_TYPE]: GSTC.api.merge(gstc.state.get()[GSTC.api.ITEM_TYPE], newItems)
});

Getting Started

  1. Install the package:

    npm install gantt-schedule-timeline-calendar
    
  2. Import and initialize GSTC in your project:

    import GSTC from 'gantt-schedule-timeline-calendar';
    import 'gantt-schedule-timeline-calendar/dist/style.css';
    
    const element = document.getElementById('gstc');
    const config = {
      licenseKey: 'YOUR_LICENSE_KEY',
      list: {
        columns: { /* ... */ }
      },
      chart: {
        items: [ /* ... */ ]
      }
    };
    
    const gstc = GSTC.api.create(element, config);
    
  3. Customize the chart as needed using the extensive API and configuration options provided by GSTC.

Competitor Comparisons

1,471

GPL version of Javascript Gantt Chart

Pros of DHTMLX/gantt

  • More mature and feature-rich, with a longer development history
  • Extensive documentation and examples available
  • Offers both open-source and commercial versions with additional features

Cons of DHTMLX/gantt

  • Less flexible and customizable compared to gantt-schedule-timeline-calendar
  • Steeper learning curve due to its comprehensive feature set
  • Commercial version required for some advanced features

Code Comparison

gantt-schedule-timeline-calendar:

import { gantt } from 'gantt-schedule-timeline-calendar';

const g = new gantt('#container', {
  list: { columns: ['id', 'text'] },
  chart: { time: { zoom: 20, period: 'day' } }
});

DHTMLX/gantt:

gantt.init("gantt_here");
gantt.parse({
  data: [
    { id: 1, text: "Task 1", start_date: "2023-05-01", duration: 3 },
    { id: 2, text: "Task 2", start_date: "2023-05-04", duration: 2 }
  ]
});

Both libraries offer easy initialization and data parsing, but DHTMLX/gantt has a more straightforward API for basic usage. gantt-schedule-timeline-calendar provides more granular control over chart configuration.

jQuery Gantt editor

Pros of jQueryGantt

  • Lightweight and easy to integrate with existing jQuery-based projects
  • Supports resource management and allocation
  • Includes built-in export functionality for PDF and PNG formats

Cons of jQueryGantt

  • Relies on jQuery, which may not be ideal for modern web applications
  • Less frequent updates and maintenance compared to gantt-schedule-timeline-calendar
  • Limited customization options for advanced use cases

Code Comparison

gantt-schedule-timeline-calendar:

import { gantt } from 'gantt-schedule-timeline-calendar';

const g = new gantt('#container', {
  items: [...],
  rows: [...],
  columns: [...]
});

jQueryGantt:

$("#gantt").gantt({
  source: tasks,
  scale: "weeks",
  minScale: "days",
  maxScale: "months"
});

The code comparison shows that gantt-schedule-timeline-calendar uses a more modern, modular approach with ES6 imports, while jQueryGantt relies on jQuery plugin syntax. gantt-schedule-timeline-calendar offers more granular control over items, rows, and columns, whereas jQueryGantt provides a simpler configuration with predefined options like scale and source.

🍞📅A JavaScript calendar that has everything you need.

Pros of tui.calendar

  • More comprehensive and feature-rich calendar solution
  • Better documentation and examples
  • Larger community and more frequent updates

Cons of tui.calendar

  • Steeper learning curve due to more complex API
  • Heavier in terms of file size and performance impact

Code Comparison

tui.calendar:

import Calendar from '@toast-ui/calendar';

const calendar = new Calendar('#calendar', {
  defaultView: 'week',
  template: {
    time: function(schedule) {
      return moment(schedule.start.getTime()).format('HH:mm');
    }
  }
});

gantt-schedule-timeline-calendar:

import { gantt } from 'gantt-schedule-timeline-calendar';

const g = new gantt('#gantt', {
  list: {
    columns: {
      data: [
        { id: 'id', header: 'ID', width: 50 },
        { id: 'name', header: 'Name', width: 200 }
      ]
    }
  }
});

Both libraries offer calendar functionality, but tui.calendar focuses more on traditional calendar views, while gantt-schedule-timeline-calendar specializes in Gantt charts and timeline views. tui.calendar provides more built-in features for general calendar use, while gantt-schedule-timeline-calendar offers more flexibility for project management and scheduling tasks.

A datepicker for twitter bootstrap (@twbs)

Pros of bootstrap-datepicker

  • Lightweight and focused on date picking functionality
  • Extensive browser compatibility, including older versions
  • Easy integration with Bootstrap for consistent styling

Cons of bootstrap-datepicker

  • Limited to date selection, lacking timeline or scheduling features
  • Less suitable for complex project management or scheduling tasks
  • Fewer customization options for advanced use cases

Code Comparison

bootstrap-datepicker:

$('#datepicker').datepicker({
    format: 'mm/dd/yyyy',
    startDate: '-3d'
});

gantt-schedule-timeline-calendar:

const gstc = GSTC({
  element: document.getElementById('gstc'),
  config: {
    list: { rows: rows },
    chart: { items: items }
  }
});

The code snippets demonstrate the simplicity of bootstrap-datepicker for basic date selection, while gantt-schedule-timeline-calendar offers more complex configuration for timeline and scheduling functionality.

bootstrap-datepicker is ideal for simple date input needs, while gantt-schedule-timeline-calendar is better suited for comprehensive project management and scheduling applications requiring visual timelines and advanced features.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

gantt-schedule-timeline-calendar

Gantt, schedule, timeline and calendar components all in one!

gantt-schedule-timeline-calendar

gantt-schedule-timeline-calendar is all-in-one component that you can use in different scenarios.

Keywords: [ gantt, javascript gantt, typescript gantt, project manager, js gantt, js scheduler, js timeline, javascript timeline, javascript schedule, js scheduler, javascript calendar ]




And always remember, to leave a star :star:


FEATURES

  • elastic - you can change almost everything from DOM tree to logic (without any compilation, without modifying original code - with config, state or plugin)
  • super fast! even with large dataset
  • multiple items in one row - suitable for various applications like booking, reservation, resource manager, multimedia editor etc.
  • tree like structures - collapsible / expandable groups
  • moveable / resizable items with ability to configure which items can move at the moment and how
  • secure html templates
  • snap to specified time when resizing / moving
  • templates & slots support to easily change html content of each component
  • background grid on which you can place your html content
  • selectable cells and items with a choice of what can be selected at the moment
  • gradual time zoom up to seconds
  • resizable list columns (in realtime)
  • sortable and searchable list columns
  • BEM based CSS rules (easy to change appearance)
  • you can easily add third party libraries
  • highly configurable
  • mobile ready
  • Daylight saving time (DST) support
  • plugins support
  • attractive visually
  • written in typescript
  • offline license key (after purchase)

You can use it in react, vue, angular, svelte or any other projects.

You can use it as schedule for reservation system. You can use it for organizing events. You can use it as gantt chart. You can use it as calendar for different purposes. You can even use it as a multimedia timeline editor!

gantt-schedule-timeline-calendar is very extensible and elastic. You can make your own plugins or modify configuration in couple of ways to achieve your goals. You can control almost everything. You can change html structure, stylize every html element and even override original components without any compilation stage!

EXAMPLES

Online examples

You can checkout examples folder too. To run examples locally, clone this repository and run npm run examples in the root folder.

git clone https://github.com/neuronetio/gantt-schedule-timeline-calendar.git
cd gantt-schedule-timeline-calendar
npm i
npm run examples

REACT, NEXTJS, ANGULAR, SVELTE AND VUE EXAMPLES

SCREENSHOTS

gantt-schedule-timeline-calendar item types
gantt-schedule-timeline-calendar item types
gantt-schedule-timeline-calendar item types
gantt-schedule-timeline-calendar select cells
gantt-schedule-timeline-calendar linked items
gantt-schedule-timeline-calendar select items
gantt-schedule-timeline-calendar linked-items 2


INSTALL

npm i gantt-schedule-timeline-calendar

or

<script src="https://cdn.jsdelivr.net/npm/gantt-schedule-timeline-calendar/dist/gstc.wasm.umd.min.js"></script>

DOCUMENTATION

Documentation can be found here

NEED HELP?

Let us know neuronet.io@gmail.com

LICENSE

NEURONET Free / Trial License Terms

You can generate free or trial license key here. If you need a full commercial license, please visit pricing page.