Easiest way to extend/subclass Timeline type of column in a monday app?

I would like something like what is described here Possible to set up a running task (task with start, but no end date)? - and seeing that I cannot find existing monday.com functionality to implement that, I thought of trying to build a monday app.

So, essentially, I basically just want to extend/subclass the Timeline type of column, so that it can be made into a “running task”, e.g. something like this:

image

So, I’d rather “start” from Timeline as a “base class” somehow, then just extend or “subclass” it. But is that possible in monday apps?

For instance, I cannot see anything in Creating and updating apps which might give a hint on how I would “subclass” Timeline - or even if it is possible.

Then in Quickstart guide, I can see that there is possibility to choose, via the “Features” tab, between: “Board View”, “Account Settings View”, or “Dashboard Widget”. But which of these would an extended Timeline be? The Timeline View and Widget implies that it is a “widget” - but is this “widget” the same as a “Dashboard Widget”?

Finally, I can see that when I try to create an app, and choose “Dashboard Widgets” in “Add features to your app” and click “Let’s go”, I get “Start from a template”, and I get two templates “Quickstart - ReactJS” and “Start from Scratch” - but none of these resemble templates describing the original column types, especially Timeline.

So my questions are:

  • Is it possible to create a widget like Timeline at all as a monday app, that is a specification with start and end dates, that gets automatically rendered in a Gantt view?
  • If so - is it possible to do that easily, in the sense of starting from the original monday.com Timeline code, and then extending/subclassing it? Or would I have to start from scratch?

Any other hints on how I would proceed with a custom app like this?

Hello @sdbbs,

At the moment, it is not possible to modify the existing monday elements. That is, if you would like to create a datepicker with an extra checkbox, you can build an app which has a datepicker and then using the API, update the values on your board.
You may use the Datepicker component from monday and modify it to your needs (I haven’t tried doing that so I can’t tell if the component is flexible enough to allow for such modifications).

1 Like

Many thanks for the response, @kolaai :

Excellent, many thanks for this - it really helped me put things into perspective!

Thanks for this reference - helped me save hours of wading through the documentation.

I should have been more clear, maybe - it is not merely a Datepicker component I want to use; I’d like to define a new column type, which like Timeline:

  • Appears at first as a gray box under the column
  • Upon clicking the gray box, a Datepicker component is shown, which allows setting the start of the datetime range as a specific date, and the end of it as TODAY()
  • The “type” of this column type should be a “range of dates” as in Timeline - so that it gets rendered in Gantt view

I have noticed, that in Gantt view, one can choose More options (…) / Settings / Choose Timeline columns / and you can choose any of “Timeline”, “Completion Date” and “Date”. However, if you make a Formula column, and enter TODAY() there, you do get the todays date rendered as a string - but this Formula column does not get “picked up” as a target for Gantt view timeline rendering.

Therefore, first and foremost, I’d need to “define” this new column type to have a “type” of “range of dates”, or at least “date”, so Gantt view can pick it up for rendering it graphically as a timeline.

So, if anyone has any further advice on how to ensure the “type” of the new column in a monday app is something the Gantt view can render automatically, I’d love to hear it. Thanks!

Hello there @sdbbs,

I believe what you want to create can not be achieved using our Gantt chart.

You could create your own board view/item view/dashboard widget. In them you can show whatever URL you want (or a build in a .zip file). So you would manage what happens in it.

You could use the date picker to then use that information to create the view or even create some UI in your view so that the users can create all of this from there.

But again, this would not affect the timeline column in the monday boards.

As another workaround, you could use an integration feature that has an automation that takes into account a date column (for example) and triggers an action once a day (at 00:01 maybe). So when that happens, you can get a payload with information sent to an endpoint of your choice via a custom action and you could create the UI in your view taking into account that date, and updating your gantt chart on each payload you receive, checkin also the status column that shows if the task was done or not, so that if it is done, you indicate it is done on your view. You could also add a second recipe in your app that “listens” to changes in that status column so that you can show it as “done” at the moment it is done.

I hope that helps! Just a few ideas on how you can tackle this.

Cheers,
Matias

1 Like

Many thanks, @Matias.Monday :

Many thanks for this - very good to have it explicitly stated!

That - create a whole custom board view - is what I’d try to avoid; because then I suddenly end up with extra maintenance burden, which I imagine will not be trivial.

And that is why I’m a bit fixated on “extending” Timeline - if its start and end dates could be dynamic (e.g. set via formula TODAY(), or the equivalent by using some API to modify), then I’d just be able to reuse the monday.com GUI engine, without extra significant maintenance burden on me.

Thanks - much appreciated! I started toying with the “trigger action every day” (to basically update the end dates of related timelines), but when I tried to enter automation “Every day (every 1 day, at 0:00)” the only “verbs” I have available are “notify”, “create group”, “duplicate group”, “create item” - nothing related to “modify”

However, I was unaware that automation can be used in context of integration, and in context of custom actions - so maybe in that way, I’d be able to achieve what I want. But I’ll need to study your directions in more detail …

Well, this is the thing - I imagine a “running task” as one without an end date; that is, the end date is automatically “today”. Basically, this would be a lower-priority task in the backlog, to which a deadline cannot be reasonably assigned - but there would be still emphasis on it, because if you look at the Gantt around the time of “today”, you’d still be able to see it there. And then, once it is done, you might as well “convert” it to a regular task (i.e. add a regular Timeline column, with the original start, and end, dates) and delete the previous “extended Timeline” (“running task”) column. I’ve described a bit of this in Possible to set up a running task (task with start, but no end date)?

So, in that context, it would not make sense to “listen” for the moment when the task is “done”, because the moment of task being done, is merely setting up a normal Timeline column with the end date, and stopping the use of the “running task” description.

In any case, I hope I eventually find something that comes close to this kind of use context …

Hello again @sdbbs,

You could just update the timeline column once a day to make the end date of the column be “today” at the beginning of each day.

You would do this by creating your own app with an integration feature and in that feature add a custom action. That action could then lead to you using our API for updating that end date for the timeline column.

So each day, the value of the timeline column would change.

From what you explain, I think that could be a good workaround :slightly_smiling_face:

1 Like

Many thanks, @Matias.Monday :

Awesome, this sounds very reasonable - I will give it a try! (though I need to get through the quickstart app tutorial first, not sure how long it will take me to fix the network issues there)

1 Like

Sounds good!

I will try to see if I can get you some guidance from the team responsible for the monday tunnel in the other community topic!