Right now, comparing dates with gcal_date_time_compare_date() gives the exact opposite result of when comparing using g_date_time_compare(). As shown by this patch, this was a source of *many* bugs.
It is, as expected, heavily inspired by the ECalDataModel code, except it uses GDateTime, is timezone aware, and can handle all day events correctly.