It is interesting to compare and spot the differences between the routine in this answer and the routine given below:
naturalSpline[pts_?MatrixQ] := Module[{dy, h, sl, tr},
h = Differences[pts[[All, 1]]]; dy = Differences[pts[[All, 2]]]/h;
tr = SparseArray[{Band[{2, 1}] -> Append[Rest[h], 1],
Band[{1, 1}] -> Join[{2}, ListCorrelate[{2, 2}, h], {2}],
Band[{1, 2}] -> Prepend[Most[h], 1]}];
sl = LinearSolve[tr, Join[{3 dy[[1]]},
3 Total[Partition[dy, 2, 1]
Reverse[Partition[h, 2, 1], 2], {2}],
{3 dy[[-1]]}]];
Interpolation[MapThread[{{#1[[1]]}, #1[[2]], #2} &, {pts, sl}],
InterpolationOrder -> 3, Method -> "Hermite"]]
Test on the OP's data:
data = {{0, 0}, {1, 0}, {2, 0}, {3, 1}, {4, 0}, {5, 0}, {6, 0}};
spl = naturalSpline[data];
{spl''[0], spl''[6]}
{0, 0}
Plot[spl[x], {x, 0, 6},
Epilog -> {Directive[AbsolutePointSize[4], ColorData[97, 4]], Point[data]}]
Verify $C^2$ continuity:
Plot[{spl[x], spl'[x], spl''[x]}, {x, 0, 6}, PlotRange -> All]