# Date Picker (JavaScript Event Calendar) | DayPilot Pro for JavaScript Demo

> You can use the date picker component to attach a drop-down calendar to a custom element. This demo shows how to use it to change the date of the main calendar.

## Links

- Canonical HTML: /demo/calendar/datepicker.html
- Source HTML folder: /demo/calendar/
- Catalog root: /demo/
- Catalog: /demo/llms.txt

## Source

### Inline demo script 1

```javascript
const picker = new DayPilot.DatePicker({
            target: 'start',
            pattern: 'yyyy-MM-dd',
            todayText: "Today",
            onTimeRangeSelected: args => {
                dp.startDate = args.start;
                dp.update();
            }
        });

        const dp = new DayPilot.Calendar("dp", {
            startDate: DayPilot.Date.today(),
            onTimeRangeSelected: async args => {
                const modal = await DayPilot.Modal.prompt("New event name:", "Event");
                if (modal.canceled) return;
                dp.events.add({
                    start: args.start,
                    end: args.end,
                    id: DayPilot.guid(),
                    resource: args.resource,
                    text: "Event"
                });
                dp.clearSelection();
                dp.message("Created");
            }
        });
        dp.init();

        const app = {
            init() {
                this.addEventHandlers();
                this.loadEventData();
            },
            addEventHandlers() {
                document.getElementById("change").addEventListener("click", (ev) => {
                    ev.preventDefault();
                    picker.show();
                });
            },
            loadEventData() {
                const events = [
                    {
                        start: DayPilot.Date.today().addHours(12),
                        end: DayPilot.Date.today().addHours(15),
                        id: DayPilot.guid(),
                        text: "Event"
                    }
                ];
                dp.update({events});
            }
        };
        app.init();
```

