Hey there 
So I managed to figure it out and there is an explanation + code below of everything 
Next step is to now try convert the DateTime ISO for business days and hours 
RT v. 4.4.0
desired outcome:
To contain custom fields (SLA) for different queues & calculate a DateTime a custom field (Due Date) per queue
prep:
- Create custom field , example
Name: SLA (hours) or SLA (days)
- Type: âselect one valueâ
- Val: Digits
- Default Values (you can enter the values one by one from the bottom of the page)
- Keep note of the Field ID ( inside the âAll Custom Fieldâ Page)
- Create another custom field , example
Name: SLA Due Date
- Type: âselect one valueâ
- Val: Digits
- Default Values (you can enter the values one by one from the bottom of the page)
- Keep note of the Field ID ( inside the âAll Custom Fieldâ Page)
- Attach the Custom Field to Queues
- Enter the Queue Config
- Custom Fields -> Tickets
- Select the Custom Tickets (SLA (Hours) & SLA Due Date)
- Click Submit
Create Script
- In the Top Menu Bar, Admin -> Scripts -> Create
- Enter Desc.
- Cond: On Create
- Action: User Defined
- Template: Black
Custom Condition: Leave Blank
Custom Action Prep code: return 1;
Custom action commit code:
# This gives you a RT::Date object (Thanks knation)
my $created_date = $self->TicketObj->CreatedObj;
# CustomField SLA Due Date
my $set_custom_field_value = RT::CustomField->new($RT::SystemUser);
# Creates ticket object (the one you're going to be using)
my $ticket = $self->TicketObj;
# Get Value of Custom Field using its ID - SLA (Hours) or SLA (Days)
my $SLA = $self->TicketObj->FirstCustomFieldValue(2);
# Load up the Custom Field using its ID - SLA-Date
$set_custom_field_value->Load(5);
# If you want to use days instead of hours ignone theses 2 lines
$SLA = $SLA+1;
$SLA = $SLA / 24;
# Adds hours / days to the RT::Date Object
$created_date->AddDays( $SLA );
# Assigns the newly edited RT::Date Object in ISO format into the SLA Due Date Custom Field
my ($ret, $msg) = $ticket->AddCustomFieldValue( Field=>$set_custom_field_value, Value=>$created_date->ISO,RecordTransaction=>0 );
# Logs if there is an error
RT::Logger->error( "Could not set date value: $msg" ) unless $ret;
# exit script
return 1;
- In the Top Menu Bar, Admin -> Scripts -> Create
- Choose Queue
- Scripts -> Select
- Find newly created Script in the section âNot applied scriptsâ
- Tick it
- Update button
When you create a new ticket youâll see 2 new custom fields
- SLA (Hours) / SLA (Days)
- SLA Due Date
Now when you create a ticket enter the details, choose the values of SLA and click create
Then youâll use the calculated SLA Due Date.
You can then repeat this process to have different values for different queues 
Credit to knation & GreenJimll for their time to explain to me the how RT scripting works 