简体   繁体   中英

Select specific Calendar when using Java API to create calendar entry

I have successfully created calendar entries using the Java .jar files for Google Calendar API. They always go into the "Rifle" calendar even though I have the calendars shown below. I need to know how to specify the calendar that entry falls under. For example, where would I specify "Meetings" or "Shotgun"

I'm not seeing anything or any examples of how to specify a particular calendar.

Google日历的可能性

    public void create() {
        try {
            CalendarService myService = new CalendarService("My Service");
            myService.setUserCredentials("mycalendar", "mypassword");

            URL postUrl = new URL("http://www.google.com/calendar/feeds/myurl@junk.com/private/full");

            CalendarEventEntry myEntry = new CalendarEventEntry();
        //myEntry.setIcalUID("Rec Fire");

            DateTime startTime = DateTime.parseDateTime("2014-06-22T09:00:00");
            DateTime endTime = DateTime.parseDateTime("2014-06-22T13:00:00");

                When eventTimes = new When();
            eventTimes.setStartTime(startTime);
            eventTimes.setEndTime(endTime);
            myEntry.addTime(eventTimes);
            Where eventLocation = new Where();
            eventLocation.setLabel("R-4");
            eventLocation.setValueString("value string");
            eventLocation.setRel("REL");
            myEntry.addLocation(eventLocation);
            EventWho eventWho = new EventWho();
        eventWho.setAttendeeStatus("attendee status");
            eventWho.setAttendeeType("Meetings");
            eventWho.setValueString("who value string");
            eventWho.setEmail("myemailt@email.com");
            eventWho.setRel("who rel");
        myEntry.addParticipant(eventWho);
            myEntry.setTitle(new PlainTextConstruct("R-4 Rifles Only"));
            myEntry.setContent(new PlainTextConstruct("Paragraph HURST MULLINS"));


            CalendarEventEntry insertedEntry = myService.insert(postUrl,  myEntry);
        } catch (Exception e) {
            e.printStackTrace();
        }

I figured this out. First you have to get the IDs of your secondary calendars

    public void retrieve() {
        try {
            CalendarService myService = new CalendarService("QuanticoShootingclub");
            myService.setUserCredentials("calendar@quanticoshootingclub.com", "washington13");

            URL feedUrl = new URL("https://www.google.com/calendar/feeds/default/owncalendars/full");
            CalendarFeed resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);

            System.out.println("Your calendars:");
            System.out.println();

            for (int i = 0; i < resultFeed.getEntries().size(); i++) {
                CalendarEntry entry = resultFeed.getEntries().get(i);
                System.out.println("\t" + entry.getTitle().getPlainText());
                System.out.println("\t\t" + entry.getId());
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

You can also do this by goign to your Google Calendar on the web. Click the drop-down and then Calendar Settings > Calendar Address: (Calendar ID: @group.calendar.google.com)

Then, when you're creating the new calendar entry, you substitute this ID for the primary ID.

NOTE: From the original code

           URL postUrl = new URL("http://www.google.com/calendar/feeds/***<secondary calendar ID>***/private/full");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM