Yodel Export Steps
Step 1: Log into account and navigate to Plug-in Manager.
Step 2: Select Create New plugin
Step 3: Select your preferred export option - in this case, iCal or API. Your next two steps include setting the Event Rules and your Data Limit. See this article for further information on setting the Event Rules.
Step 4: Copy the Plug-In Url
Query Parameters
You can customize the data returned by your Plugin URL by appending optional query parameters.
| Parameter | Description | Accepted Values | Default |
|---|---|---|---|
start_date
|
Override the starting date for the event search window. Only events on or after this date will be returned. |
ISO 8601 string (e.g. 2025-06-01T00:00:00Z)
or Unix timestamp in seconds (e.g.
1748736000) or milliseconds (e.g.
1748736000000)
|
Today's date |
modified_since
|
Return only events whose last-modified date falls within the last N days. Useful for incremental syncs (pull only what changed). | Integer 1–365 (days) | Not applied (all events) |
days_ahead
|
Override the widget's configured Data Limit, setting how many days into the future the search window extends. | Integer 1–3650 (days) | The widget's Data Limit setting |
featured_only
|
Return only featured events — events featured via an active boost campaign or the plugin's static featured-event configuration. | true |
false (all events) |
boosted_only
|
Return only events with an active paid boost campaign. | true |
false (all events) |
sponsored_only
|
Return only sponsored events (events where
is_sponsored is true).
|
true |
false (all events) |
Examples:
Using an ISO 8601 date:
https://<your-plugin-url>?start_date=2025-06-01T00:00:00Z
Using a Unix timestamp (seconds):
https://<your-plugin-url>?start_date=1748736000
Using a Unix timestamp (milliseconds):
https://<your-plugin-url>?start_date=1748736000000
Filter to events modified in the last week:
https://<your-plugin-url>?modified_since=7
Show only the next 30 days of events (overriding the Data Limit):
https://<your-plugin-url>?days_ahead=30
Return only featured events:
https://<your-plugin-url>?featured_only=true
Combine filters — featured events modified in the last 14 days:
https://<your-plugin-url>?featured_only=true&modified_since=14
Note: If
start_dateis not provided, the export defaults to today's date. If an invalid value is provided, the API will return a400error with a descriptive message. Thestart_datemay not be more than 30 days in the past — requests exceeding this limit will also receive a400error. Thestart_dateparameter works with all three export formats: iCAL, JSON API, and RSS.
Step 5:
a. Yodel iCAL export
Paste the Plugin URL into external calendar tool. The event information provided on iCAL response will update each time the iCAL is called. External calendar tool will need to be formatted to call iCAL link at a scheduled interval.
iCAL export follows iCalendar (RFC 5545) specifications [https://icalendar.org/RFC-Specifications/iCalendar-RFC-5545/]
Yodel iCAL response sample (data structure)-
UID:66d9c9c595e04aab923_{{occurrence id if recurring}}
SUMMARY;LANGUAGE=en-us:{{Event Title}}
DTSTAMP:20241011T182600Z
DTSTART:20241012T160000Z
DTEND:20241012T210000Z
LOCATION:## Home St, Athens, OH ######, USA
CONTACT:{{organizer name}}
CATEGORIES:Clubs, Hobbies, Education, games / gaming, Tabletop RPG
DESCRIPTION:Organizer: {{organizer_name}}\n\n<p>{{event description}} IMAGE;VALUE=URI;DISPLAY=BADGE;FMTTYPE=image/png:https://my.yodel.today/{{image_url}}
URL:https://{{sample_backlink_url}}
| Property | Description | Values |
| X-DUPLICATE-ID | Identifier for grouping duplicate events | String or absent |
| X-RECURRENCE | Human-readable recurrence description | String (e.g. "Every Tuesday") or absent |
| X-ENDDATE-MISSING | End date was not provided by source | TRUE (only present when true) |
| X-ALL-DAY | Event is an all-day event | TRUE (only present when true) |
| X-FEATURED | Event is featured via a boost campaign or static plugin setting | TRUE or FALSE |
| X-PAID-BOOST | Event has an active paid boost campaign | TRUE or FALSE |
| X-BOOST-{n}-CREATOR-NAME | Name of the user who created boost campaign n | String |
| X-BOOST-{n}-CREATOR-USER-ID | User ID of boost campaign n creator | String |
| X-BOOST-{n}-CREATOR-GROUP-ID | Group/org ID of boost campaign n creator | String |
| X-BOOST-{n}-START-DATE | Start date of boost campaign n (ISO 8601 UTC) | String |
| X-BOOST-{n}-END-DATE | End date of boost campaign n (ISO 8601 UTC) | String |
| X-BOOST-{n}-STATUS | Status of boost campaign n | "active" or "scheduled" |
| X-CONTACT-ID | Numeric group ID of the event organizer | Number |
| X-IMAGE-ALT-TEXT | accessibility description for the event image | String |
| X-SPONSOR-NAME | Name of the event sponsor | String (only present when sponsored) |
{n} is a zero-based index. An event can have multiple boost campaigns numbered 0, 1, 2, etc. The X-BOOST-* properties are only present when the event has one or more boost campaigns.
| Parameter | Description | Type | Sample Value |
| "id" (Event ID) | Filter on event ID. For recurring event occurrences, the id includes a _YYYYMMDD date suffix identifying the specific occurrence (e.g. 66a1deaf7f70a160a6df1234_20260605). |
String | 66a1deaf7f70a160a6df#### |
| "subject" (Event Title) | Event title given by event creator | String | The Festival on Main |
| "description" (Event description) | Event description from source | String | Fun event for the whole family |
| "Location.full" | Street, city, St, Zip | String | ### W Main St, Delaware, OH #####, USA |
| "Location.city" | City | string | Delaware |
| "Location.state" | State | string | OH |
| "Location.zip" | Zip code | string | 45628 |
| "Location.geolocation" | Location | object |
{"type": "Point", "coordinates": [ -11.1111, 22.2222]} |
| "location.alt_location_name" | Human-readable venue or location name, when available. Included only if on the event. Does not show unless a value is in this field. (This was done to support backwards compatibility) | String | "Granville Center for the Arts" |
| "rrule" | Recurring rule | string | RRULE:FREQ=WEEKLY;BYDAY=TU |
| "start" (Start date and time from source) | Starting date/time (UTC) ISO 8601 format | string | 2024-08-19T21:30:00.000Z |
| "end" (End date and time from the source) | Ending date/time (UTC) ISO 8601 format | string | 2025-05-12T22:00:00.000Z |
| "timezone" | IANA timezone of the event's location | string | "America/Chicago" |
| "media_url" | Image, gif, or media URL (Processed by Yodel) | string | https://my.yodel.today/sample_url |
| "raw_media_url" | Image, gif, or media URL (unprocessed image from source) | string | https://my.yodel.today/sample_url |
| "media_alt_text" | accessibility description for the event image | String or null | "Jazz Night on Jun 5, 2026 in Dallas, TX. Featured themes include live music and summer." |
| "all_day" (Event flagged as only needing to show date) | All day event? (true/false) | Boolean | false |
| "url" (Backlink to event source or Yodel if more than 1 source) | URL of source website | string | https://www,sample_url |
| "categories" | List of categories | array | [ { "name": "Arts", "id": 23 } ] |
| Categories.name | See details below | string | Arts |
| Categories.id | Category identifier | numeric | 23 |
| "tags" | List of tag words | array | [ { "name": "Family", "id": "6181ef60caf474fba6abbb4c" } ] |
| Tags.name | Title of tag | string | Family |
| Tags.id | Tag identifier | string | 6181ef60caf474fba6abbb4c |
| "auto_restricted" | Events restricted by Yodel internal policies | boolean | false |
| "organizer_name" | Name of organization promoting the event | string | The Arts Castle |
| "organizer_id" | Numeric ID of the organizer group | Number or null | 39653 |
| "duplicate_id" | identifier that can be grouped to avoid duplicate events. null when the event has no known duplicate. When non-null, events sharing the same duplicate_id value are duplicates of each other and can be de-duplicated by keeping only one per group. |
string | 62f53bef6d374e02d1b01c5e |
| "dateOnly" | Event only has a date (no time component) | Boolean | false |
| "endDateMissing" | End date was not provided by source | Boolean | false |
| "featured" | Event is featured via a boost campaign or static plugin setting | Boolean | true |
| "paid_boost" | Event has an active paid boost campaign | Boolean | false |
| "boosts" | Array of active/scheduled boost campaign details | Array | See Boost Detail below |
| "is_sponsored" | Whether the event has a paid sponsor | Boolean |
false
|
| "sponsor_name" | Name of the event sponsor, if any | String or null | "Acme Corp" |
| "created_at" (date and time event was created) | Starting date/time (UTC) ISO 8601 format | string | 2023-08-19T21:30:00.000Z |
| "modified_at" (date and time event was last modified) | Starting date/time (UTC) ISO 8601 format | string | 2023-08-26T21:30:00.000Z |
Boost Detail Object
Each item in the boosts array contains:
| Field | Description | Type | Sample Value |
| creator_name | Name of the user who created the boost | String or null | "Jane Smith" |
| creator_user_id | User ID of the boost creator | String or null | "12345" |
| creator_group_id | Group/org ID of the boost creator | String or null | "67890" |
| start_date | Boost campaign start (ISO 8601 UTC) | String or null | "2026-01-01T00:00:00.000Z" |
| end_date | Boost campaign end (ISO 8601 UTC) | String or null | "2026-03-01T00:00:00.000Z" |
| status | Current status of the boost | String or null | "active" |
The boosts array is empty ([]) when no boost campaigns apply. Possible status values: active (currently running), scheduled (starts in the future).
- Standard Categories: Events categories are assigned by event owners within the Yodel program, specified categories from event sources, and AI analyzation.
| Category Title | Static category_id |
| Business | 1 |
| Causes | 4 |
| Clubs | 2 |
| History & Museums | 10 |
| Health & Fitness | 13 |
| Lifestyle | 18 |
| Film | 12 |
| Religious | 5 |
| Hobbies | 17 |
| Auto, Boat & Air | 9 |
| Travel | 26 |
| Fashion | 11 |
| Sports, Youth | 7 |
| Arts | 23 |
| Science & Tech | 24 |
| Seasonal | 25 |
| Government | 15 |
| School | 6 |
| Food & Drink | 14 |
| Kids & Family | 19 |
| Parks & Rec | 22 |
| Music & Entertainment | 8 |
| Sports, Adult | 27 |
| Retail | 28 |
| Classes/Workshops | 29 |
| Festivals/Fairs | 30 |
| Markets | 31 |
| Outdoors | 32 |
- Custom Categories: Category ID's remain fixed allowing for category renaming
Boosted & Featured Events:
A boost is a campaign that promotes an event to "featured" status within a plugin. Boost campaigns have a start and end date and a status of either active (currently running) or scheduled (set to start in the future).
When an event has at least one active boost of type "featured_event", the featured field is true. If any associated boost is a paid promotion, the paid_boost field is true.
An event can also be statically featured through the plugin's configuration (without a boost campaign). In that case featured is true but the boosts array may be empty.
Note: Boost data is only available on plugin-based exports. Custom filter exports do not include boost information.
Restricted Events:
},
Comments
0 comments
Please sign in to leave a comment.