Android añadiendo un nuevo calendario

He comprobado por todas partes las formas de crear un nuevo calendario desde una aplicación de Android. La única forma en que lo he visto es usando la nueva API de calendario en la última versión de la API, PERO esto parece funcionar solo si usasCalendarContract.ACCOUNT_TYPE_LOCAL. No le permitirá crear un calendario adjunto a la cuenta de Google de los usuarios, sincronizado conGoogle Calendar. No aparece en la lista de calendarios en línea encalendario de Google.

values.put(CalendarContract.Calendars.ACCOUNT_TYPE, 
    CalendarContract.ACCOUNT_TYPE_LOCAL);

He intentado usar el tipo de cuenta de la cuenta, pero esto no funciona. Aunque no parece producir ningún error. El resultado vuelve bien.

values.put(CalendarContract.Calendars.ACCOUNT_TYPE, accountType);

Aquí está el código completo para agregar un nuevo calendario local usando elCalendar API ySYNCADAPTER (tipo de cuenta comentada). ¿Alguien sabe si lo que estoy tratando de hacer es posible?

AccountManager manager = AccountManager.get(context);
Account[] accounts = manager.getAccountsByType("com.google");

String accountName = "";
String accountType = "";

for (Account account : accounts) {
    accountName = account.name;
    accountType = account.type;
    break;
}

ContentResolver cr = context.getContentResolver();
ContentValues values = new ContentValues();

values.put(CalendarContract.Calendars.ACCOUNT_NAME, accountName);
//values.put(CalendarContract.Calendars.ACCOUNT_TYPE, accountType);
values.put(CalendarContract.Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL);
values.put(CalendarContract.Calendars.NAME, DaysSince.CAL_NAME);
values.put(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, DaysSince.CAL_NAME);
values.put(CalendarContract.Calendars.SYNC_EVENTS, 1);
values.put(CalendarContract.Calendars.VISIBLE, 1);
values.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_OWNER);
values.put(CalendarContract.Calendars.OWNER_ACCOUNT, accountName);
values.put(CalendarContract.Calendars.DIRTY, 1);
values.put(CalendarContract.Calendars.CALENDAR_TIME_ZONE, TimeZone.getDefault().getID());

Uri calUri = CalendarContract.Calendars.CONTENT_URI;

calUri = calUri.buildUpon()
        .appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
        .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, accountName)
        .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, accountType)
        .build();

Uri result = cr.insert(calUri, values);

Respuestas a la pregunta(1)

Su respuesta a la pregunta