Venue not importing

This topic contains 21 replies, has 5 voices, and was last updated by  Jamie McCormack 4 years, 5 months ago.

Viewing 15 posts - 1 through 15 (of 22 total)
  • Author
    Posts
  • #11945

    When I syncrhonize my iCal, the venues import and place all the information in the name, example Gaines Park Community Center, 1501 N Australian Ave, West Palm Beach, FL, United States. It is not parsing it to the appropriate fields, Address, City, State/Province, Country.

    Here is what I get enter image description here

    Shouldn’t a proper sync put the Address, City, State, Zip, and Country into the correct fields so I don’t have to go back and do this individually. Please let me know, thanks

    Jamie Gant
    #11949

    Hi Jamie,

    The iCal specification doesn’t provide for venue details aside from venue name and lat/lng co-ordinates. I’m currently looking into supporting venue details for feeds which come from an Event Organiser site, but for general iCal feeds that data is either not there or not provided in a standard format.

    Venue details will unfortunately need to be entered initially.

    Stephen Harris
    #13336

    Hey there, Any updates on this? iCal finds the address for me here:

    ical image

    And yet this is what appears in the event;

    enter image description here

    Not terribly helpful given that there will be no lifeguard on duty.

    • This reply was modified 6 years, 3 months ago by  James Veitch.
    James Veitch
    #13342

    Hi James,

    I’m afraid I can’t see any of those images. I get “Access denied” when I try to view access the url. Could you allow public access or otherwise explain the problem in more detail?

    Stephen Harris
    #13343

    Hey there.
    it’s just a droplr link
    http://d.pr/i/1dGYN/4IUmS6Yl
    http://d.pr/i/psVy/19FLduk2

    James Veitch
    #13352

    Seems like the latitude-longitude co-ordinates haven’t been imported in this case. Can you give a link to the feed you’re using?

    Stephen Harris
    #13353

    Hey there. sure it’s

    webcal://p01-calendarws.icloud.com/ca/subscribe/1/_MX1_fp7oSi8ZHHTFdn9y6QP_7HtB2Wtch3Uv5n9IXwBBPkCru9jpw8tlqQWkP37fbvbKQOZFgR2JyyLqUsq3OvZfvGiv7_XRY42y6SJO_E/

    James Veitch
    #13354

    Thanks James,

    Unfortunately the feed doesn’t include the co-ordinates of the venue. (More accurately it does, but it includes it under an “X-TITLE” property, which is not part of the iCal specification. There is a GEO property – but the feed doesn’t make use of this.

    There are hooks in place that are triggered when an iCal feed is imported that potentially you could use to re-scan the feed to obtain this value – but this would amount to rescanning the feed twice. However in the next update I’ll introduce a filter for when an “unknown property” is
    encountered (eg. X-TITLE) which would allow you to include the data it contains if required.

    In the mean time, if the venues in the feed will be a small managable number, you can manually enter the details. You would only need to do this once for each venue.

    Stephen Harris
    #17621

    Hi,
    I’m running into the same issue where all the address imported from two different feeds is put into the title of the venue so there are no address, lat or lon being imported. Is there any progress on this issue? I will be importing from many different calendars (usually Google calendars) and it is not feasible to manually update each venue.
    Here is an example feed: https://www.google.com/calendar/ical/2v113sqaad63bp65qs6j98gc4k%40group.calendar.google.com/public/basic.ics

    Also, is the importer smart enough to re-use a venue, if the event has a similarly named venue with same address (or very close to the same address)?

    Lynne
    #17633

    Hi Lynne,

    Sadly the iCal specifications do not stipulate any structure for venue data, so the LOCATION attribute can provide any details relating to the venue in any/no format. As such its not possible to isolate the venue name and address components.

    If, hower, your feed(s) do follow a specific pattern for venue details it can be possible to do this. I’ll be imn touch later via email as I may have a short snippet which might help you.

    Stephen Harris
    #17672

    This is the snippet I referred to above:

    add_filter( 'eventorganiser_pre_ical_property_location', 'eoical_location_fix', 10,5 );
    function eoical_location_fix( $skip, $value, $modifiers, $parser, $property ) {
    
        if ( ! empty( $value ) ) {
            $parts      = explode( ',', $value );
            $venue_name = array_shift( $parts );
            $venue_name = trim( $value );
    
            if( ! isset( $parser->venues[$venue_name] ) ) {
                $parser->venues[$venue_name] = $venue_name;
            }
            $parser->current_event['event-venue'] = $venue_name;
        }
    
        return true;
    }
    

    Please see this post on where to put this code. While it doesn’t import the address details it does ‘correct’ the venue name assuming that the venue name/address (as it appears in the iCal feed) is a comma-seperated list with the venue name first. E.g. <venue-name>, <venue-address>.

    While that’s the most common format, I must stress that is by no-means mandated by the iCal specifications, so a feed may present the data very differently.

    Latitude/Longtitude are imported so long as they are provided in the iCal feed.

    Stephen Harris
    #17906

    Thanks Stephen,

    This was very helpful, especially since I’m new to word press. With your suggestion, my custom filter method to parses the location data into its subsequent address, city, postcode, etc parts but I found in order to have the fields saved, I had to modify the eo_fetch_feed function in ical-functions.php to save the additional meta data fields, similar to the existing code which is saving the latitude and longitude meta data for the venue.

    Here is the code I added to eo_fetch_feed function:

    foreach ($ical->venue_meta[$venue] as $key => $value) {
    $args[$key] = $value ;<br />
    }

    Let me know if there a better place to extend/modify the code.
    Thanks,
    Lynne

    Lynne
    #18078

    There’ll be a filter in the next (minor) version of iCal (e.g. 2.1.0):

    add_filter( 'eventorganiser_ical_import_venue', 'my_ical_set_venue_details', 10, 4 );
    function my_ical_set_venue_details( $venue, $event, $event_id, $ical ) {
    
        //Assuming venue is giving in iCal in the following form:
        // <name>,<address>,<city>,<state>
        $parts = explode( ',', $venue['name'] );
    
        $keys  = array( 'name', 'address', 'city', 'state' );
        $count = min( count( $keys ), count( $parts ) );
    
        $venue_details = array_combine( 
             array_slice($keys, 0, $count), 
             array_slice($parts, 0, $count)
        );
    
        $venue = array_merge( $venue, $venue_details );
    
        return $venue;
    }
    

    In the above $venue is an array which will contain the key name (with the name as given in iCal), and possibly latitude and longtitude if these are given by the feed. It’s this array which is used to create the venue.

    $event is the event parsed from iCal feed to which this venue is assigned. $event_id is the ID of that event. Lastly $ical is the parser object for context reference.

    Note: This will not update an existing venue.

    As mentioned above this will only work from Event Organiser iCal 2.1.0+ which at the time of writing has not yet been released.

    • This reply was modified 4 years, 5 months ago by  Stephen Harris. Reason: Fixed errors in $keys declaration
    Stephen Harris
    #18102

    Sounds great! Thank you!

    Lynne
    #24067

    Hi Stephen, I’m jumping in on this thread pretty late, but I just tried the script you posted above (in reply #18078) and I just can’t get it to work. The venue name gets pulled in fine, but none of the other values (address, city, postcode).
    I used the script exactly, and example from the iCal file I’m importing is:
    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:-//210.5.50.11//NONSGML kigkonsult.se iCalcreator 2.10//
    CALSCALE:GREGORIAN
    METHOD:PUBLISH
    X-WR-CALNAME:McAdams
    X-WR-CALDESC:Provider In Temporary Traffic Management Training
    BEGIN:VTIMEZONE
    TZID:Pacific/Auckland
    X-LIC-VENUE:Pacific/Auckland
    END:VTIMEZONE

    BEGIN:VEVENT
    DTSTART;TZID=Pacific/Auckland:20160920T110000
    DTEND;TZID=Pacific/Auckland:20160920T160000
    DTSTAMP:20160906T000456
    CREATED:20150729T232409
    LAST-MODIFIED:20160906T172800@mcadams.nz
    UID:03850006@210.5.50.11
    SUMMARY:Level 2/3 STMS NP Refresher (Tauranga)
    DESCRIPTION:This new qualification is similar to the Level 1 Traffic Controller. The workshop provides an introduction to CoPTTM and qualifies the attendee to:\n\n - Carry out inspections on Level 1 roads\n - Carry out inspections on Level 2 & 3 roads (only in the area of induction with local specific conditions)\n\nThis workshop is suited to persons carrying out inspection activities and require occasional access Level 2/3 roads. The workshop includes an induction to the local road network.\n\nWorkshop Fee: $295.00.\n

    <hr>

    \nOther information:\nAssessments are sat at the workshop and a pass is required to achieve the TC_I warrant. Assessments are open book and a copy of the CoPTTM Handbook (Section J) is provided.\n\nWorkshop fees include the NZTA registration fee, a copy of the Level 1 Handbook (Section J) along with course handout material, assessments and catering. A certificate is provided on completion of the workshop which can be used as proof of qualification (until the NZTA card arrives). Fees are exclusive of GST.
    URL:http://mcadams.nz
    LOCATION:Downer Training Room, 58 Taurikura Drive, Tauranga, 3171
    GEO:-37.742167;176.0995049
    CATEGORIES:L2/3 STMS NP Refresher
    END:VEVENT
    END:VCALENDAR

    Sorry for the novel. I’m not sure if there’s anything else in the iCal file that is stopping the Locations value from being parsed. I’ve tried excluding the GEO and X-APPLE lines and also tried removing spaces but I’m a bit stuck now.

    Any help would be much appreciated.

    Cheers
    Jamie

    Jamie McCormack
Viewing 15 posts - 1 through 15 (of 22 total)
To enable me to focus on Pro customers, only users who have a valid license for the Pro add-on may post new topics or replies in this forum. If you have a valid license, please log-in or register an account using the e-mail address you purchased the license with. If you don't you can purchase one here. Or there's always the WordPress repository forum.