# New Feature: Perspective Equipment Schedule

**URL:** <https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473>\
**Category:** Ignition Early Access\
**Created:** [October 28, 2021, 5:38pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473 "2021-10-28T17:38:49Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ayu](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ayu/32/16635_2.png) [@ayu](https://forum.inductiveautomation.com/u/ayu)\
**Post date:** [October 28, 2021, 5:38pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/1 "2021-10-28T17:38:50Z")

</div>

Hello everyone, I’m happy to announce that the new Perspective Equipment Schedule will now be available in the current nightly builds.

The Perspective Equipment Schedule is a component whose primary purpose is to convey equipment scheduling information in a concise and easily digestible format. Equipment scheduling includes the familiar Vision counterparts such as - equipment status, production schedules, production status, and scheduled and unexpected downtime. The Equipment Schedule like our many time related components are time zone, locale and DST aware.

 ![base](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/6/e60fccaf45dea4972051ea626ab9f049ac55f31d.png)

The Perspective Equipment Schedule has been constructed in a way to make migration easier from and be familiar to Vision but also allow the powerful styling tools of Perspective. All the familiar elements such as break events and downtime events in Vision will be available in the new Perspective Equipment Schedule.

 ![prop1](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/7/a7b33bc492759d37be181bbb5d4a3d53111ac209.png) ![prop2](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/2/f24dcd5ebf723118c4e9123fe98a33425b7fbc65.png)

The Perspective Equipment Schedule will now display in a grid display allowing for a scrollable view. In addition, we have added the new feature of zooming into the Equipment Schedule to take advantage of this new grid display. This will allow users to manually set a zoom level as well as setting a default zoom level when the schedule loads.

![zooming](https://us1.discourse-cdn.com/inductiveautomation/original/3X/d/2/d2dc08946cad5a6a619254d24aa1d9ff3e8df4f7.gif)

The Perspective Equipment Schedule now displays a specific UI to help users distinguish if a set of events are overlapping. A dropdown menu is provided so users can view each event separately within that range.

![overlapping](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/2/522abedbbb032370f66c9a606ccb7436f053a3d0.gif)

With the Perspective Equipment Schedule we have kept the familiar UI interactions with the Vision counterpart such as moving and resizing events but have also added a few new additions such as adding events and deleting events. There is also the functionality of grid snapping to allow for more precise movement of events within the grid. This can be achieved by holding down the Alt key (or equivalent) and performing the event action. All these events can be enabled and disabled with their respective toggle props.

Add:  
 ![add](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/e/7ee7a8e2471ca4d36112b53bfe4751cbe65c4723.gif)

Move:  
 ![move](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/0/3073a7da7cc672403011b4880aa7733ffdacd7ac.gif)

Resize:  
 ![resize](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/c/ac39974fac0830846c76befeb8b4a753639d8de9.gif)

Delete:  
 ![delete](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/d/5deb1df5e7cca64783f238f4e8e95de59ad3f0bf.gif)

As a note, these events do not update the property tree on their own. It is up to the user to implement the desired functionality when the events are fired. The component events that are fired from the appropriate UI interactions are as follows - _onAddEvent_, _onMoveEvent_, _onResizeEvent_, _onDeleteEvent_. The following code snippets have been provided as a general starting point:

onAddEvent:

```auto
	from random import random, randint
	
	format = "yyyy-MM-dd HH:mm:ss z"
	locale = "en-us"
	scheduled = self.props.scheduledEvents
	r = random() * 255
	g = random() * 255
	b = random() * 255
	color = "rgb(" + str(r) + "," + str(g) + "," + str(b) + ")"
	percentDone = randint(0, 100)
	leadTime = randint(300, 6000)
	
	item = {
		"endDate": system.date.parse(event.end, format, locale),
		"itemId": event.itemId,
		"startDate": system.date.parse(event.start, format, locale),
		"eventId": "event_" + str(randint(1000, 10000)),
		"backgroundColor": color,
		"percentDone": percentDone,
		"leadTime": leadTime
	}
	scheduled.append(item)

```

onMoveEvent/onResizeEvent:

```auto
	format = "yyyy-MM-dd HH:mm:ss z"
	locale = "en-us"
	scheduled = self.props.scheduledEvents
	for count, toFind in enumerate(scheduled):
		if toFind.eventId == event.eventId and event.itemId == toFind.itemId:
			toFind.startDate = system.date.parse(event.start, format, locale)
			toFind.endDate = system.date.parse(event.end, format, locale)

```

onDeleteEvent:

```auto
scheduled = self.props.scheduledEvents
	format = "yyyy-MM-dd HH:mm:ss z"
	locale = "en-us"
	for count, toFind in enumerate(scheduled):
		if toFind.eventId == event.eventId and toFind.itemId == event.itemId:
			del scheduled[count]
			break

```

Finally, the Perspective Equipment Schedule allows for fine-tuning of customization through the provided style properties as well as providing numerous entry points for theming.

Dark Theme:

 ![dark_theme](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/3/53f42d34d34b5679507633849d661a5e3188bc6f.png)

Various Styling:

 ![various](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/a/7a22abee2f4ee62debf3cdacc89bd7d8d8921958.png)

That wraps up the preview for the Perspective Equipment Schedule. Feel free to give this component a go and post down any feedback down below. Thank you!

---

<div class="post-metadata">

**Author:** ![mperkins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mperkins/32/71722_2.png) [@mperkins](https://forum.inductiveautomation.com/u/mperkins)\
**Post date:** [October 29, 2021, 3:15pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/2 "2021-10-29T15:15:59Z")

</div>



---

<div class="post-metadata">

**Author:** ![Adriaan.leRoux](https://avatars.discourse-cdn.com/v4/letter/a/bbce88/32.png) [@Adriaan.leRoux](https://forum.inductiveautomation.com/u/Adriaan.leRoux)\
**Post date:** [October 30, 2021, 11:34am UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/3 "2021-10-30T11:34:27Z")

</div>

Very excited to see this! I am assuming the answer is yes, but can you do a “normal” gannt chart with this? Oh and state diagrams?

---

<div class="post-metadata">

**Author:** ![ayu](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ayu/32/16635_2.png) [@ayu](https://forum.inductiveautomation.com/u/ayu)\
**Post date:** [November 1, 2021, 6:41pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/4 "2021-11-01T18:41:11Z")

</div>

Hi @Adriaan.leRoux,

Yes you should be to mock a normal gannt chart with this component. As for state diagrams, do you have an example in mind?

---

<div class="post-metadata">

**Author:** ![Adriaan.leRoux](https://avatars.discourse-cdn.com/v4/letter/a/bbce88/32.png) [@Adriaan.leRoux](https://forum.inductiveautomation.com/u/Adriaan.leRoux)\
**Post date:** [November 1, 2021, 7:14pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/5 "2021-11-01T19:14:58Z")

</div>

Sorry I think state diagram is the wrong word. I mean a ribbon chart like this: [Ignition Exchange | Inductive Automation](https://www.inductiveautomation.com/exchange/1514/overview)

---

<div class="post-metadata">

**Author:** ![ayu](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ayu/32/16635_2.png) [@ayu](https://forum.inductiveautomation.com/u/ayu)\
**Post date:** [November 1, 2021, 8:24pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/6 "2021-11-01T20:24:02Z")

</div>

Sure, that looks doable. However, it would require the data to be formatted correctly.

---

<div class="post-metadata">

**Author:** ![allan](https://avatars.discourse-cdn.com/v4/letter/a/ccd318/32.png) [@allan](https://forum.inductiveautomation.com/u/allan)\
**Post date:** [November 27, 2021, 6:44am UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/7 "2021-11-27T06:44:42Z")

</div>

Hi I got the latest perspective ignition license version and can’t find the perspective equipment schedule component. When I was using the demo version it was able in vision components so I am trying to use the component on Perspective. Any suggestions?  
Thank you

---

<div class="post-metadata">

**Author:** ![jespinmartin1](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jespinmartin1/32/57175_2.png) [@jespinmartin1](https://forum.inductiveautomation.com/u/jespinmartin1)\
**Post date:** [November 28, 2021, 3:28am UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/8 "2021-11-28T03:28:14Z")

</div>

I think is only available in latest nighty build

---

<div class="post-metadata">

**Author:** ![allan](https://avatars.discourse-cdn.com/v4/letter/a/ccd318/32.png) [@allan](https://forum.inductiveautomation.com/u/allan)\
**Post date:** [November 28, 2021, 7:30pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/9 "2021-11-28T19:30:28Z")

</div>

Hi Jonathan  
Thank you for your email, that’s what I was reading that it is available for the nighty build and my question is can I download that version even if I bought just the basic perspective license ? Can I still run my projects or there is any limitation, sorry for to many questions but I am new using ignition perspective and want to make sure

Best regards

Allan Zerecero

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 28, 2021, 7:31pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/10 "2021-11-28T19:31:59Z")

</div>

Licenses work with nightlies just like releases.

---

<div class="post-metadata">

**Author:** ![allan](https://avatars.discourse-cdn.com/v4/letter/a/ccd318/32.png) [@allan](https://forum.inductiveautomation.com/u/allan)\
**Post date:** [November 29, 2021, 3:08am UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/11 "2021-11-29T03:08:01Z")

</div>

Thank you !!

---

<div class="post-metadata">

**Author:** ![allan](https://avatars.discourse-cdn.com/v4/letter/a/ccd318/32.png) [@allan](https://forum.inductiveautomation.com/u/allan)\
**Post date:** [November 29, 2021, 3:08am UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/12 "2021-11-29T03:08:44Z")

</div>

Thank you Phil !!!

---

<div class="post-metadata">

**Author:** ![tyler.robertson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tyler.robertson/32/18299_2.png) [@tyler.robertson](https://forum.inductiveautomation.com/u/tyler.robertson)\
**Post date:** [December 24, 2021, 4:28pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/13 "2021-12-24T16:28:49Z")

</div>

Shows me for not getting on the nightly builds earlier - I love this component, I only wish there was a 15 minute zoom level ☹ - We live our life in 5-10 minute programs, and 15 minute breaks - the minute view however is so granular. I’ll make it work!

---

<div class="post-metadata">

**Author:** ![ayu](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ayu/32/16635_2.png) [@ayu](https://forum.inductiveautomation.com/u/ayu)\
**Post date:** [December 29, 2021, 9:40pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/14 "2021-12-29T21:40:24Z")

</div>

Hi @tyler.robertson,

I have filed a request ticket to have the 15-minute zoom level added to the Equipment Schedule. I will do my best to keep you updated on the status of the feature. Thanks!

---

<div class="post-metadata">

**Author:** ![tyler.robertson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tyler.robertson/32/18299_2.png) [@tyler.robertson](https://forum.inductiveautomation.com/u/tyler.robertson)\
**Post date:** [January 3, 2022, 12:57pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/15 "2022-01-03T12:57:26Z")

</div>

Fantastic thank you!

---

<div class="post-metadata">

**Author:** ![jkirchman](https://avatars.discourse-cdn.com/v4/letter/j/278dde/32.png) [@jkirchman](https://forum.inductiveautomation.com/u/jkirchman)\
**Post date:** [January 25, 2022, 7:55pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/16 "2022-01-25T19:55:16Z")

</div>

This looks great thank you!

One question: is there a way to show each individual Card stacked on top of each other as opposed to showing the “Overlapping Card”?

---

<div class="post-metadata">

**Author:** ![ayu](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ayu/32/16635_2.png) [@ayu](https://forum.inductiveautomation.com/u/ayu)\
**Post date:** [January 25, 2022, 9:21pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/17 "2022-01-25T21:21:51Z")

</div>

Hi @jkirchman,

Currently there is no way to show individual events stacked on top of each other. I can file a feature request for this and keep you updated on it’s status. Thank you.

---

<div class="post-metadata">

**Author:** ![jkirchman](https://avatars.discourse-cdn.com/v4/letter/j/278dde/32.png) [@jkirchman](https://forum.inductiveautomation.com/u/jkirchman)\
**Post date:** [January 26, 2022, 4:29pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/18 "2022-01-26T16:29:20Z")

</div>

That would be great thanks

---

<div class="post-metadata">

**Author:** ![nader.chinichian](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nader.chinichian/32/9261_2.png) [@nader.chinichian](https://forum.inductiveautomation.com/u/nader.chinichian)\
**Post date:** [February 7, 2022, 12:53pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/19 "2022-02-07T12:53:54Z")

</div>

Is it possible to add an item click event so we can get which item(row) the user clicks on?  
I really need somehow to interact with this component and user can delete the select machine from the scheduler. I need items id return from an event like a table.  
One easy way is providing an embedded view option for this component-like table so the user can implement its logic in that embedded view and show more information for each row.

---

<div class="post-metadata">

**Author:** ![ayu](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ayu/32/16635_2.png) [@ayu](https://forum.inductiveautomation.com/u/ayu)\
**Post date:** [February 7, 2022, 4:50pm UTC](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473/20 "2022-02-07T16:50:07Z")

</div>

Hi @nader.chinichian,

Yes that would be possible. Let me file a feature request ticket, and I’ll keep you up to date with its status.

[Next page](https://forum.inductiveautomation.com/t/new-feature-perspective-equipment-schedule/52473.md?page=2)
