Unfortunately experiencing the same thing on our end:
MODx 096 (stable)
DittoCal 1.2
Ditto 2.0.2
Default month: December 1969

Calendar, but NO links
My "blog json output" sample renders the JSON object just fine, complete with my two sample entries:
{
"title":"blog json output",
"link":"http://www.mydomain.com/blog_json_output.html",
"description":"",
"language":"en",
"copyright":"Sitename Goes here",
"ttl":"120",
"entries":[
{
"title":"Another Calendar Item",
"link":"http://www.mydomain.com/secure/calendar/another_calendar_item.html",
"date":"1181024138",
"guid":"http://www.mydomain.com/secure/calendar/another_calendar_item.html",
"author":"John doe",
"description":"",
"introtext":"This is another Calendar Item to see what is up with the date and why no link is showing...",
},
{
"title":"First Calendar Item",
"link":"http://www.mydomain.com/secure/calendar/first_calendar_item.html",
"date":"1180940590",
"guid":"http://www.mydomain.com/secure/calendar/first_calendar_item.html",
"author":"John doe",
"description":"test desc",
"introtext":"test intro",
}
]
}
However, once parsed, it’s like it’s dropping the entries

No wonder I am not seeing any links on the Calendar, right?
Output of
$json->decode($source);
Notice how there are no entries?
stdClass Object ( [title] => blog json output [link] => http://www.mydomain.com/blog_json_output.html [description] => [language] => en [copyright] => Sitename Goes Here [ttl] => 120 [entries] => Array ( ) )
When cal_month and cal_year are NOT present, this is the code that is to determine the default date, based on the most recent entry:
} else {
$timestamp = getDate($postData->entries[0]->date);
$filterMonth = $timestamp["mon"];
$filterYear = $timestamp["year"];
}
however, this is the output I get:
Array
(
[seconds] => 0
[minutes] => 0
[hours] => 16
[mday] => 31
[wday] => 3
[mon] => 12
[year] => 1969
[yday] => 364
[weekday] => Wednesday
[month] => December
[0] => 0
)
What gives w/ the 1969? probably a result of missing entries in the parsed JSON
Update:
It appears that the entries show up when I hit my "blog json output" test link directly from my browser, but when retrieving via CURL, I don’t get the entries!
This is the result from the CURL (default usage is w/ file_get_contents), but disabled on this host:
{
"title":"blog json output",
"link":"http://www.mydomain.com/blog_json_output.html",
"description":"",
"language":"en",
"copyright":"My Site Name",
"ttl":"120",
"entries":[
]
}
This appears to be the source behind missing links and the 1969 issue...
Finally! How could I be so blind

The Calendar section is protected behind Web Security. Since the CURL call doesn’t pass the authentication, it never returns the entries. I’ll have to see if Ditto offers any options...
In summary, does anyone know if DittoCal can be used in coordination with Web User Security??
I am
trying to pass
&hidePrivate=`0`
in my Ditto snippet call, but am not having any luck...