Calendar Conditioning

Hello all the Gliders,

There’s a lot of questions here and I’m not sure where to start with, but I will do my best to give you an overview.
Thank you in advance for your help in solving this enigma :smiley:

So I’m making an app for buying Film Service Packages.

When somebody is choosing a package of services to buy in my app, then the app should make a schedule in calendar for this customer.

But each package contains some list of tasks that are connected to them.

For example:

Client bought Package A (I have table of all Packages and specs of these packages)
This Package contains 25 tasks (I have table of all Tasks which are assigned to the packages)
These all tasks needs to be scheduled and done during 5 working days AND they need to be sticked to the Talents which roles are connected to these tasks and their availability in their calendars (so each Talent has their own calendar for setting availability) (I already assigned roles and so specific users to all tasks.)

Then client is choosing “Day 1 of Project to start” and I want my app to automatically put all the tasks (25) on the calendar [since Day 1 to fulfill all the tasks based on the Talents Calendars availability through 5 working days ]. (I can do it by set column values action, or maybe there’s better way?)

for example:
Package A
Has Task 1 which takes 5 hours to make, and this task needs to be done max. up to 24h since <value of Date & Time of “Day 1 Project Start”>, but only IF Talent has free time slot in their own calendar. If Talent doesn’t have free time slot, then App is booking this Task for another available time slot of the Talent.

Then, I need to put all the other (24) tasks on the schedule the same way as Task 1.

But all the tasks has their colums for:
Time needed to make (e.g. 5 hours)
Order (which task needs to be done first and which last)
Priority
ID
price

but also needs to have some conditions,
e.g. “can’t be started if TASK 1 is not done + 3 hours passed after Task 1 was done”

But also Client needs to have all the access to the schedule and to have possibility of editing each Task date & time.

but if client will set FOR EXAMPLE
Task 1 for 27.02.2024, 13:00 (5 hours to deliver)
Task 2 (which needs Task 1 to be delivered to be started) for the same day and 15:00 - there is not enough time for TASK 1 to be done, so there should be warning that this is impossible and should suggest the fastest possible time slot. (Can be done in If-Then-Else Column, but I don’t know exactly how).

How to do all of these things?