ClearAll[mpbmdcg,ljr];
mpbmdcg[k_]:= Composition[MeshPrimitives[#,k]&, BoundaryMesh, DiscretizeGraphics, Graphics];
ljr = Composition[Line, Join[#, {#[[1]]}]&, Replace[#,Line[{a_,b_}]:>a, {0, Infinity}]&];
poly = First@mpbmdcg[2]@(Rectangle/@(-1+Normal[october2014[Values]]));
fastdesc= FullSimplify[ Reduce[
Region`RegionProperty[Rationalize/@poly, {x, y}, "FastDescription"][[1,2]],{x,y}]]
(*(0 <= x < 3 && -5 <= y <= -1)||(3 <= x <= 6 && -5 <= y <= 0)||(6 < x <= 7 && -4 <= y <= 0) *)
rectangles = Rectangle@@@(Transpose/@((fastdesc/. And|Or->List)/. Inequality[a_,__,b_]:>{a,b}));
lines = ljr @ mpbmdcg[1] @ rectangles
(* Line[{{6., 0.}, {3., 0.}, {3., -1.}, {0., -1.}, {0., -5.},
{3., -5.}, {6., -5.}, {6., 4.}, {7., -4.}, {7., 0.}, {6., 0.}}]*)
Original post:
Junho answers the specific question re the outline of the month grid.
Here I make a few minor changes (to remove dependence on the Calendar
package by using V9 date/time functions) in ragfield's code (available at LunchTime Playground)
which provides a full-fledged calendar heat map.
First few lines on sources:

dayindex = {Sunday -> 1, Monday -> 2, Tuesday -> 3, Wednesday -> 4,
Thursday -> 5, Friday -> 6, Saturday -> 7};
monthstart[month_, year_] := DayName[{year, month, 1}] /. dayindex
dayspermonth[month_, year_] := DayCount[{year,month,1},DatePlus[{year, month, 1}, {{1, "Month"}}]]
monthlayout[month_, year_] := Partition[Range[dayspermonth[month, year]], 7, 7,
{monthstart[month, year], 1}, ""]
Generate month grid:
startingweek[month_, year_] := Ceiling[(DayCount[{year, 1, 1}, {year, month, 1}] +
monthstart[1, year])/7.0]
monthgrid[month_, year_] := Module[{cd, cds, p1, p2, p3, p4, p5, p6, p7, p8, shift},
shift = startingweek[month, year]; cd = monthlayout[month, year];
cds = Position[cd, x_ /; x != ""]; cds[[All, 2]] = 7 - cds[[All, 2]];
cds[[All, 1]] = cds[[All, 1]] - 1 + shift;
p1 = {shift, cds[[1, 2]] + 1}; p2 = {shift, 0};
p3 = {Max[cds[[All, 1]]], 0}; p4 = Last[cds];
p5 = Last[cds] + {1, 0}; p6 = {p5[[1]], 7}; p7 = {shift + 1, 7};
p8 = p1 + {1, 0};
Graphics[{FaceForm[], EdgeForm[Gray], Rectangle[#] & /@ cds, Thick,
Line[{p1, p2, p3, p4, p5, p6, p7, p8, p1}]}]]
Labeled[Show[monthgrid[10, 2014]],
Style[DateString[{2014, 10}, {"MonthName", " ", "Year"}], "Section", Purple], Top]

Generate year grid:
yeargrid[year_, opts : OptionsPattern[Show]] := Show[Table[monthgrid[i, year], {i, 1, 12}], opts]
Column[Labeled[yeargrid[#, ImageSize -> 500], Style[#,"Subsection"], Top] & /@ {2012, 2013, 2014}]

Use with data:
year = 2013; stock = "AAPL";
bg = yeargrid[year];
price = FinancialData[stock, {{year, 1, 1}, {year, 12, 31}}];
DateListPlot[price, Filling -> Axis, Joined -> True,
PlotLabel -> stock <> " " <> ToString[year]]

Some preps:
(* color the data *)
colors = Blend[{Green, Red}, #] & /@ Rescale[price[[All, 2]]];
(* calculate xy postion for the each date *)
rectposition[{y_, m_, d_}] := Module[{lx, ly},
lx = Ceiling[(DayCount[{y, 1, 1}, {y, m, d}] + monthstart[1, y])/7.0];
ly = 7 - DayName[{y, m, d}] /. dayindex; {lx, ly}]
(* generate legend *)
q = DensityPlot[x, {x, 0, 1}, {y, 0, 0.1}, AspectRatio -> Automatic,
FrameTicks -> None, ColorFunction -> (Blend[{Green, Red}, #] &),
PlotRangePadding -> None];
l = Show[q, ImageSize -> 200, Frame -> True,
FrameTicks -> {{None, None}, {{{0, Min[price[[All, 2]]]},
{1, Max[price[[All, 2]]]}}, None}}];
(* generate label *)
lt = Graphics[{Text[Style[#[[1]], Medium, Black], {-1, 7 - #[[2]] + 0.5}]} & /@ dayindex];
... final steps:
cq = Table[{FaceForm[colors[[i]]],
Rectangle[rectposition[price[[i, 1]]]]}, {i, 1, Length[price]}];
sg = Graphics[{EdgeForm[], cq}];
Show[lt, sg, bg,
PlotLabel -> Style[stock <> " " <> ToString[year], "Section"],
Frame -> True, Frame -> True, FrameTicks -> None,
FrameStyle -> Directive[White], FrameLabel -> l, ImageSize -> 1000]

Line
(just feed the points toLine
). $\endgroup$ – rm -rf♦ Oct 1 '14 at 15:34{"spiel = {{186", " -89}", " {186", " -88}", " {185", " -89}", " \ {187", " -89}", " {186", " -90}", " {186", " "}
... Can you post your solution? But see my comment to Juhno below re expected format. $\endgroup$ – alancalvitti Oct 1 '14 at 17:03october2014[Values, {# - {1, 1}, #, # - {0, 1}, # - {1, 0}} &][ Apply[Join] /* Counts /* Select[OddQ] /* Keys /* sort /* Line /* Graphics]
$\endgroup$ – Rojo Oct 2 '14 at 1:27sort = #[[Last@FindShortestTour[#, DistanceFunction -> ManhattanDistance]]] &;
$\endgroup$ – Rojo Oct 2 '14 at 1:28