FootprintFeed and requires a schemaVersion attribute. Order of objects does not matter. Thus, a feed would be wrapped in the following XML: <?xml version="1.0" ?>
<FootprintFeed schemaVersion="0.1">
...
</FootprintFeed>
required: at least 1 times
Multiple not allowed
TheFeedInfoobject contains the information about the feed being delivered from the provider.datatype:string
A unique ID for the provider organization. Either a number assigned by Footprint or a URI. Required. No default.Examples:
<providerID>99</providerID>
<providerID>adomainweown.org</providerID>datatype:string
Name of organization providing the feed. Required.Example:
<providerName>Volunteer Opportunity Aggregators</providerName>
required: optional.
datatype:string
Only needed if the provider delivers multiple, mutually exclusive feeds (can be URI). Optional. Default is "0".Example:
<feedID>1</feedID>
datatype:dateTimeOlsonDefaultPacific
The date+time (Olson time zone attribute optional, default is "America/Los_Angeles" which represents the U.S. Pacific time zone) that this specific iteration of the feed was created. Required. No default.Examples:
<createdDateTime olsonTZ="Etc/UTC">2009-08-02T09:24:34</createdDateTime>
<createdDateTime olsonTZ="America/New_York">2009-03-02T09:24:34</createdDateTime>
required: optional.
datatype:string
URL to the provider organization's homepage. Optional. No default.Example:
<providerURL>http://www.voloppaggregator.org</providerURL>
required: optional.
datatype:string
Terms of use. Optional. Recommended. No default.Examples:
<termsOfUse>Public Domain.</termsOfUse>
<termsOfUse>See terms of use on our website: http://www.voloppaggregator.org/terms.html</termsOfUse>
required: optional.
datatype:string
Any notes about the feed. Optional. Not recommended. No default.Examples:
<description>This feed contains all volunteer opportunities from Volunteer Opportunity Aggregators. </description>
<description>This feed contains only virtual volunteer opportunities from Volunteer Opportunity Aggregators. See feed with feedID=2 for physical opportunities. </description>
required: optional.
TheOrganizationsobject wraps a set ofOrganizationobjects. Order ofOrganizationobjects has no semantic meaning.required: optional.
TheOrganizationobject represents any organization involved in the non-profit process (specifically volunteer hubs count as organizations).Organizationobjects are wrapped in anOrganizations. Order of fields does not matter.datatype:string
Unique ID within the feed. Most likely a number (from a database primary key) but can be a URI. Required. No default. Would be helpful if it were constant across feeds from one provider.Examples:
<organizationID>57</providerID>
<organizationID>genericvolorg.org</organizationID>datatype:string
required: optional.
National Employer Identification Number. Optional. No default.Example:
<nationalEIN>91-1914867</nationalEIN>
datatype:integer
required: optional.
ID number from guidestar.org. Optional. No default. Cannot be blank.Example:
<guidestarID>91</guidestarID>
datatype:string
Name of the organization. Required. No default.Example:
<name>American Helpers United</name>
datatype:string
required: optional.
Mission statement of organization. Optional. No default.Example:
<missionStatement>Change the world. Do good.</missionStatement>
datatype:string
required: optional.
Description of organization. Optional. No default.Example:
<description>Based in Faketown, VA, we help people change the world and do good things.</description>
datatype:locationType
required: optional.
Physical location of organization. See locationType for type definition. Optional, but recommended at the city/regional/postalCode level. No default.Example:
<location>
<virtual>no</virtual>
<streetAddress1>45 W 3rd St</streetAddress1>
<city>Faketown</city>
<region>VA</region>
<postalCode>22322</postalCode>
</location>
datatype:string
required: optional.
Phone number (and extension) of organization. Optional. No default. Not expected from most providers.Examples:
<phone>121-555-1212</phone>
<phone>1215551212</phone>
<phone>44 844 394 0 787</phone>datatype:string
required: optional.
Fax number of organization. Optional. No default. Not expected from most providers.Examples:
<fax>121-555-1213</fax>
<fax>1215551213</fax>
datatype:string
required: optional.
Email of organization. Optional. No default. Not expected from most providers.Example:
<email>contact@coolvols.org</email>
datatype:string
required: optional.
URL of the organization's homepage. Optional. No default.Example:
<organizationURL>http://www.coolvols.org</organizationURL>
datatype:string
required: optional.
URL of the organization's donation page. Optional. No default.Example:
<donateURL>http://www.coolvols.org/donate</donateURL>
datatype:string
required: optional.
URL of the organization's logo. Optional. No default. Dimensions are TBD.Example:
<logoURL>http://www.coolvols.org/logo.gif</logoURL>
datatype:string
required: optional.
URL of the organization's page on the providers site. Optional. No default. Highly recommended.Examples:
<detailURL>http://www.awesomevolaggergator.org/orgs.php?id=3</detailURL>
<detailURL>http://www.anothervolaggergator.org/coolvols.html</detailURL>
required: optional.
TheVolunteerOpportunitiesobject wraps a set ofVolunteerOpportunityobjects. Order ofVolunteerOpportunityobjects has no semantic meaning.Example:
<VolunteerOpportunities>
<VolunteerOpportunity>
...
</VolunteerOpportunity>
<VolunteerOpportunity>
...
</VolunteerOpportunity>
</VolunteerOpportunities>
required: optional.
TheVolunteerOpportunityobject represents one volunteer opportunity listing. It is capable of representing a repeating or ongoing event. Often anOpportunityobject will link to anOrganizationobject via the sponsoringOrganizationID or volunteerHubOrganizationID fields. Order of fields does not matter.datatype:string
Unique ID within the feed. Often a primary key from a database, but can be a URI. Required. No default.Examples:
<volunteerOpportunityID>157</volunteerOpportunityID>
<volunteerOpportunityID>urn:fpvol:101-001-157</volunteerOpportunityID>required: optional.
Wrapper forsponsoringOrganizationIDfields to allow multiple sponsoring organizations. Order does matter semantically and indicates the order that the sponsors should be shown (i.e., first sponsor is lead sponsor). Optional. Recommended.datatype:string
required: optional.
Link to anOrganizationobject that relates to this opportunity as the sponsoring organization via theorganizationIDfield. Most opportunities will have an associatedsponsoringOrganizationID, which funds and/or conducts the opportunity. Optional. Recommended. If present, must be the same as exactly oneOrganization.organizationIDvalue in the same field.Example:
<sponsoringOrganizationIDs>
<sponsoringOrganizationID>57</sponsoringOrganizationID>
</sponsoringOrganizationIDs>
required: optional.
Wrapper forvolunteerHubOrganizationID. Semantic order ofvolunteerHubOrganizationIDfields does not matter.datatype:string
required: optional.
Link to anOrganizationobject that relates to this opportunity as the local volunteer hub via theorganizationIDfield. In contrast to the sponsoring organization, the volunteer hub is the organization that coordinates many local opportunities conducted by several sponsoring organizations. A minority of opportunities will have a volunteer hub associated with them, so if you are confused by this field, that's fine, you probably do not have the data in your database. Optional. No default. If present, must be the same as exactly oneOrganization.organizationIDvalue in the same field.Example:
<volunteerHubOrganizationID>
<volunteerHubOrganizationID>genericvolorg.org</volunteerHubOrganizationID>
</volunteerHubOrganizationID>
datatype:string
Short title of the opportunity. Required. No default.Examples:
<title>Help at the Newville Shelter</title>
<title>Plant some Trees in Widerton</title>datatype:string
required: optional.
Examples:
<abstract>Help cook, pass out food and clean at the Newville Shelter. Every Sunday at 10am to noon. Bring friends.</abstract>
<abstract>Come to Widerton park and plant trees this Sunday, April 19th, 2:00pm. Sponsored by the local SAVE organization. Bring gloves.</abstract>datatype:integer
required: optional.
How many volunteers are needed for this opportunity. Special codes: -999 for unlimited. -8888 for unknown number of volunteers. Other than those exceptions, must be a non-negative integer. Optional. Default is -8888 to represent unknown number of volunteers. Cannot be blank. May not be up-to-date as volunteers sign up. Design decision: large negative numbers for special codes since overbooking might lead to accidental use of negative numbers.Examples:
<volunteersNeeded>10</volunteersNeeded>
<volunteersNeeded>-999</volunteersNeeded>
<volunteersNeeded>-8888</volunteersNeeded>
datatype:integer
required: optional.
How many people have signed up for this event (through partner's website). Special codes: -8888 for unknown. Other than that exception, must be a non-negative integer. Optional. Default is -8888 to represent unknown number of rsvp's. Cannot be blank. May not be up-to-date as volunteers sign up.Examples:
<rsvpCount>5</rsvpCount>
<rsvpCount>-8888</rsvpCount>
A wrapper around one or moredateTimeDurationsub-objects. See the sub-object documentation. Given the recurrence field indateTimeDurationsub-object, the vast majority of cases should only need onedateTimeDurationsub-object. Order ofdateTimeDurationobjects has no semantic meaning. Required.datatype:dateTimeDurationType
required: at least 1 times
Represents the dates/timing of the event. Has a recurrence element for repeated opportunities. Required. Order of fields does not matter.Example of one-time event:
<dateTimeDurations>
<dateTimeDuration>
<openEnded>No</openEnded>
<startDate>2009-04-19</startDate>
<endDate>2009-04-19</endDate>
<startTime olsonTZ="America/Chicago">14:00:00</startTime>
<endTime olsonTZ="America/Chicago">16:00:00</endTime>
</dateTimeDuration>
</dateTimeDurations>
Example of two-time (in this case, two-day) event:
<dateTimeDurations>
<dateTimeDuration>
<openEnded>No</openEnded>
<startDate>2009-04-18</startDate>
<endDate>2009-04-18</endDate>
<startTime olsonTZ="America/Chicago">14:00:00</startTime>
<endTime olsonTZ="America/Chicago">16:00:00</endTime>
</dateTimeDuration>
<openEnded>No</openEnded>
<startDate>2009-04-19</startDate>
<endDate>2009-04-19</endDate>
<startTime olsonTZ="America/Chicago">14:00:00</startTime>
<endTime olsonTZ="America/Chicago">16:00:00</endTime>
</dateTimeDuration>
</dateTimeDurations>
Same example, but using the
iCalRecurranceto specify a two-day event:<dateTimeDurations>
<dateTimeDuration>
<openEnded>No</openEnded>
<startDate>2009-04-18</startDate>
<endDate>2009-04-19</endDate>
<startTime olsonTZ="America/Chicago">14:00:00</startTime>
<endTime olsonTZ="America/Chicago">16:00:00</endTime>
<iCalRecurrence>FREQ=DAILY;COUNT=2</iCalRecurrence>
</dateTimeDuration>
</dateTimeDurations>
Example of using the
iCalRecurranceto specify a biweekly Tuesday meeting, open-ended:<dateTimeDurations>
<dateTimeDuration>
<openEnded>Yes</openEnded>
<startTime olsonTZ="America/New_York">17:00:00</startTime>
<endTime olsonTZ="America/New_York">18:00:00</endTime>
<iCalRecurrence>FREQ=WEEKLY;INTERVAL=2;WKST=SU;BYDAY=TU</iCalRecurrence>
</dateTimeDuration>
</dateTimeDurations>
Example of an open inviation to come in during business hours for a day:
<dateTimeDurations>
<dateTimeDuration>
<openEnded>No</openEnded>
<startDate>2009-04-16</startDate>
<endDate>2009-04-16</endDate>
<startTime olsonTZ="America/New_York">09:00:00</startTime>
<endTime olsonTZ="America/New_York">17:00:00</endTime>
<timeFlexible>Yes</timeFlexible>
</dateTimeDuration>
</dateTimeDurations>
Example of a flexible, commitment of 2 months, with 10 hours of work per week:
<dateTimeDurations>
<dateTimeDuration>
<openEnded>Yes</openEnded>
<duration>P2M</duration>
<timeFlexible>Yes</timeFlexible>
<commitmentHoursPerWeek>10</commitmentHoursPerWeek>
</dateTimeDuration>
</dateTimeDurations>
required: optional.
A wrapper around one or morelocationsub-objects. See the sub-object documentation. Order oflocationobjects matters only in that the first location is the default time zone if the time zone for the opportunity start or end time is unspecified. Required, unlessvolunteerHubOrganizationIDis present and thatOrganizationobject haslocationinformaion.datatype:locationType
required: optional.
Represents where the opportunity is physically located or denotes a virtual (non-physical) opportunity. May use multiplelocationelements to represent multiple opportunity sites. Required, unlessvolunteerHubOrganizationIDis present and thatOrganizationobject haslocationinformaion. Order of fields does not matter.Example of one physical location:
<locations>
<location>
<virtual>No</virtual>
<name>Widerton Homless Shelter</name>
<streetAddress1>10 City Ln</streetAddress1>
<city>Widerton</city>
<region>VA</region>
<postalCode>22003</postalCode>
<directions>Use door on the First St side of building</directions>
</location>
</locations>
Example of an event taking place in two physical locations:
<locations>
<location>
<virtual>No</virtual>
<name>Widerton Homless Shelter</name>
<streetAddress1>10 City Ln</streetAddress1>
<city>Widerton</city>
<region>VA</region>
<postalCode>22003</postalCode>
</location>
<location>
<virtual>No</virtual>
<name>Narrowton Homless Shelter</name>
<streetAddress1>101 Park St</streetAddress1>
<city>Narrowton</city>
<region>VA</region>
<postalCode>22004</postalCode>
</location>
</locations>
Example of a virtual event (such as online translation help):
<locations>
<location>
<virtual>Yes</virtual>
</location>
</locations>
datatype:yesNoEnum
required: optional.
Does the opportunity pay volunteers. Domain is {"Yes" | "No"}. Optional. Default is "No".required: optional.
A wrapper for one or moreaudienceTagfields. AnaudienceTagfield is a string that describes a group of people who would be appropriate volunteers. There is no set domain for theaudienceTagfield. Optional. Order ofaudienceTagentries has no semantic meaning.datatype:string
required: optional.
String that represents a target audience. No domain. Optional. No default.Example of a two-audience event:
<audienceTags>
<audienceTag>Teens</audienceTag>
<audienceTag>College-aged</audienceTag>
</audienceTags>required: optional.
A wrapper for one or morecategoryTagfields. AcategoryTagfield is a short string that describes the opportunity. Keywords also belong here, ascategoryTagfields. There is no set domain for thecategoryTagfield. Order ofcategoryTagentries has no semantic meaning.datatype:string
required: optional.
String that represents a category of the opportunity or a keyword/phrase of the opportunity. No domain. Optional. No default. Recommended.Example of a three-category event:
<categoryTags>
<categoryTag>Homeless</categoryTag>
<categoryTag>Hunger</categoryTag>
<categoryTag>Weekend opportunity</categoryTag>
</categoryTags>datatype:integer
required: optional.
The minimum age of volunteers. Optional. Recommended. Cannot be blank.Examples:
<minimumAge>18</minimumAge>
<minimumAge>7</minimumAge>
<minimumAge>50</minimumAge>
datatype:sexRestrictedEnum
required: optional.
Is the opportunity restricted to one sex/gender. Domain: {"Female" | "Male" | "Neither"}. Optional. Default is "Neither".Examples:
<sexRestrictedTo>Neither</sexRestrictedTo>
<sexRestrictedTo>Female</sexRestrictedTo>
<sexRestrictedTo>Male</sexRestrictedTo>
datatype:string
required: optional.
String of all the skills a volunteer needs. One (potentially long) string. Optional. Recommended. No default.Examples:
<skills>Able-bodied.</skills>
<skills>Be able to translate Spanish to English and back. Must be able to work remotely via the Internet.</skills>
datatype:string
required: optional.
Name of contact for this opportunity. Many providers will choose to populate thedetailURLinstead of this field. Optional. No default.Example:
<contactName>John Smith</contactName>
datatype:string
required: optional.
Phone number (and extension) for the contact for this opportunity. Many providers will choose to populate thedetailURLinstead of this fields. Optional. No default.Examples:
<contactPhone>121-555-1212x32</contactPhone>
<contactPhone>1215551212</contactPhone>
<contactPhone>44 844 394 0 787</contactPhone>datatype:string
required: optional.
Email for the contact for this opportunity. Many providers will choose to populate thedetailURLinstead of this field. Optional. No default.Example:
<contactEmail>johnsmith@example.com</contactEmail>
datatype:string
required: optional.
Links to the page on the provider's website that displays detailed information about the opportunity. Optional. No default. Highly recommended for feeds that do not transmit contact info.Examples:
<detailURL>http://www.awesomevolaggergator.org/opps.php?id=3</detailURL>
<detailURL>http://www.anothervolaggergator.org/goodopportunity.html</detailURL>
datatype:string
required: optional.
Language of the opportunity. Optional. Default is "English".Examples:
<language>English</language>
<language>Spanish</language>
datatype:string
required: optional.
Full description of the opportunity. Optional. No default. Recommended.Example:
<description>Some really long text that describes the event.</description>
datatype:dateTimeOlsonDefaultPacific
required: optional.
Date+time (Olson time zone attribute,olsonTZ, optional; default is "America/Los_Angeles" which represents the U.S. Pacific time zone) of last update to the opportunity on the provider's site. Optional. No default.Examples:
<lastUpdated olsonTZ="Etc/UTC">2009-08-02T09:24:34</lastUpdated>
<lastUpdated olsonTZ="America/New_York">2009-03-02T09:24:34</lastUpdated>
<lastUpdated>2009-03-02T06:24:34</lastUpdated>
datatype:dateTimeOlsonDefaultPacific
required: optional.
Date+time (Olson time zone attribute,olsonTZ, optional; default is "America/Los_Angeles" which represents the U.S. Pacific time zone) of when the ulisting/u of the opportunity (not the opportunity itself) expires on the provider's site. Optional. No default.Examples:
<expires olsonTZ="Etc/UTC">2010-08-02T09:24:34</expires>
<expires olsonTZ="America/New_York">2010-03-02T09:24:34</expires>
<expires>2010-03-02T06:24:34</expires>
required: optional.
required: optional.
TheReviewobject represents a review of an organization or volunteer opportunity.Reviewobjects are wrapped inReviews. Order of fields does not matter.datatype:string
required: optional.
Link toorganizationIDin theOrganizationobject. Optional, though required ifvolunteerOpportunityIDis not present. No default.datatype:string
required: optional.
Link tovolunteerOpportunityIDin theVolunteerOpportunityobject. Optional, though required iforganizationIDis not present. No default.datatype:decimal
required: optional.
The rating, or numeric score, of the review. For instance, this field would be 4 if the review gives 4 of 5 stars. Optional. No default.datatype:decimal
required: optional.
The maximum rating, or numeric score, possible of the review. For instance, this field would be 5 if the review gives 4 of 5 stars. Optional. Highly recommended ifnumericScoreis present. No default.datatype:string
required: optional.
An ID for the reviewer. If present, must identify a unique reviewer. Optional. No default.datatype:string
required: optional.
What role the reviewer played in the review entity (either an organization or volunteer opportunity). No default.datatype:dateTimeOlsonDefaultPacific
required: optional.
Date+time of when the review was created or last updated (Olson time zone attribute,olsonTZ, optional; default is "America/Los_Angeles" which represents the U.S. Pacific time zone). Optional. No default.
datatype:decimal
use is required
fixed value:0.1
datatype:yesNoEnum
required: optional.
Whether the opportunity is not limited by dates. Domain: Yes, No. Optional. Default is "No". If Yes, parser ignores startDate and endDate fields.datatype:date
required: optional.
The start date of the opportunity. Optional. No default. Highly recommended if openEnded is No.
If left unspecified, the implementation is liable to either display its own epoch (e.g., 12/31/1969 00:00:00) as the opportunity start date or forceopenEndedto Yes.
Implementations should avoid displaying default dates whenstartDateis unspecified.datatype:date
required: optional.
The end date of the opportunity. Optional. No default. Highly recommended if openEnded is No.
If left unspecified, the implementation is liable to either display its own epoch (e.g., 12/31/1969 00:00:00) as the opportunity end date or forceopenEndedto Yes.
Implementations should avoid displaying default dates whenendDateis unspecified.datatype:string
required: optional.
String from iCal format specifying the frequency of the opportunity. Optional. Default is the empty string, representing no recurrence. String does not include "RRULE:" and should start with "FREQ=".Example for a biweekly meeting:
<iCalRecurrence>FREQ=WEEKLY;INTERVAL=2;</iCalRecurrence>datatype:duration
required: optional.
The duration of open-ended opportunity; i.e., the long-term commitment. For instance, a six-month club that meets only once a week for an hour would have a duration of six months. Type is xs:duration (e.g., P6M for six months). Optional. No default. Highly recommended if openEnded is Yes. Ignored if startDate and endDate are populated.datatype:timeOlson
required: optional.
Start time for the opportunity (Olson time zone attribute,olsonTZ, optional; defaults to time zone of firstlocationof opportunity; if virtual opportunity, default is "America/Los_Angeles" which represents the U.S. Pacific time zone). There is no "all day" option: exact times should be specified where applicable. Optional. No default.datatype:timeOlson
required: optional.
End time for the opportunity (Olson time zone attribute,olsonTZ, optional; defaults to time zone of firstlocationof opportunity; if virtual opportunity, default is "America/Los_Angeles" which represents the U.S. Pacific time zone). There is no "all day" option: exact times should be specified where applicable. Optional. No default.datatype:yesNoEnum
required: optional.
Whether the opportunity is not limited by time of day. Domain: Yes, No. Optional. Default is "Yes" if both startTime and endTime are missing; default is "No" otherwise. If startTime and endTime are present and timeFlexible is Yes then the opportunity is assumed to be open between startTime and endTime but not necessarily fill up that entire time. If timeFlexible is Yes, then commitmentHoursPerWeek is recommended.datatype:decimal
required: optional.
For long-term or time-flexible opportunities, how many hours per week are expected? Decimal values allowed. Optional. No default. Recommended if either openEnded or timeFlexible is Yes.
datatype:yesNoEnum
required: optional.
Is the opportunity virtual (i.e., not physically located anywhere)? Domain: Yes, No. Optional. Default is "No".datatype:string
required: optional.
Name of physical location. Example: Camelot Elementary School. Optional. No default.datatype:string
required: optional.
First line of street address. Optional. No default. Not expected from most providers.datatype:string
required: optional.
Second line of street address. Optional. No default. Not expected from most providers. Only provide if streetAddress1 is provided.datatype:string
required: optional.
Third line of street address. Optional. No default. Not expected from most providers. Only provide if streetAddress1 and streetAddress2 are provided.datatype:string
required: optional.
City of physical location. Optional. No default. Expected from most providers.datatype:string
required: optional.
Region (e.g., State or Province) of physical location. Optional. No default. Expected from most providers.datatype:string
required: optional.
Postal Code (e.g., zip code) of physical location. Optional. No default. Expected from most providers.datatype:decimal
required: optional.
Latitude of location. Optional. No default. If conflicts with streetAddress1/city/region/postalCode, the latter has precedence.datatype:decimal
required: optional.
Longitude of location. Optional. No default. If conflicts with streetAddress1/city/region/postalCode, the latter has precedence.datatype:string
required: optional.
Directions to or special instructions for the location. Optional. No default.
string Yesallowed value:
Nostring Femaleallowed value:
Maleallowed value:
NeitherThe content is of the base type
xs:datetime, except any additional timezone data is disallowed.dateTimeNoTZ datatype:string
use is optional
default value:America/Los_Angeles
The content is of the base type
xs:time, except any additional timezone data is disallowed.timeNoTZ datatype:string
use is optional
default value:(empty string)



