{"nodes":[{"name":"On clicking 'execute'","type":"n8n-nodes-base.manualTrigger","position":[1140,780],"parameters":{},"typeVersion":1,"id":"baaa5348-09b2-4e78-b31e-4e24ade5d22b","notes":"This manualTrigger node performs automated tasks as part of the workflow."},{"name":"Note","type":"n8n-nodes-base.stickyNote","position":[1480,760],"parameters":{"width":560,"height":400,"content":"## 2. Advanced way: Using Expressions\nIn this `Set` node, we set dates using [Luxon expressions]({{ $env.WEBHOOK_URL }} for the following formats:\n\nNow - `{{$now}}`\nCurrent time with seconds - `{{$now.toLocaleString(DateTime.TIME_WITH_SECONDS)}}`\nToday - `{{$today}}`\nTomorrow - `{{$today.plus({days: 1})}}`\nOne hour ago - `{{$now.minus({hours: 1})}}`\nWeekday name - `{{$today.weekdayLong}}`\n\n"},"typeVersion":1,"id":"14b61adb-f252-4a81-8a03-3a19e2f657ae","notes":"This stickyNote node performs automated tasks as part of the workflow."},{"name":"Note3","type":"n8n-nodes-base.stickyNote","position":[660,780],"parameters":{"width":420,"height":100,"content":"### Click the `Execute Workflow` button and double click on the nodes to see the input and output items."},"typeVersion":1,"id":"02764d7a-551c-40e3-8b03-e86f39f9ae30","notes":"This stickyNote node performs automated tasks as part of the workflow."},{"name":"12 Hours from now","type":"n8n-nodes-base.dateTime","position":[1520,580],"parameters":{"value":"={{$now}}","action":"calculate","options":{},"duration":12,"timeUnit":"hours"},"typeVersion":1,"id":"dc12e090-0f10-4a98-9b75-bf42b3006722","notes":"This dateTime node performs automated tasks as part of the workflow."},{"name":"Note1","type":"n8n-nodes-base.stickyNote","position":[1480,400],"parameters":{"width":560,"height":340,"content":"## 1. Simple Way: Using the Date & Time node\nThere are two actions available within the `Date & Time` node:\n1. Calculating a date - adding/substracting minutes,hours, days, etc.\n2. Formatting a date\n\n"},"typeVersion":1,"id":"22cbd084-cb18-47b8-bb1c-4649a01471b0","notes":"This stickyNote node performs automated tasks as part of the workflow."},{"name":"Note4","type":"n8n-nodes-base.stickyNote","position":[1980,860],"parameters":{"width":480,"height":320,"content":"### 2.1 Working with an existing time string\nAs items pass between nodes, n8n saves dates as ISO strings. This means that in order to work with the data as a date again, we need to convert it back using `DateTime.fromISO('yyyy-mm-dd')`\n. Once doing that, we are able to apply date and time function again such as : `{{DateTime.fromISO($json[\"Now\"]).toFormat('yyyy LLL dd')}}`"},"typeVersion":1,"id":"641c1dfc-dfbb-4f78-b98d-1682d6c176fd","notes":"This stickyNote node performs automated tasks as part of the workflow."},{"name":"Set times","type":"n8n-nodes-base.set","position":[1520,1020],"parameters":{"values":{"string":[{"name":"Now","value":"={{$now}}"},{"name":"Current time with seconds","value":"={{$now.toLocaleString(DateTime.TIME_WITH_SECONDS)}}"},{"name":"Today","value":"={{$today}}"},{"name":"Tomorrow","value":"={{$today.plus({days: 1})}}"},{"name":"One hour from now","value":"={{$now.minus({hours: 1})}}"},{"name":"Weekday","value":"={{$today.weekdayLong}}"}]},"options":{}},"typeVersion":1,"id":"09b8bf7e-0e16-4352-9205-8d891cebf203","notes":"This set node performs automated tasks as part of the workflow."},{"name":"Edit times","type":"n8n-nodes-base.set","position":[2080,1020],"parameters":{"values":{"string":[{"name":"Current time","value":"={{DateTime.fromISO($json[\"Now\"])}}"},{"name":"Current time formatted","value":"={{DateTime.fromISO($json[\"Now\"]).toFormat('yyyy LLL dd')}}"}]},"options":{},"keepOnlySet":true},"typeVersion":1,"id":"111c9502-dc3e-4f1e-8baa-4a87814750f7","notes":"This set node performs automated tasks as part of the workflow."},{"name":"Format - MMMM DD YY","type":"n8n-nodes-base.dateTime","position":[1760,580],"parameters":{"value":"={{$now}}","options":{},"toFormat":"MMMM DD YYYY"},"typeVersion":1,"id":"92c77b7f-2c1c-4126-9cf9-b98f94d06ab1","notes":"This dateTime node performs automated tasks as part of the workflow."},{"id":"error-1c4b4e04","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"connections":{},"name":"Manualtrigger Workflow","settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"description":"Automated workflow: Manualtrigger Workflow. This workflow integrates 4 different services: dateTime, stickyNote, manualTrigger, set. It contains 9 nodes and follows best practices for error handling and security.","meta":{"instanceId":"workflow-aa6a34eb","versionId":"1.0.0","createdAt":"2025-09-29T07:07:48.719403","updatedAt":"2025-09-29T07:07:48.719423","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"notes":"Excellent quality workflow: Manualtrigger Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}