Put the start date on the column shelf and convert it to continuous precise date to construct a basic Gantt chart in Tableau. Change the mark type to Ghantt and place the identifier on the row shelf. This should result in a small bar at the task's start date, with a row for each task (assuming the ids are unique per task).
Now you must specify the length of the bars by adding a field to the size shelf that shows the number of days for each activity. You can use datediff('day, contract start, contract end) to determine their durations in a computed field. If you put that on the size shelf, you should be good to go.
You can expand the tooltips with more information and use colour to indicate contract kind or something else. By right-clicking on the axis, you can add some reference lines. To deal with situations like null (unknown) end dates, maybe recurring jobs, you'll need to change the computed field...
If you only need a few milestone markers, you can easily add them by hand using reference lines or point annotations.
You may also use a dual axis chart to integrate milestones as shapes with your data.
This example demonstrates how to mix shapes and bars into a single chart. The details change slightly depending on how your data is arranged, but you should be able to adapt the method to your own data if you look at how the data for this workbook is organised, how the data connection links the tabs, and how the workbook presents the data. Just keep in mind that it's occasionally easier to change the way your data is organised to make the analysis go faster.
You should also examine whether you require both planned and actual dates.