How a package interoperates with other components? Is there some kind of protocol? I developed a new package and I wonder if I could use other packages. Calendar, by example.
Some packages have templates that are reusable in another package under the packagekey/lib/ directory.
See http://openacs.org/doc/acs-service-contract/ for the overview, or browse into the app pages on your installation to look around more. You can see for example that many packages implement the contract for "FtsContentProvider", so that any full-text search engine can get the right text to index.
Take a look at the package and platform developer's guide of the core documentation at: http://www.openacs.org/doc/